JetHash.hs (17389B)
1 -- Copyright 2023 The Plunder Authors 2 -- Use of this source code is governed by a BSD-style license that can be 3 -- found in the LICENSE file. 4 5 {- | This is a hack to avoid long compile times when changing jet hashes. 6 7 TODO The `unsafePerformIO` hack could be avoided through careful 8 engineering. 9 10 TODO Maybe we should even read these from a file? 11 -} 12 13 module Fan.JetHash (jetHashes, installJetHashes) where 14 15 import Fan.Jets 16 import Fan.Print 17 import Fan.RunHashes 18 import Hash256 19 import PlunderPrelude 20 21 -------------------------------------------------------------------------------- 22 23 {- 24 Call this immediatly on executable startup. 25 -} 26 installJetHashes :: IO () 27 installJetHashes = 28 writeIORef vJetHash jetHashes 29 30 checkHash :: ByteString -> ByteString 31 checkHash bs | length bs == 32 = bs 32 checkHash bs = error ("Bad hash: " <> show bs) 33 34 e :: Text -> Text -> (Text, Hash256) 35 e nam haz = (nam, btcToHash haz) 36 37 tabulate :: [(Text, Hash256)] -> Map Text Hash256 38 tabulate = go mempty 39 where 40 go :: Map Text Hash256 -> [(Text, Hash256)] -> Map Text Hash256 41 go !acc [] = acc 42 go !acc ((n,k):nks) = 43 if member n nks then 44 error ("Duplicate entries" <> show k) 45 else 46 go (insertMap n k acc) nks 47 48 validate :: Map Text Hash256 -> Map Text Hash256 49 validate tab = unsafePerformIO do 50 for_ runHashes \(nam, hax) -> do 51 unless (lookup nam tab == Just hax) do 52 error (unpack nam <> " jet has conflicting hash definitions") 53 pure tab 54 where 55 runHashes = 56 [ ( "_If" , ifHash ) 57 , ( "_Seq" , seqHash ) 58 , ( "_Trace" , traceHash ) 59 , ( "_Add" , addHash ) 60 , ( "_Sub" , subHash ) 61 , ( "_Mul" , mulHash ) 62 , ( "_Switch" , switchHash ) 63 , ( "tabSwitch" , tabSwitchHash ) 64 , ( "_Idx" , idxHash ) 65 , ( "_Get" , getHash ) 66 , ( "_Eql" , eqlHash ) 67 , ( "_Ifz" , ifzHash ) 68 , ( "_Lte" , lteHash ) 69 , ( "_Lth" , lthHash ) 70 , ( "_Gte" , gteHash ) 71 , ( "_Gth" , gthHash ) 72 ] 73 74 jetHashes :: Map Text Hash256 75 jetHashes 76 = validate $ tabulate 77 [ e "_Force" "A7ZtnajpFHHJ29VVzZoZ4BENtqNio1LZcG7Pdc9nMFvf" 78 , e "_Seq" "7fPzp1b5QXpDDkvpt2oBGUm3w6eCPVKjDnUQ8i8w8mj5" 79 , e "_Trace" "DWsz4CYrc3xzUQRxtibBiSXUx8HzR3tRgGNsbAMJLe9w" 80 , e "_DeepTrace" "7oDjbbsyiM1paMXmzzaR3P3KEit8MHRVSRduAX3qan5V" 81 , e "_IsPin" "9yKhatzX3nmiaJuvt9k4vC15TFpfLrdAJgBYAHbsNNLR" 82 , e "_IsLaw" "BWQ7azfQEprHXNumwKc2zKHSHxXdkydxg1zvCZKfXTGF" 83 , e "_IsApp" "2b6Ki7gnsoZnLFdXdNrdrF2PdehjsKpvFiHaD4y85VbY" 84 , e "_IsNat" "UUg4gA355ySzHkLR9uyNbH667o6b4NkAv4rQ3pwJYqj" 85 , e "_PlanTag" "Hbq7zzUZ4tQXWZv1RQLLTrvSvsCXWahVd4nzCn28kB4g" 86 , e "_PinItem" "7EaNWdf4EqHNCEBCScEuW4CrxbMzbadgkXgQcrbLwS2C" 87 , e "_LawName" "Gnorn9t78uWCBXACgxF2QEbXpXvHZZgA71Ryt8DL42Wx" 88 , e "_LawArgs" "Gvj7mVywtF79a5xV17UXceJLFtYAneSD1PJfrCEEMnEY" 89 , e "_LawBody" "CYHDZqaDfuN2MGLga3LuSUNeAHf5wmDvL928Ca97RwWw" 90 , e "_Car" "CT92yRzvnSAA5eqLf31G58S5kKCbv8A6JjWNtm8raZQp" 91 , e "_Cdr" "HiPkTzvPxdyzkza8Tq43m9kmAmv1jEgevkFngo8T7kGV" 92 , e "_Eqz" "HYgduheRaC4oQMy7qwLEGYLC9fhesds7HCgifxqfQHBR" 93 , e "_If" "CGWi51frV26N7KUBbso2WzBad8W2mbix6HaejVem5YaZ" 94 , e "_Not" "6mbxDTonsXzZJowVdsQtP5bbqfHn6DTghb11eYi6s9qB" 95 , e "_Bit" "D518gnvYpR68fwAkvSghyATH1oCh8LVG9jeQDUuws7HG" 96 , e "_And" "9JhVfFRzAkwjt7VyhC5yi7wHekWx7h4CLn36Pd9xjD7c" 97 , e "_Or" "ALbovHrbg3HkpkB1DPXDrkPCSSgNfoz5ZgF2j1z99yU1" 98 , e "_Xor" "E4tUTqjvQrnCpGFWNRhUoH2ZzrjxLyi7iDNVcPetqyMW" 99 , e "_Nand" "EcKTTCta47vbd1Fq85Dm214tZfuSbS5a3xeBX9LcPUkq" 100 , e "_Nor" "5Q3KgaFr5KdNVhMSA7CRD2WfNvaZM2JSG1XWnp8aK5BD" 101 , e "_Xnor" "XwJTASftvk563i9uqWyCjEnjHbNdtjwXEXDN5pXFGhP" 102 , e "_Ifz" "3C2F3FHjCiM8zaWbTKQnNJbCfs4vU11tpcj3wETVQJtZ" 103 , e "_ToNat" "HedgTAZEjCCShX97HZNsm4gGGWyxhRf9jepYzrtMR6RW" 104 , e "_Dec" "CQono44WNJmmGYhDL1zTmF38VwyZ2oUbhbeZxnyXcVhg" 105 , e "_Times" "FWYFvK5cNTUB1PAsYNvgzidAFxSMDTrqch7UsJjpJbvJ" 106 , e "_Add" "QeTTm1EFP1r7mkXJQVnBYUW2QeKUvjNfYA5PiGzFRVj" 107 , e "_Mul" "E2TXQPG89ykcNK9s7XSwDhvgQsUrc8ogjvoPsEZu7zyp" 108 , e "_Sub" "xruy2CzBgGc8fbn6wYDw4ofa4XXNgCsVGhySX6wr7LS" 109 , e "_Pow" "ENxYwA7Jp7wRsyaR8sHE3SPF3MoGzkmHWPC9g3ohSgR2" 110 , e "_Bex" "DGnbYD2zjfxzUt8WYxXPELfu2bULGhsjVeSyqBJdn97S" 111 , e "_OrdWeld" "8ZeTyQLBT1MSmfbD8ZBdaXJHzwv1MEpL2DSZfRTcyY8h" 112 , e "_Div" "7vNXXnoaLsR9p2YNq3rSxjMCFYiFStXY1BMDrh8xdqcN" 113 , e "_Mod" "AgLLsdcyTj4rs3WhqHq3jSSPDjPcfbLzovkxLgzo7xjD" 114 , e "_Lsh" "AF5txxxHqUzwbcECyb35uJiZzJSGS2fjSXu5uEtAzAoA" 115 , e "_Rsh" "B5FVxvLyygchJB5BTx4a8Lv52RbBqVFNtdzHYtGcW1wu" 116 , e "_Bix" "2GVVL9xRo2WRQSZuMVe58QfBTxxav6RH9aT24Wxk1zq5" 117 , e "_Bitwise" "2ZiA8Wr4ifoP9TkzRK9agq9X8oGVmSNco7RtbAneSizM" 118 , e "_NatFold" "FGFJ88epCE88jt81RhPrqCXPqxnvRpe4zeksX8WrSZdA" 119 , e "_Dis" "4DuWVnqNYy8qGoTa3c4q4YgZU1B7TkFiqGZTNrDkThq7" 120 , e "_Con" "EVyqt3GFkGS6qER6e4mQ5xVeaJMcS1HhGB2Vzszs6W9Z" 121 , e "_Mix" "7amwzY4GL3TAGHJ99MAdtGeExMZh4hXDvcBNy7AN9F3M" 122 , e "_PopCount" "BZzsw1Je8NZk9TVdSY71xJwkGTsY6JFF1XsJU61CmXwT" 123 , e "_Met" "35x4hER3vbGCkvmKwbsTV5yKpXmyLph3Erpxmyf9UqAb" 124 , e "_Trunc" "9S1a6oe76HtQTmccbsQCtgjfvCcpKvnLTShPkHfzpwsG" 125 , e "_BitSlice" "5jsdHdezv2mR5uCJL7krDJkKi6GW49vmb1eTzE3NwBZD" 126 , e "_SetBit" "J6GTmyBRkaV1ZpfvqnNJSCzdxuXLQBcLqaJQhKUfGkPs" 127 , e "_TestBit" "AHPngM8RAFxnicAWHhLnjAQtYwjBFciDFZSnCZg53wGU" 128 , e "_ClearBit" "421ARHwYHBeXFQoLgeTrZpGyj6W7JhpDoiEZhNHE66V5" 129 , e "_Cmp" "6MtBxTQmFyGU1nSGVLeAvefWjEmhA42MwcfDH5L718iR" 130 , e "_Eql" "Adf29h2HgWaoiya1ZWMeMp4iMQfeUnNZzbVyZ5ocNuUz" 131 , e "_Neq" "Bsn2Gzwu5akm1x7L6pj3QqxgL1x6biEgKxiS9ahMJM8E" 132 , e "_Lth" "AdoCNFpqJGYuhrayP8pVoqzyfSR7UcPwDt86gyL7oe4A" 133 , e "_Lte" "3ERFoKQNfT27Q9uf356rXiUA9wuBxH1EX2abyZmikeVy" 134 , e "_Gth" "vzmdUQLNpoqDJxoyVpU4ESQVZg4eWfv9ye55MzHH5AB" 135 , e "_Gte" "36re96oJE2udJvUgERtaYYFWVm7AJNHe8pVufjoXkQet" 136 , e "_Min" "9PS8RSccDegsbr8VBYX7gESoEYV97nLer882MvdyGpZG" 137 , e "_Max" "8YxA9BhNBELQykHmLTg2dKZvZ7mxm9W94Ra4gQ9YXbMy" 138 , e "_Null" "B7Yd7cPdoDFsLgkYmuWdsvM4NJfMSmasj3Jhp5agrFbF" 139 , e "_Head" "qdNQEg1BoJgcRm1qRGdNqDK86bm7XSean7torY3Q2XR" 140 , e "_Arity" "2jz4zz3a621Z6uhWSpTbv2wRi91aQfsSRn76Yi6me5gy" 141 , e "_Len" "AUDshrNCtvjQfRYsYHv9s4YJDZ3f7P5MKwPkLJrNX8aD" 142 , e "_Put" "ACEkgfjSxxhvXkh7iyPg64Siwp2fpURFFREkX935v1pj" 143 , e "_Get" "386VJFmFLRAcsu3gXtsNK4s5muQusWJ4SMzgjjS6YUPf" 144 , e "_Idx" "H4Zc8hKR4nzf2w1FC8mXQmsmMrNvJ86yRh2hLK9GL3ds" 145 , e "_Mut" "4a8fsQF4NQfaKfKpTzk7vxu2DaDCuDPUAtedb7k6nCua" 146 , e "_Last" "HKg4NMDUSy9FkBNmsdNvExNHLf6VrL5xAZrJzBHvxxQy" 147 , e "_Switch" "3vzrXZQeTFijPUj8F4rF3QWJnzbEEMNZbjmGsustvzo8" 148 , e "_Cow" "3gqiFBpFd6UwEJSqH2MLPE1s3C5hTSra5uF6GYzsW1za" 149 , e "_CowSize" "G6gN1nJbBtohntPrsG3v6edTtr78MMPJLaehkQ7sLcSL" 150 , e "_IsCow" "J9D6GAKqFiyfbzyr9ejHExr4avfRHS9EycgSTqMpk77s" 151 , e "_IsRow" "8t2nzyaUKEB4iXUcLVaLwFLDHJ6tddQK7Dp5W9oZQLDW" 152 , e "_Gen" "2Xjoe15B84gukTsF7RFCzQ9AvWq78pwRTgyAt3zRXdRC" 153 , e "_Weld" "2pMmhrxJDkduFASR3WXHPpZCSyQhwsSttmBSma8NALnf" 154 , e "_Map" "FZF5tePfHzx5fS8AKiguJFVNsxmru7qtW2gx3XnDAtse" 155 , e "_Rev" "JD4CrHMtAntrmHNK7MZCZK5JDtvw4m26vGsNqy51qq6P" 156 , e "rowCons" "Dnf9n4wW7M7i4Xc5BhXQGCpTC5BhUM3m1wceckTpA1fK" 157 , e "rowSnoc" "A3FxtWw4MGyq8T6HLLvnDEJwkrAej7MCHVVtUTnzXvZm" 158 , e "sum" "F6ob6mjnYAtCSdJQRFNWQGa1NVdSNbr5b77gESTPCFDT" 159 , e "sumOf" "ahTFxWPHYCTdTKNW3ES6TTvBE3K2ZNrXs7Ta31atipQ" 160 , e "cat" "89EWhEFWgFigSEwzcGfi3mAgDer1QTWspWWBMEVg6Bns" 161 , e "zip" "8xVraNf4pPd2o6A7yYKV1N6oANPazsMzGCVXLccrXhQe" 162 , e "drop" "45ARChFpRYWa1o1n4jxYbqVvBmkWzxYQxCFPNkcnE1d8" 163 , e "take" "2gABh4WVzRnyRtdM49QGP4GTUGNidMercKgxaFDonvfP" 164 , e "unfoldr" "AqALs9y4dSE4nUxpGv6vYjqtq4eJL9ZXQSeMb9n7a2vK" 165 , e "_SizedListToRow" "12AFprhZ7HSa4451hkhveQTVCmuds6kvmLYmjQZsDUNf" 166 , e "_SizedListToRowRev" "EXQjpxzxxiLqW3xMwKqRYyUyFfxbEpbvfhRMsUBDmxtE" 167 , e "bsearch" "GL5YmUEpJm4dEqPSF7KHXATef9dQkA5eiZaq6vcwEk7J" 168 , e "isDigit" "A55EjKavUf9P9wSg7np7yqng75XWmcSURmmbAAaLTnBN" 169 , e "implode" "5WGW3TBZshBZvnnYcePG9mHFuSvEYwYck9PMkPnq72wY" 170 , e "_MkSet" "4RUfSzoWUyiYQ5omEL7XWABd3bCpp6Q92Gx62fdDvrVu" 171 , e "_SetToRow" "3GGGFTFjPGAJp75fDidHT2ir5gjRY96P9qhPAEi37L2R" 172 , e "setSing" "2S8yfCmRiecvoxgLJVJg5L6MxLm5avjoGqGJmnbukt27" 173 , e "setIsEmpty" "BDgQFXd9VbEEdoBcaqMys39ucwLS4WFhQLAxypncGj3W" 174 , e "setLen" "4yZ1gLVWzH46af8cUrqhJiAZdSNTpRMPw97JVZH3Z6Ya" 175 , e "setHas" "H54z14ukWmmsPWW1hVvtmg9LgHXXqL3CDAxat7hxHqZg" 176 , e "setMin" "99RzLRXhcLMYwmi3Z92BzxyP7ByJepiSNbMhH3tYThxr" 177 , e "setIns" "7XTSXHE3H5naGmKM1pHkN5K8Y5YCW2DXGKNmUZwSHSjW" 178 , e "setDel" "DRtJToYcbs4CeWJbsim6AC1wfQAvhawXaXBTRf9j15em" 179 , e "setWeld" "DiwkKspYbznDoaAB4hTMTeqhB9CWSDsxnAYU8jaXrb2v" 180 , e "setCatRowAsc" "3FxDUjMRkbL5YcH2VKrEcQrKqt1rxYjpE7jLVULvC4du" 181 , e "isSet" "Cg5qw1nsmxJZvrxyDcQkxvibHgARN5kwy8KHLqY2p8JR" 182 , e "setDrop" "59s1CVBM1sVCsu8goeVRtcZgo3MfSpsNpURxcugnJz5S" 183 , e "setTake" "6gHtpymH8Dr9mKh3ZVWK131L2xYXcn29PHUWokh3BBoC" 184 , e "setSplitAt" "8bHiTR25SEwWF44Jm4jxPb3dPpYjDobmjDYiJAkH3uXS" 185 , e "setIntersect" "6tABCWy2zvjbCbFyEFvrHBkJ54SWVpEGCymgZauuCeAf" 186 , e "setSub" "H4X1JaHYoS8DUbSnsevKrqu8LuXebWiARUEoppmYL174" 187 , e "setSplitLT" "C2ZGZw6xkURRqrDEVTyhYRCx31GRWKuDWJVj6KP91ACn" 188 , e "_MkTab" "5hFXwrFMAS1ETGYZDANKd5Eo9xkjNnxPRKTL7H3Td4yv" 189 , e "tabSing" "7AfouhmiExP9KSySjrw4k4VZ5JY2TE4cW53xo1EhHsfz" 190 , e "isTab" "3NVgkveHYdmX8AHVLhwB7qpKhtNmFanxv4c6z3QuJqEe" 191 , e "_TabKeys" "8b5KfdDnpHdUNavaYcVkyY4UWvgkmzhboa2WtHq8hvE8" 192 , e "_TabVals" "ChipTE8EqGJx8mKh7vKk3uLCoe87uzr57puknUVwGMGL" 193 , e "_TabKeysRow" "AbTABFk1h4qcAoW2nzQ37JtnzPfVgapUSXLBcZqid4rH" 194 , e "_TabKeysList" "HJCWTAgwp23pzpsfcFtztNa8uaNit6cSdYN19CqmejyZ" 195 , e "_TabLen" "4zBRGTdC8o8VqyVbae2RH7HhCXjkzahcyMvBKPegci3Z" 196 , e "tabIdx" "3TWf15DfN9xE991EbwQooXnD1wMQ1snqJBragTQ7vqai" 197 , e "_TabIsEmpty" "2pqKJoYtYzxGuojhjcD7APfxGauDgrJr6frjcEKY75Cr" 198 , e "_TabHas" "3CmdokqP7UZsYmUibrN8ZYenxxYNeg7pbujqL87uf7Yh" 199 , e "_TabLookup" "4ZU8AC43kfUmio84VTUWxZzkRFLd9PUcn3FYhacStXmn" 200 , e "tabIns" "6DntBfKNxnzojW5jz2HMm3qKMtMhTg5rzVyQ51zXc5uy" 201 , e "tabSwitch" "GAEvH1zJXuT4fpX9rhnonBPtQ1wxcDmgXgyz53vZxmSa" 202 , e "tabToPairs" "7XNsmym7XdJvy2GqXPqLnFDgHaNbsh2adrFZBQrunB3c" 203 , e "tabFromPairs" "9vDNgbSC1eKiVfti8GnjiuBLYptbW8Ct6NY48y14sE7" 204 , e "tabToPairList" "5BRqPnTopXM4gu9fTnrnxoDVWYZLiMK847eRjxn3tUj4" 205 , e "tabElemIdx" "EKW4vsYbgp825gXmTmbuZHdJXvJJg5ZgMZLDhhTd5zQr" 206 , e "tabSplitAt" "HSJeEynaytuz6Har7pzrD38a9fERYycpCfn9DdWbsoww" 207 , e "tabSplitLT" "9YdjLVV4RVRWNEd7WqFppRKrnT2A5yYZCzrJYKwQyFos" 208 , e "tabAlter" "GCz4BwUrQEWZpsprfRNJdrb342iSywauUKiGQ8usMsLB" 209 , e "tabMapWithKey" "C5KJzWkVKbKe3BkxrE5MKEMPywwqjtS2Wg3uYAdhWxuX" 210 , e "tabMap" "9d5ZFLjQTJiJWZ5nVu2HPERX87JE6useFs5hTLBxsEud" 211 , e "tabUnionWith" "GwJdmG4nEoqdyQk59881fJEyXohj1FSRYUtJvtNUZb7t" 212 , e "tabWeld" "5b6a45ecNGARY4eMDgoLBPR7rS4pLgXkYjSBsBeEdeHS" 213 , e "tabMinKey" "5e9RqAsaYgy7w8yt1DmgLN6e2nPUXqBT7ixPNvnG6MuW" 214 , e "tabFoldlWithKey" "DZ1uBEGqnQoVcC1sYiPSsSvZhfR4EZfghZAanHsag96M" 215 , e "_TabFilterWithKey" "LmKep1jfDMA1wRJUtMa4vQsotSPsrxfQeJySXapCzt8" 216 , e "padWeld" "3HYdLDt6xEBvr4sgd1NKBGt8fudaJsF7NeBAfifYdJ1x" 217 , e "padCat" "7oSvLzBPe2YutqfME1KZRT4Bey5NgTVjKhbRxeTVgMBw" 218 , e "padFlat" "9cU96nmmqDUvNvped7BHg5G6WE9xCwukSyvqyQgD1TDu" 219 , e "isBar" "BoDTAF88eG5ykFN5WxbBgfmYLsfcaCXJNjjVUxW1LGYV" 220 , e "_Bar" "3rEdAKuWvV2VjaZoXae5fD1H3mAqkLJjZhqSp2djP9ez" 221 , e "natBar" "8skazbEPVRUQkid2uQgQFJLRxveQqBepJXKCcSA1kVpT" 222 , e "barNat" "HzPryDAhioqTPGfFopyj29Pf6oo1KwYGAoLRZ7V5ZR5V" 223 , e "barLen" "FRQyoP5YeRoHtbXXaU5yaakGdaq7sm6PiNH9RHcH2Dwy" 224 , e "barIsEmpty" "8VoyMabPUNASM5PvxrUUVca6gk4Gf6HRvUHiFkMHuMw6" 225 , e "_NatToSizedBar" "CKuuEeyrhLLJqabF1zT2jEt9VjZPk2uKrHcPwRQL4Tt2" 226 , e "barIdx" "7EAWHpAwBQFBHLJBNUpTkP9E3RvWtCFcatDjUQi5yFUC" 227 , e "barWeld" "8LcLqd1ZBa1CPYRK4LDVyDxzwWCSoN5NZXqFPWrGy7RS" 228 , e "barCat" "E8ad3F9S1GGfCxmDwcZzUUrkjqWbzEDRnuxxvdh92Q5u" 229 , e "barTake" "BQZzhV3xiMvEJWpAzjv2nJTxKu9XfGRmCG8iYBynP7Uv" 230 , e "barDrop" "4zNT1Sfc7yv1ujqpZHN6HM3qbMQ3yAh9f4zpjwgB65ao" 231 , e "_BarSliceToNat" "DbKqsHmZ1ZnXXZt8SatkyVU1hPMEk4ZcE6nn4JLmx1vr" 232 , e "barElemIndexEnd" "JXHswKJpbWwi9nDXpWwZvhSLwQNDGwRKcg1Nc7p3Yw5" 233 , e "barFlat" "3wHv6z3N9k2ZdDK57ZMe7ak1bMt4SodmtZQPUrHqeBR6" 234 , e "barElemIndexOff" "BJJ426tHsJ8qsBCZzxuykJmhDZw7VTg5Vso1Whk1nxr7" 235 , e "_DataTag" "EDQm1rudzF71qQPiAERwabdVg3drR91iWvZ5wswYBqpP" 236 , e "_LoadSeed" "CrDqS8Sx88JDYEVHVUDcKKUUPCw3wNKufetVMueYj3im" 237 , e "_SaveSeed" "5Hi3rZBUwYk8gU2DLVbPZ9aSv9jTBmQrQgZoqiS1ipv9" 238 , e "_LoadGerm" "41RM5TPfNkERjDHCVgnbPRYXfEKHVGXG7EzBob3UKaRN" 239 , e "_SaveGerm" "2EBsumzBMKnDfRyX3mdEH3FDUZFZi9ZKuiPMk7mFFo39" 240 , e "_TypeTag" "3XohyijyCTrFjend5kYB4uWbai4nrj1EPZ5i5ri4mUC6" 241 , e "w32" "75Y7bvtETWp2pyiH7cw2FamCWbtPozAaxjtryTHVRyEV" 242 , e "add32" "FRmrUPQBfwXEg5jzrnWFgwwd6kuB5E5y89y2fxpCPNtg" 243 , e "mul32" "87gy84iDhH2c3apkgbeLDELjgEooxmhyKB6tQpqBqK7e" 244 , e "div32" "2fJDSdzysSzhbAAoQTXDfzMBvywu2m54HVg3qQQtgkYX" 245 , e "and32" "FCTfDr3tXgmJkn7S6fHTgpkEDduGLyxWNvoYrCVNJaKs" 246 , e "or32" "9exT4skhpbwupT7NMs9P3WhfZSMJGMPEJ8WtJrwhz3tZ" 247 , e "xor32" "G8aQ6hEYU5zQxSwM2zzpKhQGvGdBw1p4bNsikwbGaSBF" 248 , e "lsh32" "DYk5Ni2veG7FsQBnbFbqEsNJUomvzfjU1eXx1NzwwTpG" 249 , e "rsh32" "HURMVABJ4BgTQXpvNLqGusYmbxJEoe7WwAZt5Ah3HTP7" 250 , e "sub32" "pmaUKHWyyQF54t4PK9APGATFRBpxQz2fDxuW4PtH3CN" 251 , e "ror32" "FqvahK5dGSuNLbkW8CckfCCk5E1hTRzgJZn49sN3n3Gk" 252 , e "rol32" "DkkPSvYjdeNfnHHRC7bEjcn59fBeJVpWhUVB3F344qjX" 253 , e "w64" "DBMbSnHhw96KYiaiFBQwYmMZrZbn1quHXWojsB7fUcKg" 254 , e "add64" "Gfhro53zr1EYuSaaJ15ptB5HGT13GWRE7kUPeo67oVKQ" 255 , e "mul64" "GTEJu6YrprQMTAZpqsn7JY7V1NbL7RyoVLyucmRtxxZN" 256 , e "div64" "6MzX5sV1czkdE59zBZZfMik3W2hwYiYGh8TVh8T8FZyz" 257 , e "and64" "3WfSJyX34w4pKe43aXeGgxXTzJf4XcPLUtqq3hHm2xrH" 258 , e "or64" "QksgZSJQKejVMUYSSrNKzg5M5miESqjf1n29i3XBz8Z" 259 , e "xor64" "CM1986Y3XmvK4eUfMDajLwqJW2AQBKQ3eVutR7wMLQ47" 260 , e "lsh64" "HBzV4W5EqLCwv1Tq7T7pgAxhSVxXdr2PgD4J25p2Y9PF" 261 , e "rsh64" "8L5bR9nKiTpWCRGA6TZ7syiQv788niZohNVFPMSuSpV9" 262 , e "sub64" "3poQCVWizWJXY3HSbSWtF2L2Jx8StqqDyhHLo6og77YJ" 263 , e "ror64" "4NFvztAE1SoJFUK9Tq5HGNgo6cdGzyPxfqUWVajCkyrc" 264 , e "rol64" "D59osscU4cp8KkQbMzhcvhjmy8KSiP7vuACF4xZJgfAs" 265 , e "iDiv64" "tJQF43B78SBkzN5hLnDvDbux6fRBEhZ3WjazYVoMBSd" 266 , e "_TryExp" "FpKGptdncF6G5z68HwVzwgHNQCBUB6fMvq451ASsRAcW" 267 , e "_Try" "3UkUWS7GRBMmhqMx2fokCLCv3SgsRZoxCUtoiv7RA7Qr" 268 , e "_Blake3" "3SYhSaiJ8UBF3gqdZ2FuFipV4pHUo9DnL8x8A6wsAWAK" 269 , e "par" "BfENjJMJwCJxcXUrfMkv2Z5Mpyt4npKH7aZaQ2BCDMEM" 270 , e "pseq" "3oUDABdakHWyyZyPQVBjRtGG3dXrLG3FdB1P1QR9V4os" 271 , e "_PlanHash" "BDcJhoneAK3vNRvfgyXsXLeoLXvRTpHVoTmrRFs1EzHx" 272 , e "_PinHash" "FM8i8x75ycTjJSVtvATMmC37bXsd5u7cF8x3NoAHdjkp" 273 ]