@coti-io/coti-contracts 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
  2. package/contracts/mocks/README.md +1 -1
  3. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +105 -280
  4. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +83 -187
  5. package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
  6. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +68 -116
  7. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
  8. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +70 -52
  9. package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
  10. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +102 -0
  11. package/contracts/mocks/utils/mpc/README.md +12 -12
  12. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
  13. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +162 -640
  14. package/contracts/onboard/AccountOnboard.sol +3 -3
  15. package/contracts/utils/mpc/MpcCore.sol +2835 -988
  16. package/contracts/utils/mpc/MpcInterface.sol +6 -4
  17. package/hardhat.config.ts +8 -5
  18. package/package.json +2 -2
  19. package/test/utils/accounts.ts +1 -1
  20. package/test/utils/mpc/Precompile.test.ts +26 -37
  21. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
  22. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
  23. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
  24. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +30 -10
  25. package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +39 -5
  26. package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
  27. package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +39 -5
  28. package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
  29. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
  30. package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
  31. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +221 -0
  32. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
  33. package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
  34. package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
  35. package/typechain-types/contracts/mocks/utils/mpc/index.ts +3 -6
  36. package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
  37. package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
  38. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
  39. package/typechain-types/contracts/utils/mpc/index.ts +1 -0
  40. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  41. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
  42. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  43. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
  44. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
  45. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
  46. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +20 -7
  47. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +28 -2
  48. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
  49. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
  50. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +28 -2
  51. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
  52. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
  53. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
  54. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
  55. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +289 -0
  56. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
  57. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  58. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  59. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
  60. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
  61. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +3 -4
  62. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
  63. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
  64. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
  65. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
  66. package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
  67. package/typechain-types/hardhat.d.ts +26 -26
  68. package/typechain-types/index.ts +8 -8
  69. package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
  70. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
  71. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
@@ -209,7 +209,7 @@ const _abi = [
209
209
  ] as const;
210
210
 
211
211
  const _bytecode =
212
- "0x608060405234801561001057600080fd5b506125fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638a4ef8541161005b5780638a4ef8541461010157806395bf7bb11461010b578063acbe845214610127578063f9ce33a91461014557610088565b806314f6161f1461008d57806335435c00146100ab57806376ae56a5146100c757806378f7d733146100e5575b600080fd5b610095610161565b6040516100a29190611777565b60405180910390f35b6100c560048036038101906100c091906117d1565b6101d3565b005b6100cf610218565b6040516100dc91906118aa565b60405180910390f35b6100ff60048036038101906100fa91906117d1565b6102a6565b005b6101096102eb565b005b61012560048036038101906101209190611931565b610377565b005b61012f6103f8565b60405161013c9190611999565b60405180910390f35b61015f600480360381019061015a91906119e0565b61040b565b005b6101696115af565b6000604051806020016040529081600082018054806020026020016040519081016040528092919081815260200182805480156101c557602002820191906000526020600020905b8154815260200190600101908083116101b1575b505050505081525050905090565b60006101e7826101e290611e55565b61048f565b90506101f2816105f6565b600160008201518160000190805190602001906102109291906115c2565b509050505050565b6002805461022590611e97565b80601f016020809104026020016040519081016040528092919081815260200182805461025190611e97565b801561029e5780601f106102735761010080835404028352916020019161029e565b820191906000526020600020905b81548152906001019060200180831161028157829003601f168201915b505050505081565b60006102ba826102b590611e55565b61048f565b90506102c681336106d4565b6000808201518160000190805190602001906102e39291906115c2565b509050505050565b600061035a60016040518060200160405290816000820180548060200260200160405190810160405280929190818152602001828054801561034c57602002820191906000526020600020905b815481526020019060010190808311610338575b5050505050815250506107b4565b905061036581610892565b600290816103739190612048565b5050565b60006103c683838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061096a565b90506103d281336106d4565b6000808201518160000190805190602001906103ef9291906115c2565b50905050505050565b600360009054906101000a900460ff1681565b600061041f8461041a90611e55565b61048f565b905060006104358461043090611e55565b61048f565b905060008315610450576104498383610b2f565b9050610465565b61046261045d8484610c22565b610d15565b90505b61046e81610db3565b600360006101000a81548160ff021916908315150217905550505050505050565b61049761160f565b600082602001515190508083600001516000015151146104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e390612166565b60405180910390fd5b600060405180602001604052808367ffffffffffffffff81111561051357610512611a70565b5b6040519080825280602002602001820160405280156105415781602001602082028036833780820191505090505b50815250905061054f611622565b60005b838110156105ea57856000015160000151818151811061057557610574612186565b5b60200260200101518260000181815250508560200151818151811061059d5761059c612186565b5b602002602001015182602001819052506105b682610e5a565b836000015182815181106105cd576105cc612186565b5b602002602001018181525050806105e3906121e4565b9050610552565b50819350505050919050565b6105fe6115af565b60008260000151519050600060405180602001604052808367ffffffffffffffff81111561062f5761062e611a70565b5b60405190808252806020026020018201604052801561065d5781602001602082028036833780820191505090505b50815250905060005b828110156106c9576106958560000151828151811061068857610687612186565b5b6020026020010151610f01565b826000015182815181106106ac576106ab612186565b5b602002602001018181525050806106c2906121e4565b9050610666565b508092505050919050565b6106dc6115af565b60008360000151519050600060405180602001604052808367ffffffffffffffff81111561070d5761070c611a70565b5b60405190808252806020026020018201604052801561073b5781602001602082028036833780820191505090505b50815250905060005b828110156107a8576107748660000151828151811061076657610765612186565b5b602002602001015186610f9e565b8260000151828151811061078b5761078a612186565b5b602002602001018181525050806107a1906121e4565b9050610744565b50809250505092915050565b6107bc61160f565b60008260000151519050600060405180602001604052808367ffffffffffffffff8111156107ed576107ec611a70565b5b60405190808252806020026020018201604052801561081b5781602001602082028036833780820191505090505b50815250905060005b82811015610887576108538560000151828151811061084657610845612186565b5b602002602001015161105d565b8260000151828151811061086a57610869612186565b5b60200260200101818152505080610880906121e4565b9050610824565b508092505050919050565b60606000826000015151905060006008826108ad919061222c565b67ffffffffffffffff8111156108c6576108c5611a70565b5b6040519080825280601f01601f1916602001820160405280156108f85781602001600182028036833780820191505090505b50905060008060005b8481101561095d576109308760000151828151811061092357610922612186565b5b60200260200101516110fa565b60c01b9250828260200185015260088261094a919061226e565b915080610956906121e4565b9050610901565b5082945050505050919050565b61097261160f565b60008290506000815190506000600860078361098e919061226e565b61099891906122d1565b9050600060405180602001604052808367ffffffffffffffff8111156109c1576109c0611a70565b5b6040519080825280602002602001820160405280156109ef5781602001602082028036833780820191505090505b508152509050600080600090505b600884610a0a919061222c565b811015610b21576000600882610a209190612302565b03610a3157600060c01b9150610a54565b60088277ffffffffffffffffffffffffffffffffffffffffffffffff1916901b91505b84811015610ac0576038868281518110610a7157610a70612186565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916901c821791505b6007600882610acf9190612302565b03610b1057610ae08260c01c611197565b8360000151600883610af291906122d1565b81518110610b0357610b02612186565b5b6020026020010181815250505b80610b1a906121e4565b90506109fd565b508195505050505050919050565b60008083600001515190508260000151518114610b5857610b50600061123e565b915050610c1c565b6000610ba28560000151600081518110610b7557610b74612186565b5b60200260200101518560000151600081518110610b9557610b94612186565b5b60200260200101516112f2565b90506000600190505b82811015610c1557610c0282610bfd88600001518481518110610bd157610bd0612186565b5b602002602001015188600001518581518110610bf057610bef612186565b5b60200260200101516112f2565b611389565b915080610c0e906121e4565b9050610bab565b5080925050505b92915050565b60008083600001515190508260000151518114610c4b57610c43600161123e565b915050610d0f565b6000610c958560000151600081518110610c6857610c67612186565b5b60200260200101518560000151600081518110610c8857610c87612186565b5b6020026020010151611420565b90506000600190505b82811015610d0857610cf582610cf088600001518481518110610cc457610cc3612186565b5b602002602001015188600001518581518110610ce357610ce2612186565b5b6020026020010151611420565b6114b7565b915080610d01906121e4565b9050610c9e565b5080925050505b92915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a60006004811115610d4857610d47612333565b5b60f81b846040518363ffffffff1660e01b8152600401610d699291906123ac565b6020604051808303816000875af1158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190612401565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160006004811115610de757610de6612333565b5b60f81b856040518363ffffffff1660e01b8152600401610e089291906123ac565b6020604051808303816000875af1158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190612401565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663e4f36e10600480811115610e8c57610e8b612333565b5b60f81b846000015185602001516040518463ffffffff1660e01b8152600401610eb793929190612483565b6020604051808303816000875af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa9190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600480811115610f3357610f32612333565b5b60f81b846040518363ffffffff1660e01b8152600401610f549291906123ac565b6020604051808303816000875af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16633c6f0e68600480811115610fd057610fcf612333565b5b60f81b8585604051602001610fe5919061253b565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161101293929190612483565b6020604051808303816000875af1158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561108f5761108e612333565b5b60f81b846040518363ffffffff1660e01b81526004016110b09291906123ac565b6020604051808303816000875af11580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f39190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561112c5761112b612333565b5b60f81b846040518363ffffffff1660e01b815260040161114d9291906123ac565b6020604051808303816000875af115801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606004808111156111c9576111c8612333565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016111f49291906123ac565b6020604051808303816000875af1158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190612401565b9050919050565b6000808261124d576000611250565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606000600481111561128657611285612333565b5b60f81b836040518363ffffffff1660e01b81526004016112a79291906123ac565b6020604051808303816000875af11580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190612401565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16637c12a1eb61131e600480600061154e565b85856040518463ffffffff1660e01b815260040161133e93929190612591565b6020604051808303816000875af115801561135d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113819190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16113b5600080600061154e565b85856040518463ffffffff1660e01b81526004016113d593929190612591565b6020604051808303816000875af11580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114189190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166342094c5661144c600480600061154e565b85856040518463ffffffff1660e01b815260040161146c93929190612591565b6020604051808303816000875af115801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6114e3600080600061154e565b85856040518463ffffffff1660e01b815260040161150393929190612591565b6020604051808303816000875af1158015611522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115469190612401565b905092915050565b600081600281111561156357611562612333565b5b60ff16600884600481111561157b5761157a612333565b5b61ffff16901b61ffff16601086600481111561159a57611599612333565b5b62ffffff16901b171760e81b90509392505050565b6040518060200160405280606081525090565b8280548282559060005260206000209081019282156115fe579160200282015b828111156115fd5782518255916020019190600101906115e2565b5b50905061160b919061163c565b5090565b6040518060200160405280606081525090565b604051806040016040528060008152602001606081525090565b5b8082111561165557600081600090555060010161163d565b5090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6000819050919050565b60006116b46116af6116aa84611685565b61168f565b611685565b9050919050565b6116c481611699565b82525050565b60006116d683836116bb565b60208301905092915050565b6000602082019050919050565b60006116fa82611659565b6117048185611664565b935061170f83611675565b8060005b8381101561174057815161172788826116ca565b9750611732836116e2565b925050600181019050611713565b5085935050505092915050565b6000602083016000830151848203600086015261176a82826116ef565b9150508091505092915050565b60006020820190508181036000830152611791818461174d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000604082840312156117c8576117c76117ad565b5b81905092915050565b6000602082840312156117e7576117e66117a3565b5b600082013567ffffffffffffffff811115611805576118046117a8565b5b611811848285016117b2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611854578082015181840152602081019050611839565b60008484015250505050565b6000601f19601f8301169050919050565b600061187c8261181a565b6118868185611825565b9350611896818560208601611836565b61189f81611860565b840191505092915050565b600060208201905081810360008301526118c48184611871565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126118f1576118f06118cc565b5b8235905067ffffffffffffffff81111561190e5761190d6118d1565b5b60208301915083600182028301111561192a576119296118d6565b5b9250929050565b60008060208385031215611948576119476117a3565b5b600083013567ffffffffffffffff811115611966576119656117a8565b5b611972858286016118db565b92509250509250929050565b60008115159050919050565b6119938161197e565b82525050565b60006020820190506119ae600083018461198a565b92915050565b6119bd8161197e565b81146119c857600080fd5b50565b6000813590506119da816119b4565b92915050565b6000806000606084860312156119f9576119f86117a3565b5b600084013567ffffffffffffffff811115611a1757611a166117a8565b5b611a23868287016117b2565b935050602084013567ffffffffffffffff811115611a4457611a436117a8565b5b611a50868287016117b2565b9250506040611a61868287016119cb565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aa882611860565b810181811067ffffffffffffffff82111715611ac757611ac6611a70565b5b80604052505050565b6000611ada611799565b9050611ae68282611a9f565b919050565b600080fd5b600067ffffffffffffffff821115611b0b57611b0a611a70565b5b602082029050602081019050919050565b611b2581611685565b8114611b3057600080fd5b50565b600081359050611b4281611b1c565b92915050565b6000611b5b611b5684611af0565b611ad0565b90508083825260208201905060208402830185811115611b7e57611b7d6118d6565b5b835b81811015611ba75780611b938882611b33565b845260208401935050602081019050611b80565b5050509392505050565b600082601f830112611bc657611bc56118cc565b5b8135611bd6848260208601611b48565b91505092915050565b600060208284031215611bf557611bf4611a6b565b5b611bff6020611ad0565b9050600082013567ffffffffffffffff811115611c1f57611c1e611aeb565b5b611c2b84828501611bb1565b60008301525092915050565b600067ffffffffffffffff821115611c5257611c51611a70565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115611c8357611c82611a70565b5b611c8c82611860565b9050602081019050919050565b82818337600083830152505050565b6000611cbb611cb684611c68565b611ad0565b905082815260208101848484011115611cd757611cd6611c63565b5b611ce2848285611c99565b509392505050565b600082601f830112611cff57611cfe6118cc565b5b8135611d0f848260208601611ca8565b91505092915050565b6000611d2b611d2684611c37565b611ad0565b90508083825260208201905060208402830185811115611d4e57611d4d6118d6565b5b835b81811015611d9557803567ffffffffffffffff811115611d7357611d726118cc565b5b808601611d808982611cea565b85526020850194505050602081019050611d50565b5050509392505050565b600082601f830112611db457611db36118cc565b5b8135611dc4848260208601611d18565b91505092915050565b600060408284031215611de357611de2611a6b565b5b611ded6040611ad0565b9050600082013567ffffffffffffffff811115611e0d57611e0c611aeb565b5b611e1984828501611bdf565b600083015250602082013567ffffffffffffffff811115611e3d57611e3c611aeb565b5b611e4984828501611d9f565b60208301525092915050565b6000611e613683611dcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eaf57607f821691505b602082108103611ec257611ec1611e68565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611f2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611eed565b611f348683611eed565b95508019841693508086168417925050509392505050565b6000819050919050565b611f5f83611699565b611f73611f6b82611f4c565b848454611efa565b825550505050565b600090565b611f88611f7b565b611f93818484611f56565b505050565b5b81811015611fb757611fac600082611f80565b600181019050611f99565b5050565b601f821115611ffc57611fcd81611ec8565b611fd684611edd565b81016020851015611fe5578190505b611ff9611ff185611edd565b830182611f98565b50505b505050565b600082821c905092915050565b600061201f60001984600802612001565b1980831691505092915050565b6000612038838361200e565b9150826002028217905092915050565b6120518261181a565b67ffffffffffffffff81111561206a57612069611a70565b5b6120748254611e97565b61207f828285611fbb565b600060209050601f8311600181146120b257600084156120a0578287015190505b6120aa858261202c565b865550612112565b601f1984166120c086611ec8565b60005b828110156120e8578489015182556001820191506020850194506020810190506120c3565b868310156121055784890151612101601f89168261200e565b8355505b6001600288020188555050505b505050505050565b7f4d50435f434f52453a20494e56414c49445f494e5055545f5445585400000000600082015250565b6000612150601c83611825565b915061215b8261211a565b602082019050919050565b6000602082019050818103600083015261217f81612143565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ef82611685565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612221576122206121b5565b5b600182019050919050565b600061223782611685565b915061224283611685565b925082820261225081611685565b91508282048414831517612267576122666121b5565b5b5092915050565b600061227982611685565b915061228483611685565b925082820190508082111561229c5761229b6121b5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122dc82611685565b91506122e783611685565b9250826122f7576122f66122a2565b5b828204905092915050565b600061230d82611685565b915061231883611685565b925082612328576123276122a2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61239781612362565b82525050565b6123a681611685565b82525050565b60006040820190506123c1600083018561238e565b6123ce602083018461239d565b9392505050565b6123de81611685565b81146123e957600080fd5b50565b6000815190506123fb816123d5565b92915050565b600060208284031215612417576124166117a3565b5b6000612425848285016123ec565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006124558261242e565b61245f8185612439565b935061246f818560208601611836565b61247881611860565b840191505092915050565b6000606082019050612498600083018661238e565b6124a5602083018561239d565b81810360408301526124b7818461244a565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124ec826124c1565b9050919050565b60008160601b9050919050565b600061250b826124f3565b9050919050565b600061251d82612500565b9050919050565b612535612530826124e1565b612512565b82525050565b60006125478284612524565b60148201915081905092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b61258b81612556565b82525050565b60006060820190506125a66000830186612582565b6125b3602083018561239d565b6125c0604083018461239d565b94935050505056fea2646970667358221220476ddd4c111fadb5c6b2a7bdd8d91c2149c1cf530de36c8ce15de800c4073aaa64736f6c63430008140033";
212
+ "0x608060405234801561001057600080fd5b506125fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638a4ef8541161005b5780638a4ef8541461010157806395bf7bb11461010b578063acbe845214610127578063f9ce33a91461014557610088565b806314f6161f1461008d57806335435c00146100ab57806376ae56a5146100c757806378f7d733146100e5575b600080fd5b610095610161565b6040516100a29190611777565b60405180910390f35b6100c560048036038101906100c091906117d1565b6101d3565b005b6100cf610218565b6040516100dc91906118aa565b60405180910390f35b6100ff60048036038101906100fa91906117d1565b6102a6565b005b6101096102eb565b005b61012560048036038101906101209190611931565b610377565b005b61012f6103f8565b60405161013c9190611999565b60405180910390f35b61015f600480360381019061015a91906119e0565b61040b565b005b6101696115af565b6000604051806020016040529081600082018054806020026020016040519081016040528092919081815260200182805480156101c557602002820191906000526020600020905b8154815260200190600101908083116101b1575b505050505081525050905090565b60006101e7826101e290611e55565b61048f565b90506101f2816105f6565b600160008201518160000190805190602001906102109291906115c2565b509050505050565b6002805461022590611e97565b80601f016020809104026020016040519081016040528092919081815260200182805461025190611e97565b801561029e5780601f106102735761010080835404028352916020019161029e565b820191906000526020600020905b81548152906001019060200180831161028157829003601f168201915b505050505081565b60006102ba826102b590611e55565b61048f565b90506102c681336106d4565b6000808201518160000190805190602001906102e39291906115c2565b509050505050565b600061035a60016040518060200160405290816000820180548060200260200160405190810160405280929190818152602001828054801561034c57602002820191906000526020600020905b815481526020019060010190808311610338575b5050505050815250506107b4565b905061036581610892565b600290816103739190612048565b5050565b60006103c683838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061096a565b90506103d281336106d4565b6000808201518160000190805190602001906103ef9291906115c2565b50905050505050565b600360009054906101000a900460ff1681565b600061041f8461041a90611e55565b61048f565b905060006104358461043090611e55565b61048f565b905060008315610450576104498383610b2f565b9050610465565b61046261045d8484610c22565b610d15565b90505b61046e81610db3565b600360006101000a81548160ff021916908315150217905550505050505050565b61049761160f565b600082602001515190508083600001516000015151146104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e390612166565b60405180910390fd5b600060405180602001604052808367ffffffffffffffff81111561051357610512611a70565b5b6040519080825280602002602001820160405280156105415781602001602082028036833780820191505090505b50815250905061054f611622565b60005b838110156105ea57856000015160000151818151811061057557610574612186565b5b60200260200101518260000181815250508560200151818151811061059d5761059c612186565b5b602002602001015182602001819052506105b682610e5a565b836000015182815181106105cd576105cc612186565b5b602002602001018181525050806105e3906121e4565b9050610552565b50819350505050919050565b6105fe6115af565b60008260000151519050600060405180602001604052808367ffffffffffffffff81111561062f5761062e611a70565b5b60405190808252806020026020018201604052801561065d5781602001602082028036833780820191505090505b50815250905060005b828110156106c9576106958560000151828151811061068857610687612186565b5b6020026020010151610f01565b826000015182815181106106ac576106ab612186565b5b602002602001018181525050806106c2906121e4565b9050610666565b508092505050919050565b6106dc6115af565b60008360000151519050600060405180602001604052808367ffffffffffffffff81111561070d5761070c611a70565b5b60405190808252806020026020018201604052801561073b5781602001602082028036833780820191505090505b50815250905060005b828110156107a8576107748660000151828151811061076657610765612186565b5b602002602001015186610f9e565b8260000151828151811061078b5761078a612186565b5b602002602001018181525050806107a1906121e4565b9050610744565b50809250505092915050565b6107bc61160f565b60008260000151519050600060405180602001604052808367ffffffffffffffff8111156107ed576107ec611a70565b5b60405190808252806020026020018201604052801561081b5781602001602082028036833780820191505090505b50815250905060005b82811015610887576108538560000151828151811061084657610845612186565b5b602002602001015161105d565b8260000151828151811061086a57610869612186565b5b60200260200101818152505080610880906121e4565b9050610824565b508092505050919050565b60606000826000015151905060006008826108ad919061222c565b67ffffffffffffffff8111156108c6576108c5611a70565b5b6040519080825280601f01601f1916602001820160405280156108f85781602001600182028036833780820191505090505b50905060008060005b8481101561095d576109308760000151828151811061092357610922612186565b5b60200260200101516110fa565b60c01b9250828260200185015260088261094a919061226e565b915080610956906121e4565b9050610901565b5082945050505050919050565b61097261160f565b60008290506000815190506000600860078361098e919061226e565b61099891906122d1565b9050600060405180602001604052808367ffffffffffffffff8111156109c1576109c0611a70565b5b6040519080825280602002602001820160405280156109ef5781602001602082028036833780820191505090505b508152509050600080600090505b600884610a0a919061222c565b811015610b21576000600882610a209190612302565b03610a3157600060c01b9150610a54565b60088277ffffffffffffffffffffffffffffffffffffffffffffffff1916901b91505b84811015610ac0576038868281518110610a7157610a70612186565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916901c821791505b6007600882610acf9190612302565b03610b1057610ae08260c01c611197565b8360000151600883610af291906122d1565b81518110610b0357610b02612186565b5b6020026020010181815250505b80610b1a906121e4565b90506109fd565b508195505050505050919050565b60008083600001515190508260000151518114610b5857610b50600061123e565b915050610c1c565b6000610ba28560000151600081518110610b7557610b74612186565b5b60200260200101518560000151600081518110610b9557610b94612186565b5b60200260200101516112f2565b90506000600190505b82811015610c1557610c0282610bfd88600001518481518110610bd157610bd0612186565b5b602002602001015188600001518581518110610bf057610bef612186565b5b60200260200101516112f2565b611389565b915080610c0e906121e4565b9050610bab565b5080925050505b92915050565b60008083600001515190508260000151518114610c4b57610c43600161123e565b915050610d0f565b6000610c958560000151600081518110610c6857610c67612186565b5b60200260200101518560000151600081518110610c8857610c87612186565b5b6020026020010151611420565b90506000600190505b82811015610d0857610cf582610cf088600001518481518110610cc457610cc3612186565b5b602002602001015188600001518581518110610ce357610ce2612186565b5b6020026020010151611420565b6114b7565b915080610d01906121e4565b9050610c9e565b5080925050505b92915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a60006004811115610d4857610d47612333565b5b60f81b846040518363ffffffff1660e01b8152600401610d699291906123ac565b6020604051808303816000875af1158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190612401565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160006004811115610de757610de6612333565b5b60f81b856040518363ffffffff1660e01b8152600401610e089291906123ac565b6020604051808303816000875af1158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190612401565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663e4f36e10600480811115610e8c57610e8b612333565b5b60f81b846000015185602001516040518463ffffffff1660e01b8152600401610eb793929190612483565b6020604051808303816000875af1158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa9190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600480811115610f3357610f32612333565b5b60f81b846040518363ffffffff1660e01b8152600401610f549291906123ac565b6020604051808303816000875af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16633c6f0e68600480811115610fd057610fcf612333565b5b60f81b8585604051602001610fe5919061253b565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161101293929190612483565b6020604051808303816000875af1158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561108f5761108e612333565b5b60f81b846040518363ffffffff1660e01b81526004016110b09291906123ac565b6020604051808303816000875af11580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f39190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561112c5761112b612333565b5b60f81b846040518363ffffffff1660e01b815260040161114d9291906123ac565b6020604051808303816000875af115801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190612401565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606004808111156111c9576111c8612333565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016111f49291906123ac565b6020604051808303816000875af1158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190612401565b9050919050565b6000808261124d576000611250565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606000600481111561128657611285612333565b5b60f81b836040518363ffffffff1660e01b81526004016112a79291906123ac565b6020604051808303816000875af11580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190612401565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16637c12a1eb61131e600480600061154e565b85856040518463ffffffff1660e01b815260040161133e93929190612591565b6020604051808303816000875af115801561135d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113819190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16113b5600080600061154e565b85856040518463ffffffff1660e01b81526004016113d593929190612591565b6020604051808303816000875af11580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114189190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166342094c5661144c600480600061154e565b85856040518463ffffffff1660e01b815260040161146c93929190612591565b6020604051808303816000875af115801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190612401565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6114e3600080600061154e565b85856040518463ffffffff1660e01b815260040161150393929190612591565b6020604051808303816000875af1158015611522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115469190612401565b905092915050565b600081600281111561156357611562612333565b5b60ff16600884600481111561157b5761157a612333565b5b61ffff16901b61ffff16601086600481111561159a57611599612333565b5b62ffffff16901b171760e81b90509392505050565b6040518060200160405280606081525090565b8280548282559060005260206000209081019282156115fe579160200282015b828111156115fd5782518255916020019190600101906115e2565b5b50905061160b919061163c565b5090565b6040518060200160405280606081525090565b604051806040016040528060008152602001606081525090565b5b8082111561165557600081600090555060010161163d565b5090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6000819050919050565b60006116b46116af6116aa84611685565b61168f565b611685565b9050919050565b6116c481611699565b82525050565b60006116d683836116bb565b60208301905092915050565b6000602082019050919050565b60006116fa82611659565b6117048185611664565b935061170f83611675565b8060005b8381101561174057815161172788826116ca565b9750611732836116e2565b925050600181019050611713565b5085935050505092915050565b6000602083016000830151848203600086015261176a82826116ef565b9150508091505092915050565b60006020820190508181036000830152611791818461174d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000604082840312156117c8576117c76117ad565b5b81905092915050565b6000602082840312156117e7576117e66117a3565b5b600082013567ffffffffffffffff811115611805576118046117a8565b5b611811848285016117b2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611854578082015181840152602081019050611839565b60008484015250505050565b6000601f19601f8301169050919050565b600061187c8261181a565b6118868185611825565b9350611896818560208601611836565b61189f81611860565b840191505092915050565b600060208201905081810360008301526118c48184611871565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126118f1576118f06118cc565b5b8235905067ffffffffffffffff81111561190e5761190d6118d1565b5b60208301915083600182028301111561192a576119296118d6565b5b9250929050565b60008060208385031215611948576119476117a3565b5b600083013567ffffffffffffffff811115611966576119656117a8565b5b611972858286016118db565b92509250509250929050565b60008115159050919050565b6119938161197e565b82525050565b60006020820190506119ae600083018461198a565b92915050565b6119bd8161197e565b81146119c857600080fd5b50565b6000813590506119da816119b4565b92915050565b6000806000606084860312156119f9576119f86117a3565b5b600084013567ffffffffffffffff811115611a1757611a166117a8565b5b611a23868287016117b2565b935050602084013567ffffffffffffffff811115611a4457611a436117a8565b5b611a50868287016117b2565b9250506040611a61868287016119cb565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aa882611860565b810181811067ffffffffffffffff82111715611ac757611ac6611a70565b5b80604052505050565b6000611ada611799565b9050611ae68282611a9f565b919050565b600080fd5b600067ffffffffffffffff821115611b0b57611b0a611a70565b5b602082029050602081019050919050565b611b2581611685565b8114611b3057600080fd5b50565b600081359050611b4281611b1c565b92915050565b6000611b5b611b5684611af0565b611ad0565b90508083825260208201905060208402830185811115611b7e57611b7d6118d6565b5b835b81811015611ba75780611b938882611b33565b845260208401935050602081019050611b80565b5050509392505050565b600082601f830112611bc657611bc56118cc565b5b8135611bd6848260208601611b48565b91505092915050565b600060208284031215611bf557611bf4611a6b565b5b611bff6020611ad0565b9050600082013567ffffffffffffffff811115611c1f57611c1e611aeb565b5b611c2b84828501611bb1565b60008301525092915050565b600067ffffffffffffffff821115611c5257611c51611a70565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115611c8357611c82611a70565b5b611c8c82611860565b9050602081019050919050565b82818337600083830152505050565b6000611cbb611cb684611c68565b611ad0565b905082815260208101848484011115611cd757611cd6611c63565b5b611ce2848285611c99565b509392505050565b600082601f830112611cff57611cfe6118cc565b5b8135611d0f848260208601611ca8565b91505092915050565b6000611d2b611d2684611c37565b611ad0565b90508083825260208201905060208402830185811115611d4e57611d4d6118d6565b5b835b81811015611d9557803567ffffffffffffffff811115611d7357611d726118cc565b5b808601611d808982611cea565b85526020850194505050602081019050611d50565b5050509392505050565b600082601f830112611db457611db36118cc565b5b8135611dc4848260208601611d18565b91505092915050565b600060408284031215611de357611de2611a6b565b5b611ded6040611ad0565b9050600082013567ffffffffffffffff811115611e0d57611e0c611aeb565b5b611e1984828501611bdf565b600083015250602082013567ffffffffffffffff811115611e3d57611e3c611aeb565b5b611e4984828501611d9f565b60208301525092915050565b6000611e613683611dcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eaf57607f821691505b602082108103611ec257611ec1611e68565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611f2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611eed565b611f348683611eed565b95508019841693508086168417925050509392505050565b6000819050919050565b611f5f83611699565b611f73611f6b82611f4c565b848454611efa565b825550505050565b600090565b611f88611f7b565b611f93818484611f56565b505050565b5b81811015611fb757611fac600082611f80565b600181019050611f99565b5050565b601f821115611ffc57611fcd81611ec8565b611fd684611edd565b81016020851015611fe5578190505b611ff9611ff185611edd565b830182611f98565b50505b505050565b600082821c905092915050565b600061201f60001984600802612001565b1980831691505092915050565b6000612038838361200e565b9150826002028217905092915050565b6120518261181a565b67ffffffffffffffff81111561206a57612069611a70565b5b6120748254611e97565b61207f828285611fbb565b600060209050601f8311600181146120b257600084156120a0578287015190505b6120aa858261202c565b865550612112565b601f1984166120c086611ec8565b60005b828110156120e8578489015182556001820191506020850194506020810190506120c3565b868310156121055784890151612101601f89168261200e565b8355505b6001600288020188555050505b505050505050565b7f4d50435f434f52453a20494e56414c49445f494e5055545f5445585400000000600082015250565b6000612150601c83611825565b915061215b8261211a565b602082019050919050565b6000602082019050818103600083015261217f81612143565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121ef82611685565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612221576122206121b5565b5b600182019050919050565b600061223782611685565b915061224283611685565b925082820261225081611685565b91508282048414831517612267576122666121b5565b5b5092915050565b600061227982611685565b915061228483611685565b925082820190508082111561229c5761229b6121b5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122dc82611685565b91506122e783611685565b9250826122f7576122f66122a2565b5b828204905092915050565b600061230d82611685565b915061231883611685565b925082612328576123276122a2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61239781612362565b82525050565b6123a681611685565b82525050565b60006040820190506123c1600083018561238e565b6123ce602083018461239d565b9392505050565b6123de81611685565b81146123e957600080fd5b50565b6000815190506123fb816123d5565b92915050565b600060208284031215612417576124166117a3565b5b6000612425848285016123ec565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006124558261242e565b61245f8185612439565b935061246f818560208601611836565b61247881611860565b840191505092915050565b6000606082019050612498600083018661238e565b6124a5602083018561239d565b81810360408301526124b7818461244a565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124ec826124c1565b9050919050565b60008160601b9050919050565b600061250b826124f3565b9050919050565b600061251d82612500565b9050919050565b612535612530826124e1565b612512565b82525050565b60006125478284612524565b60148201915081905092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b61258b81612556565b82525050565b60006060820190506125a66000830186612582565b6125b3602083018561239d565b6125c0604083018461239d565b94935050505056fea2646970667358221220d5158d01bcb8da4fa49890b68e3443634b9bf9d14cea8dd051a721a2d547b8d464736f6c63430008140033";
213
213
 
214
214
  type StringTestsContractConstructorParams =
215
215
  | [signer?: Signer]
@@ -85,7 +85,7 @@ const _abi = [
85
85
  type: "uint8",
86
86
  },
87
87
  ],
88
- name: "computeAndChekTransfer16",
88
+ name: "computeAndCheckTransfer16",
89
89
  outputs: [],
90
90
  stateMutability: "nonpayable",
91
91
  type: "function",
@@ -160,7 +160,7 @@ const _abi = [
160
160
  type: "uint8",
161
161
  },
162
162
  ],
163
- name: "computeAndChekTransfer32",
163
+ name: "computeAndCheckTransfer32",
164
164
  outputs: [],
165
165
  stateMutability: "nonpayable",
166
166
  type: "function",
@@ -235,7 +235,7 @@ const _abi = [
235
235
  type: "uint8",
236
236
  },
237
237
  ],
238
- name: "computeAndChekTransfer64",
238
+ name: "computeAndCheckTransfer64",
239
239
  outputs: [],
240
240
  stateMutability: "nonpayable",
241
241
  type: "function",
@@ -305,7 +305,7 @@ const _abi = [
305
305
  ] as const;
306
306
 
307
307
  const _bytecode =
308
- "0x608060405234801561001057600080fd5b5061261f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063298bd1a31461005c578063451353bb146100785780634717f97c14610094578063de9f7a7d146100b4578063df6d2101146100d0575b600080fd5b61007660048036038101906100719190612250565b610102565b005b610092600480360381019061008d9190612250565b610453565b005b61009c610648565b6040516100ab939291906122ee565b60405180910390f35b6100ce60048036038101906100c99190612250565b610687565b005b6100ea60048036038101906100e59190612325565b610b60565b6040516100f9939291906122ee565b60405180910390f35b600080600061011d88608001518960a001518660ff16610d7d565b92509250925061012c83610e38565b63ffffffff168760ff16148015610153575061014782610e38565b63ffffffff168660ff16145b801561016a575061016381610ed6565b1515851515145b6101a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a0906123fb565b60405180910390fd5b6101bf88600001518960a001518660ff16610f7d565b8093508194508295505050506101d483610e38565b63ffffffff168760ff161480156101fb57506101ef82610e38565b63ffffffff168660ff16145b8015610212575061020b81610ed6565b1515851515145b610251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610248906123fb565b60405180910390fd5b610267886080015189602001518660ff16611038565b80935081945082955050505061027c83610e38565b63ffffffff168760ff161480156102a3575061029782610e38565b63ffffffff168660ff16145b80156102ba57506102b381610ed6565b1515851515145b6102f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f0906123fb565b60405180910390fd5b61030f88604001518960a001518660ff166110f4565b80935081945082955050505061032483610e38565b63ffffffff168760ff1614801561034b575061033f82610e38565b63ffffffff168660ff16145b8015610362575061035b81610ed6565b1515851515145b6103a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610398906123fb565b60405180910390fd5b6103b7886080015189606001518660ff166111af565b8093508194508295505050506103cc83610e38565b63ffffffff168760ff161480156103f357506103e782610e38565b63ffffffff168660ff16145b801561040a575061040381610ed6565b1515851515145b610449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610440906123fb565b60405180910390fd5b5050505050505050565b600080600061046e886040015189606001518660ff1661126b565b92509250925061047d83611324565b61ffff168760ff161480156104a0575061049682611324565b61ffff168660ff16145b80156104b757506104b081610ed6565b1515851515145b6104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed906123fb565b60405180910390fd5b61050c886000015189606001518660ff166113c2565b80935081945082955050505061052183611324565b61ffff168760ff16148015610544575061053a82611324565b61ffff168660ff16145b801561055b575061055481610ed6565b1515851515145b61059a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610591906123fb565b60405180910390fd5b6105b0886040015189602001518660ff1661147b565b8093508194508295505050506105c583611324565b61ffff168760ff161480156105e857506105de82611324565b61ffff168660ff16145b80156105ff57506105f881610ed6565b1515851515145b61063e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610635906123fb565b60405180910390fd5b5050505050505050565b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b60008060006106a28860c001518960e001518660ff16611535565b9250925092506106b1836115f4565b67ffffffffffffffff168760ff161480156106e057506106d0826115f4565b67ffffffffffffffff168660ff16145b80156106f757506106f081610ed6565b1515851515145b610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d906123fb565b60405180910390fd5b61074c88600001518960e001518660ff16611691565b809350819450829550505050610761836115f4565b67ffffffffffffffff168760ff161480156107905750610780826115f4565b67ffffffffffffffff168660ff16145b80156107a757506107a081610ed6565b1515851515145b6107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd906123fb565b60405180910390fd5b6107fc8860c0015189602001518660ff16611750565b809350819450829550505050610811836115f4565b67ffffffffffffffff168760ff161480156108405750610830826115f4565b67ffffffffffffffff168660ff16145b8015610857575061085081610ed6565b1515851515145b610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906123fb565b60405180910390fd5b6108ac88604001518960e001518660ff16611810565b8093508194508295505050506108c1836115f4565b67ffffffffffffffff168760ff161480156108f057506108e0826115f4565b67ffffffffffffffff168660ff16145b8015610907575061090081610ed6565b1515851515145b610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d906123fb565b60405180910390fd5b61095c8860c0015189606001518660ff166118cf565b809350819450829550505050610971836115f4565b67ffffffffffffffff168760ff161480156109a05750610990826115f4565b67ffffffffffffffff168660ff16145b80156109b757506109b081610ed6565b1515851515145b6109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed906123fb565b60405180910390fd5b610a0c88608001518960e001518660ff1661198f565b809350819450829550505050610a21836115f4565b67ffffffffffffffff168760ff16148015610a505750610a40826115f4565b67ffffffffffffffff168660ff16145b8015610a675750610a6081610ed6565b1515851515145b610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d906123fb565b60405180910390fd5b610abc8860c001518960a001518660ff16611a4e565b809350819450829550505050610ad1836115f4565b67ffffffffffffffff168760ff16148015610b005750610af0826115f4565b67ffffffffffffffff168660ff16145b8015610b175750610b1081610ed6565b1515851515145b610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906123fb565b60405180910390fd5b5050505050505050565b6000806000610b6d611f76565b610b7687611b0e565b816000018181525050610b8886611b0e565b816020018181525050610b9d8760ff16611baf565b816040018181525050610bb28660ff16611baf565b816060018181525050610bc78760ff16611c51565b816080018181525050610bdc8660ff16611c51565b8160a0018181525050610bf18760ff16611cf5565b8160c0018181525050610c068660ff16611cf5565b8160e00181815250506000806000610c27846000015185602001518a611d9c565b925092509250610c3683611e53565b6000806101000a81548160ff021916908360ff160217905550610c5882611e53565b600060016101000a81548160ff021916908360ff160217905550610c7b81610ed6565b600060026101000a81548160ff021916908315150217905550610ccc8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610453565b610d048460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610102565b610d3c8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610687565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff169650965096505050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610db260038060036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401610dda9493929190612465565b6060604051808303816000875af1158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d91906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160036004811115610e6b57610e6a612529565b5b60f81b846040518363ffffffff1660e01b8152600401610e8c929190612593565b6020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906125bc565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160006004811115610f0a57610f09612529565b5b60f81b856040518363ffffffff1660e01b8152600401610f2b929190612593565b6020604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e91906125bc565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610fb260016003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401610fda9493929190612465565b6060604051808303816000875af1158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861106e6003600160036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b81526004016110969493929190612465565b6060604051808303816000875af11580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d991906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861112960026003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b81526004016111519493929190612465565b6060604051808303816000875af1158015611170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286111e56003600260036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b815260040161120d9493929190612465565b6060604051808303816000875af115801561122c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125091906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286112a060028060026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016112c69493929190612465565b6060604051808303816000875af11580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130991906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561135757611356612529565b5b60f81b846040518363ffffffff1660e01b8152600401611378929190612593565b6020604051808303816000875af1158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286113f760016002806001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b815260040161141d9493929190612465565b6060604051808303816000875af115801561143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146091906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286114b16002600160026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016114d79493929190612465565b6060604051808303816000875af11580156114f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151a91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861156a60048060046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016115969493929190612465565b6060604051808303816000875af11580156115b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d991906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561162657611625612529565b5b60f81b846040518363ffffffff1660e01b8152600401611647929190612593565b6020604051808303816000875af1158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286116c660016004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016116f29493929190612465565b6060604051808303816000875af1158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286117866004600160046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016117b29493929190612465565b6060604051808303816000875af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861184560026004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016118719493929190612465565b6060604051808303816000875af1158015611890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286119056004600260046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016119319493929190612465565b6060604051808303816000875af1158015611950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286119c460036004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016119f09493929190612465565b6060604051808303816000875af1158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3391906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611a846004600360046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b8152600401611ab09493929190612465565b6060604051808303816000875af1158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af391906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060016004811115611b4157611b40612529565b5b60f81b8460ff166040518363ffffffff1660e01b8152600401611b65929190612593565b6020604051808303816000875af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba891906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060026004811115611be257611be1612529565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401611c07929190612593565b6020604051808303816000875af1158015611c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4a91906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060036004811115611c8457611c83612529565b5b60f81b8463ffffffff166040518363ffffffff1660e01b8152600401611cab929190612593565b6020604051808303816000875af1158015611cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cee91906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600480811115611d2757611d26612529565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b8152600401611d52929190612593565b6020604051808303816000875af1158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9591906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611dd0600180600180611ef1565b8b8b8b60ff166040518563ffffffff1660e01b8152600401611df59493929190612465565b6060604051808303816000875af1158015611e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3891906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611e8657611e85612529565b5b60f81b846040518363ffffffff1660e01b8152600401611ea7929190612593565b6020604051808303816000875af1158015611ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eea91906125bc565b9050919050565b6000816002811115611f0657611f05612529565b5b60ff166008846004811115611f1e57611f1d612529565b5b61ffff16901b61ffff166010866004811115611f3d57611f3c612529565b5b62ffffff16901b62ffffff166018886004811115611f5e57611f5d612529565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61201882611fcf565b810181811067ffffffffffffffff8211171561203757612036611fe0565b5b80604052505050565b600061204a611fbb565b9050612056828261200f565b919050565b6000819050919050565b61206e8161205b565b811461207957600080fd5b50565b60008135905061208b81612065565b92915050565b61209a8161205b565b81146120a557600080fd5b50565b6000813590506120b781612091565b92915050565b6120c68161205b565b81146120d157600080fd5b50565b6000813590506120e3816120bd565b92915050565b6120f28161205b565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b6000610100828403121561212c5761212b611fca565b5b612137610100612040565b905060006121478482850161207c565b600083015250602061215b8482850161207c565b602083015250604061216f848285016120a8565b6040830152506060612183848285016120a8565b6060830152506080612197848285016120d4565b60808301525060a06121ab848285016120d4565b60a08301525060c06121bf84828501612100565b60c08301525060e06121d384828501612100565b60e08301525092915050565b600060ff82169050919050565b6121f5816121df565b811461220057600080fd5b50565b600081359050612212816121ec565b92915050565b60008115159050919050565b61222d81612218565b811461223857600080fd5b50565b60008135905061224a81612224565b92915050565b6000806000806000610180868803121561226d5761226c611fc5565b5b600061227b88828901612115565b95505061010061228d88828901612203565b94505061012061229f88828901612203565b9350506101406122b18882890161223b565b9250506101606122c388828901612203565b9150509295509295909350565b6122d9816121df565b82525050565b6122e881612218565b82525050565b600060608201905061230360008301866122d0565b61231060208301856122d0565b61231d60408301846122df565b949350505050565b60008060006060848603121561233e5761233d611fc5565b5b600061234c86828701612203565b935050602061235d86828701612203565b925050604061236e86828701612203565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a20636865636b207363616c6172206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006123e5602183612378565b91506123f082612389565b604082019050919050565b60006020820190508181036000830152612414816123d8565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124508161241b565b82525050565b61245f8161205b565b82525050565b600060808201905061247a6000830187612447565b6124876020830186612456565b6124946040830185612456565b6124a16060830184612456565b95945050505050565b6124b38161205b565b81146124be57600080fd5b50565b6000815190506124d0816124aa565b92915050565b6000806000606084860312156124ef576124ee611fc5565b5b60006124fd868287016124c1565b935050602061250e868287016124c1565b925050604061251f868287016124c1565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61258d81612558565b82525050565b60006040820190506125a86000830185612584565b6125b56020830184612456565b9392505050565b6000602082840312156125d2576125d1611fc5565b5b60006125e0848285016124c1565b9150509291505056fea2646970667358221220f9b3efaf3a5651e81e8b9aa383288344f2b71dbb24e5644f9f308bf3c74de0b464736f6c63430008140033";
308
+ "0x608060405234801561001057600080fd5b5061261f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806319902cb11461005c5780634717f97c1461007857806352fdcece14610098578063df6d2101146100b4578063ea8fe3d5146100e6575b600080fd5b61007660048036038101906100719190612250565b610102565b005b6100806105db565b60405161008f939291906122ee565b60405180910390f35b6100b260048036038101906100ad9190612250565b61061a565b005b6100ce60048036038101906100c99190612325565b61080f565b6040516100dd939291906122ee565b60405180910390f35b61010060048036038101906100fb9190612250565b610a2c565b005b600080600061011d8860c001518960e001518660ff16610d7d565b92509250925061012c83610e3c565b67ffffffffffffffff168760ff1614801561015b575061014b82610e3c565b67ffffffffffffffff168660ff16145b8015610172575061016b81610ed9565b1515851515145b6101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a8906123fb565b60405180910390fd5b6101c788600001518960e001518660ff16610f80565b8093508194508295505050506101dc83610e3c565b67ffffffffffffffff168760ff1614801561020b57506101fb82610e3c565b67ffffffffffffffff168660ff16145b8015610222575061021b81610ed9565b1515851515145b610261576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610258906123fb565b60405180910390fd5b6102778860c0015189602001518660ff1661103f565b80935081945082955050505061028c83610e3c565b67ffffffffffffffff168760ff161480156102bb57506102ab82610e3c565b67ffffffffffffffff168660ff16145b80156102d257506102cb81610ed9565b1515851515145b610311576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610308906123fb565b60405180910390fd5b61032788604001518960e001518660ff166110ff565b80935081945082955050505061033c83610e3c565b67ffffffffffffffff168760ff1614801561036b575061035b82610e3c565b67ffffffffffffffff168660ff16145b8015610382575061037b81610ed9565b1515851515145b6103c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b8906123fb565b60405180910390fd5b6103d78860c0015189606001518660ff166111be565b8093508194508295505050506103ec83610e3c565b67ffffffffffffffff168760ff1614801561041b575061040b82610e3c565b67ffffffffffffffff168660ff16145b8015610432575061042b81610ed9565b1515851515145b610471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610468906123fb565b60405180910390fd5b61048788608001518960e001518660ff1661127e565b80935081945082955050505061049c83610e3c565b67ffffffffffffffff168760ff161480156104cb57506104bb82610e3c565b67ffffffffffffffff168660ff16145b80156104e257506104db81610ed9565b1515851515145b610521576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610518906123fb565b60405180910390fd5b6105378860c001518960a001518660ff1661133d565b80935081945082955050505061054c83610e3c565b67ffffffffffffffff168760ff1614801561057b575061056b82610e3c565b67ffffffffffffffff168660ff16145b8015610592575061058b81610ed9565b1515851515145b6105d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c8906123fb565b60405180910390fd5b5050505050505050565b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b6000806000610635886040015189606001518660ff166113fd565b925092509250610644836114b6565b61ffff168760ff16148015610667575061065d826114b6565b61ffff168660ff16145b801561067e575061067781610ed9565b1515851515145b6106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b4906123fb565b60405180910390fd5b6106d3886000015189606001518660ff16611554565b8093508194508295505050506106e8836114b6565b61ffff168760ff1614801561070b5750610701826114b6565b61ffff168660ff16145b8015610722575061071b81610ed9565b1515851515145b610761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610758906123fb565b60405180910390fd5b610777886040015189602001518660ff1661160d565b80935081945082955050505061078c836114b6565b61ffff168760ff161480156107af57506107a5826114b6565b61ffff168660ff16145b80156107c657506107bf81610ed9565b1515851515145b610805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fc906123fb565b60405180910390fd5b5050505050505050565b600080600061081c611f76565b610825876116c7565b816000018181525050610837866116c7565b81602001818152505061084c8760ff16611768565b8160400181815250506108618660ff16611768565b8160600181815250506108768760ff1661180a565b81608001818152505061088b8660ff1661180a565b8160a00181815250506108a08760ff166118ae565b8160c00181815250506108b58660ff166118ae565b8160e001818152505060008060006108d6846000015185602001518a611955565b9250925092506108e583611a0c565b6000806101000a81548160ff021916908360ff16021790555061090782611a0c565b600060016101000a81548160ff021916908360ff16021790555061092a81610ed9565b600060026101000a81548160ff02191690831515021790555061097b8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c61061a565b6109b38460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610a2c565b6109eb8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610102565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff169650965096505050505093509350939050565b6000806000610a4788608001518960a001518660ff16611aaa565b925092509250610a5683611b65565b63ffffffff168760ff16148015610a7d5750610a7182611b65565b63ffffffff168660ff16145b8015610a945750610a8d81610ed9565b1515851515145b610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca906123fb565b60405180910390fd5b610ae988600001518960a001518660ff16611c03565b809350819450829550505050610afe83611b65565b63ffffffff168760ff16148015610b255750610b1982611b65565b63ffffffff168660ff16145b8015610b3c5750610b3581610ed9565b1515851515145b610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b72906123fb565b60405180910390fd5b610b91886080015189602001518660ff16611cbe565b809350819450829550505050610ba683611b65565b63ffffffff168760ff16148015610bcd5750610bc182611b65565b63ffffffff168660ff16145b8015610be45750610bdd81610ed9565b1515851515145b610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a906123fb565b60405180910390fd5b610c3988604001518960a001518660ff16611d7a565b809350819450829550505050610c4e83611b65565b63ffffffff168760ff16148015610c755750610c6982611b65565b63ffffffff168660ff16145b8015610c8c5750610c8581610ed9565b1515851515145b610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc2906123fb565b60405180910390fd5b610ce1886080015189606001518660ff16611e35565b809350819450829550505050610cf683611b65565b63ffffffff168760ff16148015610d1d5750610d1182611b65565b63ffffffff168660ff16145b8015610d345750610d2d81610ed9565b1515851515145b610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a906123fb565b60405180910390fd5b5050505050505050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610db260048060046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b8152600401610dde9493929190612465565b6060604051808303816000875af1158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600480811115610e6e57610e6d612529565b5b60f81b846040518363ffffffff1660e01b8152600401610e8f929190612593565b6020604051808303816000875af1158015610eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed291906125bc565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160006004811115610f0d57610f0c612529565b5b60f81b856040518363ffffffff1660e01b8152600401610f2e929190612593565b6020604051808303816000875af1158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7191906125bc565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610fb560016004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b8152600401610fe19493929190612465565b6060604051808303816000875af1158015611000573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286110756004600160046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016110a19493929190612465565b6060604051808303816000875af11580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861113460026004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016111609493929190612465565b6060604051808303816000875af115801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a391906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286111f46004600260046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016112209493929190612465565b6060604051808303816000875af115801561123f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126391906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286112b360036004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016112df9493929190612465565b6060604051808303816000875af11580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132291906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286113736004600360046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b815260040161139f9493929190612465565b6060604051808303816000875af11580156113be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e291906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861143260028060026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016114589493929190612465565b6060604051808303816000875af1158015611477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149b91906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600260048111156114e9576114e8612529565b5b60f81b846040518363ffffffff1660e01b815260040161150a929190612593565b6020604051808303816000875af1158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861158960016002806001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016115af9493929190612465565b6060604051808303816000875af11580156115ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f291906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286116436002600160026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016116699493929190612465565b6060604051808303816000875af1158015611688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ac91906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600160048111156116fa576116f9612529565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161171e929190612593565b6020604051808303816000875af115801561173d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176191906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606002600481111561179b5761179a612529565b5b60f81b8461ffff166040518363ffffffff1660e01b81526004016117c0929190612593565b6020604051808303816000875af11580156117df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180391906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561183d5761183c612529565b5b60f81b8463ffffffff166040518363ffffffff1660e01b8152600401611864929190612593565b6020604051808303816000875af1158015611883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a791906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606004808111156118e0576118df612529565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b815260040161190b929190612593565b6020604051808303816000875af115801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611989600180600180611ef1565b8b8b8b60ff166040518563ffffffff1660e01b81526004016119ae9493929190612465565b6060604051808303816000875af11580156119cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f191906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611a3f57611a3e612529565b5b60f81b846040518363ffffffff1660e01b8152600401611a60929190612593565b6020604051808303816000875af1158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa391906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611adf60038060036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401611b079493929190612465565b6060604051808303816000875af1158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a91906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160036004811115611b9857611b97612529565b5b60f81b846040518363ffffffff1660e01b8152600401611bb9929190612593565b6020604051808303816000875af1158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611c3860016003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401611c609493929190612465565b6060604051808303816000875af1158015611c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca391906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611cf46003600160036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401611d1c9493929190612465565b6060604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5f91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611daf60026003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401611dd79493929190612465565b6060604051808303816000875af1158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1a91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611e6b6003600260036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401611e939493929190612465565b6060604051808303816000875af1158015611eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed691906124d6565b92509250925082828295509550955050505093509350939050565b6000816002811115611f0657611f05612529565b5b60ff166008846004811115611f1e57611f1d612529565b5b61ffff16901b61ffff166010866004811115611f3d57611f3c612529565b5b62ffffff16901b62ffffff166018886004811115611f5e57611f5d612529565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61201882611fcf565b810181811067ffffffffffffffff8211171561203757612036611fe0565b5b80604052505050565b600061204a611fbb565b9050612056828261200f565b919050565b6000819050919050565b61206e8161205b565b811461207957600080fd5b50565b60008135905061208b81612065565b92915050565b61209a8161205b565b81146120a557600080fd5b50565b6000813590506120b781612091565b92915050565b6120c68161205b565b81146120d157600080fd5b50565b6000813590506120e3816120bd565b92915050565b6120f28161205b565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b6000610100828403121561212c5761212b611fca565b5b612137610100612040565b905060006121478482850161207c565b600083015250602061215b8482850161207c565b602083015250604061216f848285016120a8565b6040830152506060612183848285016120a8565b6060830152506080612197848285016120d4565b60808301525060a06121ab848285016120d4565b60a08301525060c06121bf84828501612100565b60c08301525060e06121d384828501612100565b60e08301525092915050565b600060ff82169050919050565b6121f5816121df565b811461220057600080fd5b50565b600081359050612212816121ec565b92915050565b60008115159050919050565b61222d81612218565b811461223857600080fd5b50565b60008135905061224a81612224565b92915050565b6000806000806000610180868803121561226d5761226c611fc5565b5b600061227b88828901612115565b95505061010061228d88828901612203565b94505061012061229f88828901612203565b9350506101406122b18882890161223b565b9250506101606122c388828901612203565b9150509295509295909350565b6122d9816121df565b82525050565b6122e881612218565b82525050565b600060608201905061230360008301866122d0565b61231060208301856122d0565b61231d60408301846122df565b949350505050565b60008060006060848603121561233e5761233d611fc5565b5b600061234c86828701612203565b935050602061235d86828701612203565b925050604061236e86828701612203565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a20636865636b207363616c6172206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006123e5602183612378565b91506123f082612389565b604082019050919050565b60006020820190508181036000830152612414816123d8565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124508161241b565b82525050565b61245f8161205b565b82525050565b600060808201905061247a6000830187612447565b6124876020830186612456565b6124946040830185612456565b6124a16060830184612456565b95945050505050565b6124b38161205b565b81146124be57600080fd5b50565b6000815190506124d0816124aa565b92915050565b6000806000606084860312156124ef576124ee611fc5565b5b60006124fd868287016124c1565b935050602061250e868287016124c1565b925050604061251f868287016124c1565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61258d81612558565b82525050565b60006040820190506125a86000830185612584565b6125b56020830184612456565b9392505050565b6000602082840312156125d2576125d1611fc5565b5b60006125e0848285016124c1565b9150509291505056fea26469706673582212203f7c1e238fdd61cc4936ebe41b048e1f28b48c0649260d091e95cdba16be526c64736f6c63430008140033";
309
309
 
310
310
  type TransferScalarTestsContractConstructorParams =
311
311
  | [signer?: Signer]
@@ -112,7 +112,7 @@ const _abi = [
112
112
  type: "bool",
113
113
  },
114
114
  ],
115
- name: "computeAndChekTransfer16",
115
+ name: "computeAndCheckTransfer16",
116
116
  outputs: [],
117
117
  stateMutability: "nonpayable",
118
118
  type: "function",
@@ -214,7 +214,7 @@ const _abi = [
214
214
  type: "bool",
215
215
  },
216
216
  ],
217
- name: "computeAndChekTransfer32",
217
+ name: "computeAndCheckTransfer32",
218
218
  outputs: [],
219
219
  stateMutability: "nonpayable",
220
220
  type: "function",
@@ -316,7 +316,7 @@ const _abi = [
316
316
  type: "bool",
317
317
  },
318
318
  ],
319
- name: "computeAndChekTransfer64",
319
+ name: "computeAndCheckTransfer64",
320
320
  outputs: [],
321
321
  stateMutability: "nonpayable",
322
322
  type: "function",
@@ -386,7 +386,7 @@ const _abi = [
386
386
  ] as const;
387
387
 
388
388
  const _bytecode =
389
- "0x608060405234801561001057600080fd5b5061573580620000216000396000f3fe608060405234801561001057600080fd5b50600436106100565760003560e01c80629839f51461005b5780634717f97c146100775780637012513114610097578063a7bb5454146100c9578063b83071d7146100e5575b600080fd5b61007560048036038101906100709190615248565b610101565b005b61007f610af1565b60405161008e939291906152e6565b60405180910390f35b6100b160048036038101906100ac919061531d565b610b30565b6040516100c0939291906152e6565b60405180910390f35b6100e360048036038101906100de9190615248565b610dbd565b005b6100ff60048036038101906100fa9190615248565b612122565b005b600080600061011d88608001518960a001518960400151612509565b92509250925061012c836125be565b63ffffffff168660ff161480156101535750610147826125be565b63ffffffff168560ff16145b801561016a57506101638161265c565b1515841515145b6101a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a0906153cd565b60405180910390fd5b6101c088600001518960a001518960400151612703565b8093508194508295505050506101d5836125be565b63ffffffff168660ff161480156101fc57506101f0826125be565b63ffffffff168560ff16145b8015610213575061020c8161265c565b1515841515145b610252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610249906153cd565b60405180910390fd5b6102698860800151896020015189604001516127b8565b80935081945082955050505061027e836125be565b63ffffffff168660ff161480156102a55750610299826125be565b63ffffffff168560ff16145b80156102bc57506102b58161265c565b1515841515145b6102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f2906153cd565b60405180910390fd5b61031288604001518960a00151896040015161286e565b809350819450829550505050610327836125be565b63ffffffff168660ff1614801561034e5750610342826125be565b63ffffffff168560ff16145b8015610365575061035e8161265c565b1515841515145b6103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b906153cd565b60405180910390fd5b6103bb886080015189606001518960400151612923565b8093508194508295505050506103d0836125be565b63ffffffff168660ff161480156103f757506103eb826125be565b63ffffffff168560ff16145b801561040e57506104078161265c565b1515841515145b61044d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610444906153cd565b60405180910390fd5b61046488608001518960a0015189600001516129d9565b809350819450829550505050610479836125be565b63ffffffff168660ff161480156104a05750610494826125be565b63ffffffff168560ff16145b80156104b757506104b08161265c565b1515841515145b6104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed906153cd565b60405180910390fd5b61050d88600001518960a001518960000151612a8e565b809350819450829550505050610522836125be565b63ffffffff168660ff16148015610549575061053d826125be565b63ffffffff168560ff16145b801561056057506105598161265c565b1515841515145b61059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610596906153cd565b60405180910390fd5b6105b6886080015189602001518960000151612b44565b8093508194508295505050506105cb836125be565b63ffffffff168660ff161480156105f257506105e6826125be565b63ffffffff168560ff16145b801561060957506106028161265c565b1515841515145b610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f906153cd565b60405180910390fd5b61065f88604001518960a001518960000151612bf9565b809350819450829550505050610674836125be565b63ffffffff168660ff1614801561069b575061068f826125be565b63ffffffff168560ff16145b80156106b257506106ab8161265c565b1515841515145b6106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e8906153cd565b60405180910390fd5b610708886080015189606001518960000151612caf565b80935081945082955050505061071d836125be565b63ffffffff168660ff161480156107445750610738826125be565b63ffffffff168560ff16145b801561075b57506107548161265c565b1515841515145b61079a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610791906153cd565b60405180910390fd5b6107b188608001518960a001518960200151612d65565b8093508194508295505050506107c6836125be565b63ffffffff168660ff161480156107ed57506107e1826125be565b63ffffffff168560ff16145b801561080457506107fd8161265c565b1515841515145b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906153cd565b60405180910390fd5b61085a88600001518960a001518960200151612e1a565b80935081945082955050505061086f836125be565b63ffffffff168660ff16148015610896575061088a826125be565b63ffffffff168560ff16145b80156108ad57506108a68161265c565b1515841515145b6108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e3906153cd565b60405180910390fd5b610903886080015189602001518960200151612ed0565b809350819450829550505050610918836125be565b63ffffffff168660ff1614801561093f5750610933826125be565b63ffffffff168560ff16145b8015610956575061094f8161265c565b1515841515145b610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906153cd565b60405180910390fd5b6109ac88604001518960a001518960200151612f86565b8093508194508295505050506109c1836125be565b63ffffffff168660ff161480156109e857506109dc826125be565b63ffffffff168560ff16145b80156109ff57506109f88161265c565b1515841515145b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a35906153cd565b60405180910390fd5b610a5588608001518960600151896020015161303c565b809350819450829550505050610a6a836125be565b63ffffffff168660ff16148015610a915750610a85826125be565b63ffffffff168560ff16145b8015610aa85750610aa18161265c565b1515841515145b610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906153cd565b60405180910390fd5b5050505050505050565b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b6000806000610b3d614eb0565b610b45614ef5565b610b4e886130f1565b826000018181525050610b60876130f1565b826020018181525050610b758860ff16613192565b826040018181525050610b8a8760ff16613192565b826060018181525050610b9f8860ff16613234565b826080018181525050610bb48760ff16613234565b8260a0018181525050610bc98860ff166132d8565b8260c0018181525050610bde8760ff166132d8565b8260e0018181525050610bf0866130f1565b816000018181525050610c058660ff16613192565b816020018181525050610c1a8660ff16613234565b816040018181525050610c2f8660ff166132d8565b81606001818152505085816080019060ff16908160ff16815250506000806000610c6685600001518660200151866000015161337f565b925092509250610c7583613434565b6000806101000a81548160ff021916908360ff160217905550610c9782613434565b600060016101000a81548160ff021916908360ff160217905550610cba8161265c565b600060026101000a81548160ff021916908315150217905550610d0b858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16612122565b610d43858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610101565b610d7b858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610dbd565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16975097509750505050505093509350939050565b6000806000610dd98860c001518960e0015189606001516134d2565b925092509250610de883613587565b67ffffffffffffffff168660ff16148015610e175750610e0782613587565b67ffffffffffffffff168560ff16145b8015610e2e5750610e278161265c565b1515841515145b610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490615439565b60405180910390fd5b610e8488600001518960e001518960600151613624565b809350819450829550505050610e9983613587565b67ffffffffffffffff168660ff16148015610ec85750610eb882613587565b67ffffffffffffffff168560ff16145b8015610edf5750610ed88161265c565b1515841515145b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590615439565b60405180910390fd5b610f358860c00151896020015189606001516136d9565b809350819450829550505050610f4a83613587565b67ffffffffffffffff168660ff16148015610f795750610f6982613587565b67ffffffffffffffff168560ff16145b8015610f905750610f898161265c565b1515841515145b610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690615439565b60405180910390fd5b610fe688604001518960e00151896060015161378f565b809350819450829550505050610ffb83613587565b67ffffffffffffffff168660ff1614801561102a575061101a82613587565b67ffffffffffffffff168560ff16145b8015611041575061103a8161265c565b1515841515145b611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790615439565b60405180910390fd5b6110978860c0015189606001518960600151613844565b8093508194508295505050506110ac83613587565b67ffffffffffffffff168660ff161480156110db57506110cb82613587565b67ffffffffffffffff168560ff16145b80156110f257506110eb8161265c565b1515841515145b611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890615439565b60405180910390fd5b61114888608001518960e0015189606001516138fa565b80935081945082955050505061115d83613587565b67ffffffffffffffff168660ff1614801561118c575061117c82613587565b67ffffffffffffffff168560ff16145b80156111a3575061119c8161265c565b1515841515145b6111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d990615439565b60405180910390fd5b6111f98860c001518960a0015189606001516139af565b80935081945082955050505061120e83613587565b67ffffffffffffffff168660ff1614801561123d575061122d82613587565b67ffffffffffffffff168560ff16145b8015611254575061124d8161265c565b1515841515145b611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90615439565b60405180910390fd5b6112aa8860c001518960e001518960400151613a65565b8093508194508295505050506112bf83613587565b67ffffffffffffffff168660ff161480156112ee57506112de82613587565b67ffffffffffffffff168560ff16145b801561130557506112fe8161265c565b1515841515145b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b906153cd565b60405180910390fd5b61135b88600001518960e001518960400151613b1a565b80935081945082955050505061137083613587565b67ffffffffffffffff168660ff1614801561139f575061138f82613587565b67ffffffffffffffff168560ff16145b80156113b657506113af8161265c565b1515841515145b6113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906153cd565b60405180910390fd5b61140c8860c0015189602001518960400151613bd0565b80935081945082955050505061142183613587565b67ffffffffffffffff168660ff16148015611450575061144082613587565b67ffffffffffffffff168560ff16145b801561146757506114608161265c565b1515841515145b6114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906153cd565b60405180910390fd5b6114bd88604001518960e001518960400151613c86565b8093508194508295505050506114d283613587565b67ffffffffffffffff168660ff1614801561150157506114f182613587565b67ffffffffffffffff168560ff16145b801561151857506115118161265c565b1515841515145b611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e906153cd565b60405180910390fd5b61156e8860c0015189606001518960400151613d3c565b80935081945082955050505061158383613587565b67ffffffffffffffff168660ff161480156115b257506115a282613587565b67ffffffffffffffff168560ff16145b80156115c957506115c28161265c565b1515841515145b611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff906153cd565b60405180910390fd5b61161f88608001518960e001518960400151613df2565b80935081945082955050505061163483613587565b67ffffffffffffffff168660ff16148015611663575061165382613587565b67ffffffffffffffff168560ff16145b801561167a57506116738161265c565b1515841515145b6116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b0906153cd565b60405180910390fd5b6116d08860c001518960a001518960400151613ea8565b8093508194508295505050506116e583613587565b67ffffffffffffffff168660ff16148015611714575061170482613587565b67ffffffffffffffff168560ff16145b801561172b57506117248161265c565b1515841515145b61176a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611761906153cd565b60405180910390fd5b6117818860c001518960e001518960000151613f5d565b80935081945082955050505061179683613587565b67ffffffffffffffff168660ff161480156117c557506117b582613587565b67ffffffffffffffff168560ff16145b80156117dc57506117d58161265c565b1515841515145b61181b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611812906154a5565b60405180910390fd5b61183288600001518960e001518960000151614012565b80935081945082955050505061184783613587565b67ffffffffffffffff168660ff16148015611876575061186682613587565b67ffffffffffffffff168560ff16145b801561188d57506118868161265c565b1515841515145b6118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c3906154a5565b60405180910390fd5b6118e38860c00151896020015189600001516140c8565b8093508194508295505050506118f883613587565b67ffffffffffffffff168660ff16148015611927575061191782613587565b67ffffffffffffffff168560ff16145b801561193e57506119378161265c565b1515841515145b61197d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611974906154a5565b60405180910390fd5b61199488604001518960e00151896000015161417d565b8093508194508295505050506119a983613587565b67ffffffffffffffff168660ff161480156119d857506119c882613587565b67ffffffffffffffff168560ff16145b80156119ef57506119e88161265c565b1515841515145b611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a25906154a5565b60405180910390fd5b611a458860c0015189606001518960000151614233565b809350819450829550505050611a5a83613587565b67ffffffffffffffff168660ff16148015611a895750611a7982613587565b67ffffffffffffffff168560ff16145b8015611aa05750611a998161265c565b1515841515145b611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad6906154a5565b60405180910390fd5b611af688608001518960e0015189600001516142e9565b809350819450829550505050611b0b83613587565b67ffffffffffffffff168660ff16148015611b3a5750611b2a82613587565b67ffffffffffffffff168560ff16145b8015611b515750611b4a8161265c565b1515841515145b611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b87906154a5565b60405180910390fd5b611ba78860c001518960a00151896000015161439f565b809350819450829550505050611bbc83613587565b67ffffffffffffffff168660ff16148015611beb5750611bdb82613587565b67ffffffffffffffff168560ff16145b8015611c025750611bfb8161265c565b1515841515145b611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906154a5565b60405180910390fd5b611c588860c001518960e001518960200151614455565b809350819450829550505050611c6d83613587565b67ffffffffffffffff168660ff16148015611c9c5750611c8c82613587565b67ffffffffffffffff168560ff16145b8015611cb35750611cac8161265c565b1515841515145b611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990615511565b60405180910390fd5b611d0988600001518960e00151896020015161450a565b809350819450829550505050611d1e83613587565b67ffffffffffffffff168660ff16148015611d4d5750611d3d82613587565b67ffffffffffffffff168560ff16145b8015611d645750611d5d8161265c565b1515841515145b611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90615511565b60405180910390fd5b611dba8860c00151896020015189602001516145c0565b809350819450829550505050611dcf83613587565b67ffffffffffffffff168660ff16148015611dfe5750611dee82613587565b67ffffffffffffffff168560ff16145b8015611e155750611e0e8161265c565b1515841515145b611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90615511565b60405180910390fd5b611e6b88604001518960e001518960200151614676565b809350819450829550505050611e8083613587565b67ffffffffffffffff168660ff16148015611eaf5750611e9f82613587565b67ffffffffffffffff168560ff16145b8015611ec65750611ebf8161265c565b1515841515145b611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90615511565b60405180910390fd5b611f1c8860c001518960600151896020015161472c565b809350819450829550505050611f3183613587565b67ffffffffffffffff168660ff16148015611f605750611f5082613587565b67ffffffffffffffff168560ff16145b8015611f775750611f708161265c565b1515841515145b611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad90615511565b60405180910390fd5b611fcd88608001518960e0015189602001516147e1565b809350819450829550505050611fe283613587565b67ffffffffffffffff168660ff16148015612011575061200182613587565b67ffffffffffffffff168560ff16145b801561202857506120218161265c565b1515841515145b612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e90615511565b60405180910390fd5b61207e8860c001518960a001518960200151614897565b80935081945082955050505061209383613587565b67ffffffffffffffff168660ff161480156120c257506120b282613587565b67ffffffffffffffff168560ff16145b80156120d957506120d28161265c565b1515841515145b612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90615511565b60405180910390fd5b5050505050505050565b600080600061213e88604001518960600151896000015161494d565b92509250925061214d83614a02565b61ffff168660ff16148015612170575061216682614a02565b61ffff168560ff16145b801561218757506121808161265c565b1515841515145b6121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90615511565b60405180910390fd5b6121dd886000015189606001518960000151614aa0565b8093508194508295505050506121f283614a02565b61ffff168660ff16148015612215575061220b82614a02565b61ffff168560ff16145b801561222c57506122258161265c565b1515841515145b61226b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226290615511565b60405180910390fd5b612282886040015189602001518960000151614b56565b80935081945082955050505061229783614a02565b61ffff168660ff161480156122ba57506122b082614a02565b61ffff168560ff16145b80156122d157506122ca8161265c565b1515841515145b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230790615511565b60405180910390fd5b612327886040015189606001518960200151614c0b565b80935081945082955050505061233c83614a02565b61ffff168660ff1614801561235f575061235582614a02565b61ffff168560ff16145b8015612376575061236f8161265c565b1515841515145b6123b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ac90615511565b60405180910390fd5b6123cc886000015189606001518960200151614cc0565b8093508194508295505050506123e183614a02565b61ffff168660ff1614801561240457506123fa82614a02565b61ffff168560ff16145b801561241b57506124148161265c565b1515841515145b61245a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245190615511565b60405180910390fd5b612471886040015189602001518960200151614d75565b80935081945082955050505061248683614a02565b61ffff168660ff161480156124a9575061249f82614a02565b61ffff168560ff16145b80156124c057506124b98161265c565b1515841515145b6124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690615511565b60405180910390fd5b5050505050505050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861253e60038060036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612560949392919061557b565b6060604051808303816000875af115801561257f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a391906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600360048111156125f1576125f061563f565b5b60f81b846040518363ffffffff1660e01b81526004016126129291906156a9565b6020604051808303816000875af1158015612631573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265591906156d2565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600060048111156126905761268f61563f565b5b60f81b856040518363ffffffff1660e01b81526004016126b19291906156a9565b6020604051808303816000875af11580156126d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f491906156d2565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861273860016003806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161275a949392919061557b565b6060604051808303816000875af1158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286127ee6003600160036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612810949392919061557b565b6060604051808303816000875af115801561282f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285391906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286128a360026003806000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016128c5949392919061557b565b6060604051808303816000875af11580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286129596003600260036000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161297b949392919061557b565b6060604051808303816000875af115801561299a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129be91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612a0e60038060016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612a30949392919061557b565b6060604051808303816000875af1158015612a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7391906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ac46001600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612ae6949392919061557b565b6060604051808303816000875af1158015612b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2991906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612b7960036001806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612b9b949392919061557b565b6060604051808303816000875af1158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612c2f6002600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612c51949392919061557b565b6060604051808303816000875af1158015612c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ce56003600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612d07949392919061557b565b6060604051808303816000875af1158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612d9a60038060026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612dbc949392919061557b565b6060604051808303816000875af1158015612ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dff91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612e506001600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612e72949392919061557b565b6060604051808303816000875af1158015612e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612f066003600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612f28949392919061557b565b6060604051808303816000875af1158015612f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612fbc6002600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612fde949392919061557b565b6060604051808303816000875af1158015612ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861307160036002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613093949392919061557b565b6060604051808303816000875af11580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d691906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600160048111156131245761312361563f565b5b60f81b8460ff166040518363ffffffff1660e01b81526004016131489291906156a9565b6020604051808303816000875af1158015613167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318b91906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156131c5576131c461563f565b5b60f81b8461ffff166040518363ffffffff1660e01b81526004016131ea9291906156a9565b6020604051808303816000875af1158015613209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322d91906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600360048111156132675761326661563f565b5b60f81b8463ffffffff166040518363ffffffff1660e01b815260040161328e9291906156a9565b6020604051808303816000875af11580156132ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d191906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561330a5761330961563f565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016133359291906156a9565b6020604051808303816000875af1158015613354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337891906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286133b460018060016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016133d6949392919061557b565b6060604051808303816000875af11580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600160048111156134675761346661563f565b5b60f81b846040518363ffffffff1660e01b81526004016134889291906156a9565b6020604051808303816000875af11580156134a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cb91906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861350760048060046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613529949392919061557b565b6060604051808303816000875af1158015613548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356c91906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616004808111156135b9576135b861563f565b5b60f81b846040518363ffffffff1660e01b81526004016135da9291906156a9565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d91906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861365960016004806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161367b949392919061557b565b6060604051808303816000875af115801561369a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136be91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861370f6004600160046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613731949392919061557b565b6060604051808303816000875af1158015613750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286137c460026004806000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016137e6949392919061557b565b6060604051808303816000875af1158015613805573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382991906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861387a6004600260046000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161389c949392919061557b565b6060604051808303816000875af11580156138bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138df91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861392f60036004806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613951949392919061557b565b6060604051808303816000875af1158015613970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286139e56004600360046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613a07949392919061557b565b6060604051808303816000875af1158015613a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613a9a60048060036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613abc949392919061557b565b6060604051808303816000875af1158015613adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aff91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613b506001600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613b72949392919061557b565b6060604051808303816000875af1158015613b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613c066004600160036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613c28949392919061557b565b6060604051808303816000875af1158015613c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613cbc6002600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613cde949392919061557b565b6060604051808303816000875af1158015613cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d2191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613d726004600260036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613d94949392919061557b565b6060604051808303816000875af1158015613db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dd791906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613e286003600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613e4a949392919061557b565b6060604051808303816000875af1158015613e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8d91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613edd60046003806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613eff949392919061557b565b6060604051808303816000875af1158015613f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613f9260048060016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613fb4949392919061557b565b6060604051808303816000875af1158015613fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff791906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286140486001600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161406a949392919061557b565b6060604051808303816000875af1158015614089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ad91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286140fd60046001806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161411f949392919061557b565b6060604051808303816000875af115801561413e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286141b36002600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016141d5949392919061557b565b6060604051808303816000875af11580156141f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061421891906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286142696004600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161428b949392919061557b565b6060604051808303816000875af11580156142aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142ce91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861431f6003600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614341949392919061557b565b6060604051808303816000875af1158015614360573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286143d56004600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016143f7949392919061557b565b6060604051808303816000875af1158015614416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861448a60048060026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016144ac949392919061557b565b6060604051808303816000875af11580156144cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144ef91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145406001600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614562949392919061557b565b6060604051808303816000875af1158015614581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145a591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145f66004600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614618949392919061557b565b6060604051808303816000875af1158015614637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061465b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286146ac6002600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016146ce949392919061557b565b6060604051808303816000875af11580156146ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861476160046002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614783949392919061557b565b6060604051808303816000875af11580156147a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147c691906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286148176003600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614839949392919061557b565b6060604051808303816000875af1158015614858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061487c91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286148cd6004600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016148ef949392919061557b565b6060604051808303816000875af115801561490e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061493291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861498260028060016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016149a4949392919061557b565b6060604051808303816000875af11580156149c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149e791906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160026004811115614a3557614a3461563f565b5b60f81b846040518363ffffffff1660e01b8152600401614a569291906156a9565b6020604051808303816000875af1158015614a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a9991906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614ad66001600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614af8949392919061557b565b6060604051808303816000875af1158015614b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b3b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614b8b60026001806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614bad949392919061557b565b6060604051808303816000875af1158015614bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bf091906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614c4060028060026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614c62949392919061557b565b6060604051808303816000875af1158015614c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ca591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614cf560016002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614d17949392919061557b565b6060604051808303816000875af1158015614d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d5a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614dab6002600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614dcd949392919061557b565b6060604051808303816000875af1158015614dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e1091906155ec565b92509250925082828295509550955050505093509350939050565b6000816002811115614e4057614e3f61563f565b5b60ff166008846004811115614e5857614e5761563f565b5b61ffff16901b61ffff166010866004811115614e7757614e7661563f565b5b62ffffff16901b62ffffff166018886004811115614e9857614e9761563f565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614f8482614f3b565b810181811067ffffffffffffffff82111715614fa357614fa2614f4c565b5b80604052505050565b6000614fb6614f27565b9050614fc28282614f7b565b919050565b6000819050919050565b614fda81614fc7565b8114614fe557600080fd5b50565b600081359050614ff781614fd1565b92915050565b61500681614fc7565b811461501157600080fd5b50565b60008135905061502381614ffd565b92915050565b61503281614fc7565b811461503d57600080fd5b50565b60008135905061504f81615029565b92915050565b61505e81614fc7565b811461506957600080fd5b50565b60008135905061507b81615055565b92915050565b6000610100828403121561509857615097614f36565b5b6150a3610100614fac565b905060006150b384828501614fe8565b60008301525060206150c784828501614fe8565b60208301525060406150db84828501615014565b60408301525060606150ef84828501615014565b606083015250608061510384828501615040565b60808301525060a061511784828501615040565b60a08301525060c061512b8482850161506c565b60c08301525060e061513f8482850161506c565b60e08301525092915050565b600060ff82169050919050565b6151618161514b565b811461516c57600080fd5b50565b60008135905061517e81615158565b92915050565b600060a0828403121561519a57615199614f36565b5b6151a460a0614fac565b905060006151b484828501614fe8565b60008301525060206151c884828501615014565b60208301525060406151dc84828501615040565b60408301525060606151f08482850161506c565b60608301525060806152048482850161516f565b60808301525092915050565b60008115159050919050565b61522581615210565b811461523057600080fd5b50565b6000813590506152428161521c565b92915050565b6000806000806000610200868803121561526557615264614f31565b5b600061527388828901615081565b95505061010061528588828901615184565b9450506101a06152978882890161516f565b9350506101c06152a98882890161516f565b9250506101e06152bb88828901615233565b9150509295509295909350565b6152d18161514b565b82525050565b6152e081615210565b82525050565b60006060820190506152fb60008301866152c8565b61530860208301856152c8565b61531560408301846152d7565b949350505050565b60008060006060848603121561533657615335614f31565b5b60006153448682870161516f565b93505060206153558682870161516f565b92505060406153668682870161516f565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a2063617374203332206661696c656400000000600082015250565b60006153b7601c83615370565b91506153c282615381565b602082019050919050565b600060208201905081810360008301526153e6816153aa565b9050919050565b7f7472616e73666572546573743a2063617374203634206661696c656400000000600082015250565b6000615423601c83615370565b915061542e826153ed565b602082019050919050565b6000602082019050818103600083015261545281615416565b9050919050565b7f7472616e73666572546573743a20636173742038206661696c65640000000000600082015250565b600061548f601b83615370565b915061549a82615459565b602082019050919050565b600060208201905081810360008301526154be81615482565b9050919050565b7f7472616e73666572546573743a2063617374203136206661696c656400000000600082015250565b60006154fb601c83615370565b9150615506826154c5565b602082019050919050565b6000602082019050818103600083015261552a816154ee565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61556681615531565b82525050565b61557581614fc7565b82525050565b6000608082019050615590600083018761555d565b61559d602083018661556c565b6155aa604083018561556c565b6155b7606083018461556c565b95945050505050565b6155c981614fc7565b81146155d457600080fd5b50565b6000815190506155e6816155c0565b92915050565b60008060006060848603121561560557615604614f31565b5b6000615613868287016155d7565b9350506020615624868287016155d7565b9250506040615635868287016155d7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6156a38161566e565b82525050565b60006040820190506156be600083018561569a565b6156cb602083018461556c565b9392505050565b6000602082840312156156e8576156e7614f31565b5b60006156f6848285016155d7565b9150509291505056fea26469706673582212201efe314b3f951e90a274c03bfc894408e4c4d4a3ac22382db0e9a08643fe01fa64736f6c63430008140033";
389
+ "0x608060405234801561001057600080fd5b5061573680620000216000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80634717f97c1461005c5780636a3ae6541461007c5780637012513114610098578063d7b0fe63146100ca578063f6029cb3146100e6575b600080fd5b610064610102565b60405161007393929190614f5f565b60405180910390f35b6100966004803603810190610091919061529e565b610141565b005b6100b260048036038101906100ad919061531e565b610b31565b6040516100c193929190614f5f565b60405180910390f35b6100e460048036038101906100df919061529e565b610dbe565b005b61010060048036038101906100fb919061529e565b6111a5565b005b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b600080600061015d88608001518960a00151896040015161250a565b92509250925061016c836125bf565b63ffffffff168660ff161480156101935750610187826125bf565b63ffffffff168560ff16145b80156101aa57506101a38161265d565b1515841515145b6101e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e0906153ce565b60405180910390fd5b61020088600001518960a001518960400151612704565b809350819450829550505050610215836125bf565b63ffffffff168660ff1614801561023c5750610230826125bf565b63ffffffff168560ff16145b8015610253575061024c8161265d565b1515841515145b610292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610289906153ce565b60405180910390fd5b6102a98860800151896020015189604001516127b9565b8093508194508295505050506102be836125bf565b63ffffffff168660ff161480156102e557506102d9826125bf565b63ffffffff168560ff16145b80156102fc57506102f58161265d565b1515841515145b61033b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610332906153ce565b60405180910390fd5b61035288604001518960a00151896040015161286f565b809350819450829550505050610367836125bf565b63ffffffff168660ff1614801561038e5750610382826125bf565b63ffffffff168560ff16145b80156103a5575061039e8161265d565b1515841515145b6103e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103db906153ce565b60405180910390fd5b6103fb886080015189606001518960400151612924565b809350819450829550505050610410836125bf565b63ffffffff168660ff16148015610437575061042b826125bf565b63ffffffff168560ff16145b801561044e57506104478161265d565b1515841515145b61048d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610484906153ce565b60405180910390fd5b6104a488608001518960a0015189600001516129da565b8093508194508295505050506104b9836125bf565b63ffffffff168660ff161480156104e057506104d4826125bf565b63ffffffff168560ff16145b80156104f757506104f08161265d565b1515841515145b610536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052d906153ce565b60405180910390fd5b61054d88600001518960a001518960000151612a8f565b809350819450829550505050610562836125bf565b63ffffffff168660ff16148015610589575061057d826125bf565b63ffffffff168560ff16145b80156105a057506105998161265d565b1515841515145b6105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906153ce565b60405180910390fd5b6105f6886080015189602001518960000151612b45565b80935081945082955050505061060b836125bf565b63ffffffff168660ff161480156106325750610626826125bf565b63ffffffff168560ff16145b801561064957506106428161265d565b1515841515145b610688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067f906153ce565b60405180910390fd5b61069f88604001518960a001518960000151612bfa565b8093508194508295505050506106b4836125bf565b63ffffffff168660ff161480156106db57506106cf826125bf565b63ffffffff168560ff16145b80156106f257506106eb8161265d565b1515841515145b610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906153ce565b60405180910390fd5b610748886080015189606001518960000151612cb0565b80935081945082955050505061075d836125bf565b63ffffffff168660ff161480156107845750610778826125bf565b63ffffffff168560ff16145b801561079b57506107948161265d565b1515841515145b6107da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d1906153ce565b60405180910390fd5b6107f188608001518960a001518960200151612d66565b809350819450829550505050610806836125bf565b63ffffffff168660ff1614801561082d5750610821826125bf565b63ffffffff168560ff16145b8015610844575061083d8161265d565b1515841515145b610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a906153ce565b60405180910390fd5b61089a88600001518960a001518960200151612e1b565b8093508194508295505050506108af836125bf565b63ffffffff168660ff161480156108d657506108ca826125bf565b63ffffffff168560ff16145b80156108ed57506108e68161265d565b1515841515145b61092c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610923906153ce565b60405180910390fd5b610943886080015189602001518960200151612ed1565b809350819450829550505050610958836125bf565b63ffffffff168660ff1614801561097f5750610973826125bf565b63ffffffff168560ff16145b8015610996575061098f8161265d565b1515841515145b6109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc906153ce565b60405180910390fd5b6109ec88604001518960a001518960200151612f87565b809350819450829550505050610a01836125bf565b63ffffffff168660ff16148015610a285750610a1c826125bf565b63ffffffff168560ff16145b8015610a3f5750610a388161265d565b1515841515145b610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a75906153ce565b60405180910390fd5b610a9588608001518960600151896020015161303d565b809350819450829550505050610aaa836125bf565b63ffffffff168660ff16148015610ad15750610ac5826125bf565b63ffffffff168560ff16145b8015610ae85750610ae18161265d565b1515841515145b610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906153ce565b60405180910390fd5b5050505050505050565b6000806000610b3e614eb1565b610b46614ef6565b610b4f886130f2565b826000018181525050610b61876130f2565b826020018181525050610b768860ff16613193565b826040018181525050610b8b8760ff16613193565b826060018181525050610ba08860ff16613235565b826080018181525050610bb58760ff16613235565b8260a0018181525050610bca8860ff166132d9565b8260c0018181525050610bdf8760ff166132d9565b8260e0018181525050610bf1866130f2565b816000018181525050610c068660ff16613193565b816020018181525050610c1b8660ff16613235565b816040018181525050610c308660ff166132d9565b81606001818152505085816080019060ff16908160ff16815250506000806000610c67856000015186602001518660000151613380565b925092509250610c7683613435565b6000806101000a81548160ff021916908360ff160217905550610c9882613435565b600060016101000a81548160ff021916908360ff160217905550610cbb8161265d565b600060026101000a81548160ff021916908315150217905550610d0c858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610dbe565b610d44858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610141565b610d7c858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff166111a5565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16975097509750505050505093509350939050565b6000806000610dda8860400151896060015189600001516134d3565b925092509250610de983613588565b61ffff168660ff16148015610e0c5750610e0282613588565b61ffff168560ff16145b8015610e235750610e1c8161265d565b1515841515145b610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e599061543a565b60405180910390fd5b610e79886000015189606001518960000151613626565b809350819450829550505050610e8e83613588565b61ffff168660ff16148015610eb15750610ea782613588565b61ffff168560ff16145b8015610ec85750610ec18161265d565b1515841515145b610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe9061543a565b60405180910390fd5b610f1e8860400151896020015189600001516136dc565b809350819450829550505050610f3383613588565b61ffff168660ff16148015610f565750610f4c82613588565b61ffff168560ff16145b8015610f6d5750610f668161265d565b1515841515145b610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa39061543a565b60405180910390fd5b610fc3886040015189606001518960200151613791565b809350819450829550505050610fd883613588565b61ffff168660ff16148015610ffb5750610ff182613588565b61ffff168560ff16145b8015611012575061100b8161265d565b1515841515145b611051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110489061543a565b60405180910390fd5b611068886000015189606001518960200151613846565b80935081945082955050505061107d83613588565b61ffff168660ff161480156110a0575061109682613588565b61ffff168560ff16145b80156110b757506110b08161265d565b1515841515145b6110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed9061543a565b60405180910390fd5b61110d8860400151896020015189602001516138fb565b80935081945082955050505061112283613588565b61ffff168660ff16148015611145575061113b82613588565b61ffff168560ff16145b801561115c57506111558161265d565b1515841515145b61119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061543a565b60405180910390fd5b5050505050505050565b60008060006111c18860c001518960e0015189606001516139b1565b9250925092506111d083613a66565b67ffffffffffffffff168660ff161480156111ff57506111ef82613a66565b67ffffffffffffffff168560ff16145b8015611216575061120f8161265d565b1515841515145b611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c906154a6565b60405180910390fd5b61126c88600001518960e001518960600151613b03565b80935081945082955050505061128183613a66565b67ffffffffffffffff168660ff161480156112b057506112a082613a66565b67ffffffffffffffff168560ff16145b80156112c757506112c08161265d565b1515841515145b611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd906154a6565b60405180910390fd5b61131d8860c0015189602001518960600151613bb8565b80935081945082955050505061133283613a66565b67ffffffffffffffff168660ff16148015611361575061135182613a66565b67ffffffffffffffff168560ff16145b801561137857506113718161265d565b1515841515145b6113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae906154a6565b60405180910390fd5b6113ce88604001518960e001518960600151613c6e565b8093508194508295505050506113e383613a66565b67ffffffffffffffff168660ff16148015611412575061140282613a66565b67ffffffffffffffff168560ff16145b801561142957506114228161265d565b1515841515145b611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f906154a6565b60405180910390fd5b61147f8860c0015189606001518960600151613d23565b80935081945082955050505061149483613a66565b67ffffffffffffffff168660ff161480156114c357506114b382613a66565b67ffffffffffffffff168560ff16145b80156114da57506114d38161265d565b1515841515145b611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906154a6565b60405180910390fd5b61153088608001518960e001518960600151613dd9565b80935081945082955050505061154583613a66565b67ffffffffffffffff168660ff16148015611574575061156482613a66565b67ffffffffffffffff168560ff16145b801561158b57506115848161265d565b1515841515145b6115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c1906154a6565b60405180910390fd5b6115e18860c001518960a001518960600151613e8e565b8093508194508295505050506115f683613a66565b67ffffffffffffffff168660ff16148015611625575061161582613a66565b67ffffffffffffffff168560ff16145b801561163c57506116358161265d565b1515841515145b61167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906154a6565b60405180910390fd5b6116928860c001518960e001518960400151613f44565b8093508194508295505050506116a783613a66565b67ffffffffffffffff168660ff161480156116d657506116c682613a66565b67ffffffffffffffff168560ff16145b80156116ed57506116e68161265d565b1515841515145b61172c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611723906153ce565b60405180910390fd5b61174388600001518960e001518960400151613ff9565b80935081945082955050505061175883613a66565b67ffffffffffffffff168660ff16148015611787575061177782613a66565b67ffffffffffffffff168560ff16145b801561179e57506117978161265d565b1515841515145b6117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d4906153ce565b60405180910390fd5b6117f48860c00151896020015189604001516140af565b80935081945082955050505061180983613a66565b67ffffffffffffffff168660ff16148015611838575061182882613a66565b67ffffffffffffffff168560ff16145b801561184f57506118488161265d565b1515841515145b61188e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611885906153ce565b60405180910390fd5b6118a588604001518960e001518960400151614165565b8093508194508295505050506118ba83613a66565b67ffffffffffffffff168660ff161480156118e957506118d982613a66565b67ffffffffffffffff168560ff16145b801561190057506118f98161265d565b1515841515145b61193f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611936906153ce565b60405180910390fd5b6119568860c001518960600151896040015161421b565b80935081945082955050505061196b83613a66565b67ffffffffffffffff168660ff1614801561199a575061198a82613a66565b67ffffffffffffffff168560ff16145b80156119b157506119aa8161265d565b1515841515145b6119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e7906153ce565b60405180910390fd5b611a0788608001518960e0015189604001516142d1565b809350819450829550505050611a1c83613a66565b67ffffffffffffffff168660ff16148015611a4b5750611a3b82613a66565b67ffffffffffffffff168560ff16145b8015611a625750611a5b8161265d565b1515841515145b611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a98906153ce565b60405180910390fd5b611ab88860c001518960a001518960400151614387565b809350819450829550505050611acd83613a66565b67ffffffffffffffff168660ff16148015611afc5750611aec82613a66565b67ffffffffffffffff168560ff16145b8015611b135750611b0c8161265d565b1515841515145b611b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b49906153ce565b60405180910390fd5b611b698860c001518960e00151896000015161443c565b809350819450829550505050611b7e83613a66565b67ffffffffffffffff168660ff16148015611bad5750611b9d82613a66565b67ffffffffffffffff168560ff16145b8015611bc45750611bbd8161265d565b1515841515145b611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90615512565b60405180910390fd5b611c1a88600001518960e0015189600001516144f1565b809350819450829550505050611c2f83613a66565b67ffffffffffffffff168660ff16148015611c5e5750611c4e82613a66565b67ffffffffffffffff168560ff16145b8015611c755750611c6e8161265d565b1515841515145b611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab90615512565b60405180910390fd5b611ccb8860c00151896020015189600001516145a7565b809350819450829550505050611ce083613a66565b67ffffffffffffffff168660ff16148015611d0f5750611cff82613a66565b67ffffffffffffffff168560ff16145b8015611d265750611d1f8161265d565b1515841515145b611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90615512565b60405180910390fd5b611d7c88604001518960e00151896000015161465c565b809350819450829550505050611d9183613a66565b67ffffffffffffffff168660ff16148015611dc05750611db082613a66565b67ffffffffffffffff168560ff16145b8015611dd75750611dd08161265d565b1515841515145b611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90615512565b60405180910390fd5b611e2d8860c0015189606001518960000151614712565b809350819450829550505050611e4283613a66565b67ffffffffffffffff168660ff16148015611e715750611e6182613a66565b67ffffffffffffffff168560ff16145b8015611e885750611e818161265d565b1515841515145b611ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebe90615512565b60405180910390fd5b611ede88608001518960e0015189600001516147c8565b809350819450829550505050611ef383613a66565b67ffffffffffffffff168660ff16148015611f225750611f1282613a66565b67ffffffffffffffff168560ff16145b8015611f395750611f328161265d565b1515841515145b611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90615512565b60405180910390fd5b611f8f8860c001518960a00151896000015161487e565b809350819450829550505050611fa483613a66565b67ffffffffffffffff168660ff16148015611fd35750611fc382613a66565b67ffffffffffffffff168560ff16145b8015611fea5750611fe38161265d565b1515841515145b612029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202090615512565b60405180910390fd5b6120408860c001518960e001518960200151614934565b80935081945082955050505061205583613a66565b67ffffffffffffffff168660ff16148015612084575061207482613a66565b67ffffffffffffffff168560ff16145b801561209b57506120948161265d565b1515841515145b6120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d19061543a565b60405180910390fd5b6120f188600001518960e0015189602001516149e9565b80935081945082955050505061210683613a66565b67ffffffffffffffff168660ff16148015612135575061212582613a66565b67ffffffffffffffff168560ff16145b801561214c57506121458161265d565b1515841515145b61218b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121829061543a565b60405180910390fd5b6121a28860c0015189602001518960200151614a9f565b8093508194508295505050506121b783613a66565b67ffffffffffffffff168660ff161480156121e657506121d682613a66565b67ffffffffffffffff168560ff16145b80156121fd57506121f68161265d565b1515841515145b61223c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122339061543a565b60405180910390fd5b61225388604001518960e001518960200151614b55565b80935081945082955050505061226883613a66565b67ffffffffffffffff168660ff16148015612297575061228782613a66565b67ffffffffffffffff168560ff16145b80156122ae57506122a78161265d565b1515841515145b6122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e49061543a565b60405180910390fd5b6123048860c0015189606001518960200151614c0b565b80935081945082955050505061231983613a66565b67ffffffffffffffff168660ff16148015612348575061233882613a66565b67ffffffffffffffff168560ff16145b801561235f57506123588161265d565b1515841515145b61239e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123959061543a565b60405180910390fd5b6123b588608001518960e001518960200151614cc0565b8093508194508295505050506123ca83613a66565b67ffffffffffffffff168660ff161480156123f957506123e982613a66565b67ffffffffffffffff168560ff16145b801561241057506124098161265d565b1515841515145b61244f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124469061543a565b60405180910390fd5b6124668860c001518960a001518960200151614d76565b80935081945082955050505061247b83613a66565b67ffffffffffffffff168660ff161480156124aa575061249a82613a66565b67ffffffffffffffff168560ff16145b80156124c157506124ba8161265d565b1515841515145b612500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f79061543a565b60405180910390fd5b5050505050505050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861253f60038060036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612561949392919061557c565b6060604051808303816000875af1158015612580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a491906155ed565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600360048111156125f2576125f1615640565b5b60f81b846040518363ffffffff1660e01b81526004016126139291906156aa565b6020604051808303816000875af1158015612632573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265691906156d3565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616000600481111561269157612690615640565b5b60f81b856040518363ffffffff1660e01b81526004016126b29291906156aa565b6020604051808303816000875af11580156126d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f591906156d3565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861273960016003806000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161275b949392919061557c565b6060604051808303816000875af115801561277a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279e91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286127ef6003600160036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612811949392919061557c565b6060604051808303816000875af1158015612830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285491906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286128a460026003806000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016128c6949392919061557c565b6060604051808303816000875af11580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290991906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861295a6003600260036000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161297c949392919061557c565b6060604051808303816000875af115801561299b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129bf91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612a0f60038060016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612a31949392919061557c565b6060604051808303816000875af1158015612a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7491906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ac56001600360016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612ae7949392919061557c565b6060604051808303816000875af1158015612b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2a91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612b7a60036001806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612b9c949392919061557c565b6060604051808303816000875af1158015612bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdf91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612c306002600360016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612c52949392919061557c565b6060604051808303816000875af1158015612c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9591906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ce66003600260016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612d08949392919061557c565b6060604051808303816000875af1158015612d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4b91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612d9b60038060026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612dbd949392919061557c565b6060604051808303816000875af1158015612ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0091906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612e516001600360026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612e73949392919061557c565b6060604051808303816000875af1158015612e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb691906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612f076003600160026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612f29949392919061557c565b6060604051808303816000875af1158015612f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6c91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612fbd6002600360026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401612fdf949392919061557c565b6060604051808303816000875af1158015612ffe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302291906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861307260036002806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613094949392919061557c565b6060604051808303816000875af11580156130b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d791906155ed565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561312557613124615640565b5b60f81b8460ff166040518363ffffffff1660e01b81526004016131499291906156aa565b6020604051808303816000875af1158015613168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318c91906156d3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156131c6576131c5615640565b5b60f81b8461ffff166040518363ffffffff1660e01b81526004016131eb9291906156aa565b6020604051808303816000875af115801561320a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322e91906156d3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561326857613267615640565b5b60f81b8463ffffffff166040518363ffffffff1660e01b815260040161328f9291906156aa565b6020604051808303816000875af11580156132ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d291906156d3565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561330b5761330a615640565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016133369291906156aa565b6020604051808303816000875af1158015613355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337991906156d3565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286133b560018060016000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016133d7949392919061557c565b6060604051808303816000875af11580156133f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341a91906155ed565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616001600481111561346857613467615640565b5b60f81b846040518363ffffffff1660e01b81526004016134899291906156aa565b6020604051808303816000875af11580156134a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cc91906156d3565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861350860028060016000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161352a949392919061557c565b6060604051808303816000875af1158015613549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356d91906155ed565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600260048111156135bb576135ba615640565b5b60f81b846040518363ffffffff1660e01b81526004016135dc9291906156aa565b6020604051808303816000875af11580156135fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361f91906156d3565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861365c6001600260016000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161367e949392919061557c565b6060604051808303816000875af115801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861371160026001806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613733949392919061557c565b6060604051808303816000875af1158015613752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377691906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286137c660028060026000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016137e8949392919061557c565b6060604051808303816000875af1158015613807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382b91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861387b60016002806000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161389d949392919061557c565b6060604051808303816000875af11580156138bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e091906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286139316002600160026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613953949392919061557c565b6060604051808303816000875af1158015613972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399691906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286139e660048060046000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613a08949392919061557c565b6060604051808303816000875af1158015613a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4b91906155ed565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600480811115613a9857613a97615640565b5b60f81b846040518363ffffffff1660e01b8152600401613ab99291906156aa565b6020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc91906156d3565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613b3860016004806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613b5a949392919061557c565b6060604051808303816000875af1158015613b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b9d91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613bee6004600160046000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613c10949392919061557c565b6060604051808303816000875af1158015613c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5391906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613ca360026004806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613cc5949392919061557c565b6060604051808303816000875af1158015613ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d0891906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613d596004600260046000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613d7b949392919061557c565b6060604051808303816000875af1158015613d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dbe91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613e0e60036004806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613e30949392919061557c565b6060604051808303816000875af1158015613e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e7391906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613ec46004600360046000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613ee6949392919061557c565b6060604051808303816000875af1158015613f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2991906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613f7960048060036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401613f9b949392919061557c565b6060604051808303816000875af1158015613fba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fde91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861402f6001600460036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614051949392919061557c565b6060604051808303816000875af1158015614070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409491906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286140e56004600160036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614107949392919061557c565b6060604051808303816000875af1158015614126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061414a91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861419b6002600460036000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016141bd949392919061557c565b6060604051808303816000875af11580156141dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061420091906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286142516004600260036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614273949392919061557c565b6060604051808303816000875af1158015614292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142b691906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286143076003600460036000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614329949392919061557c565b6060604051808303816000875af1158015614348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061436c91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286143bc60046003806000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016143de949392919061557c565b6060604051808303816000875af11580156143fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061442191906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861447160048060016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614493949392919061557c565b6060604051808303816000875af11580156144b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144d691906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145276001600460016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614549949392919061557c565b6060604051808303816000875af1158015614568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061458c91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145dc60046001806000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016145fe949392919061557c565b6060604051808303816000875af115801561461d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061464191906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286146926002600460016000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016146b4949392919061557c565b6060604051808303816000875af11580156146d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146f791906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286147486004600260016000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161476a949392919061557c565b6060604051808303816000875af1158015614789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147ad91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286147fe6003600460016000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614820949392919061557c565b6060604051808303816000875af115801561483f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061486391906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286148b46004600360016000614e2c565b8b8b8b6040518563ffffffff1660e01b81526004016148d6949392919061557c565b6060604051808303816000875af11580156148f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061491991906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861496960048060026000614e2c565b8b8b8b6040518563ffffffff1660e01b815260040161498b949392919061557c565b6060604051808303816000875af11580156149aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149ce91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614a1f6001600460026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614a41949392919061557c565b6060604051808303816000875af1158015614a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a8491906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614ad56004600160026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614af7949392919061557c565b6060604051808303816000875af1158015614b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b3a91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614b8b6002600460026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614bad949392919061557c565b6060604051808303816000875af1158015614bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bf091906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614c4060046002806000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614c62949392919061557c565b6060604051808303816000875af1158015614c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ca591906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614cf66003600460026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614d18949392919061557c565b6060604051808303816000875af1158015614d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d5b91906155ed565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614dac6004600360026000614e2c565b8b8b8b6040518563ffffffff1660e01b8152600401614dce949392919061557c565b6060604051808303816000875af1158015614ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e1191906155ed565b92509250925082828295509550955050505093509350939050565b6000816002811115614e4157614e40615640565b5b60ff166008846004811115614e5957614e58615640565b5b61ffff16901b61ffff166010866004811115614e7857614e77615640565b5b62ffffff16901b62ffffff166018886004811115614e9957614e98615640565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b600060ff82169050919050565b614f3e81614f28565b82525050565b60008115159050919050565b614f5981614f44565b82525050565b6000606082019050614f746000830186614f35565b614f816020830185614f35565b614f8e6040830184614f50565b949350505050565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614ff382614faa565b810181811067ffffffffffffffff8211171561501257615011614fbb565b5b80604052505050565b6000615025614f96565b90506150318282614fea565b919050565b6000819050919050565b61504981615036565b811461505457600080fd5b50565b60008135905061506681615040565b92915050565b61507581615036565b811461508057600080fd5b50565b6000813590506150928161506c565b92915050565b6150a181615036565b81146150ac57600080fd5b50565b6000813590506150be81615098565b92915050565b6150cd81615036565b81146150d857600080fd5b50565b6000813590506150ea816150c4565b92915050565b6000610100828403121561510757615106614fa5565b5b61511261010061501b565b9050600061512284828501615057565b600083015250602061513684828501615057565b602083015250604061514a84828501615083565b604083015250606061515e84828501615083565b6060830152506080615172848285016150af565b60808301525060a0615186848285016150af565b60a08301525060c061519a848285016150db565b60c08301525060e06151ae848285016150db565b60e08301525092915050565b6151c381614f28565b81146151ce57600080fd5b50565b6000813590506151e0816151ba565b92915050565b600060a082840312156151fc576151fb614fa5565b5b61520660a061501b565b9050600061521684828501615057565b600083015250602061522a84828501615083565b602083015250604061523e848285016150af565b6040830152506060615252848285016150db565b6060830152506080615266848285016151d1565b60808301525092915050565b61527b81614f44565b811461528657600080fd5b50565b60008135905061529881615272565b92915050565b600080600080600061020086880312156152bb576152ba614fa0565b5b60006152c9888289016150f0565b9550506101006152db888289016151e6565b9450506101a06152ed888289016151d1565b9350506101c06152ff888289016151d1565b9250506101e061531188828901615289565b9150509295509295909350565b60008060006060848603121561533757615336614fa0565b5b6000615345868287016151d1565b9350506020615356868287016151d1565b9250506040615367868287016151d1565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a2063617374203332206661696c656400000000600082015250565b60006153b8601c83615371565b91506153c382615382565b602082019050919050565b600060208201905081810360008301526153e7816153ab565b9050919050565b7f7472616e73666572546573743a2063617374203136206661696c656400000000600082015250565b6000615424601c83615371565b915061542f826153ee565b602082019050919050565b6000602082019050818103600083015261545381615417565b9050919050565b7f7472616e73666572546573743a2063617374203634206661696c656400000000600082015250565b6000615490601c83615371565b915061549b8261545a565b602082019050919050565b600060208201905081810360008301526154bf81615483565b9050919050565b7f7472616e73666572546573743a20636173742038206661696c65640000000000600082015250565b60006154fc601b83615371565b9150615507826154c6565b602082019050919050565b6000602082019050818103600083015261552b816154ef565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61556781615532565b82525050565b61557681615036565b82525050565b6000608082019050615591600083018761555e565b61559e602083018661556d565b6155ab604083018561556d565b6155b8606083018461556d565b95945050505050565b6155ca81615036565b81146155d557600080fd5b50565b6000815190506155e7816155c1565b92915050565b60008060006060848603121561560657615605614fa0565b5b6000615614868287016155d8565b9350506020615625868287016155d8565b9250506040615636868287016155d8565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6156a48161566f565b82525050565b60006040820190506156bf600083018561569b565b6156cc602083018461556d565b9392505050565b6000602082840312156156e9576156e8614fa0565b5b60006156f7848285016155d8565b9150509291505056fea26469706673582212202de78105662aeb41733a3e5bd0c7a434a2086fcab8d54762444a6eb22024b5d064736f6c63430008140033";
390
390
 
391
391
  type TransferTestsContractConstructorParams =
392
392
  | [signer?: Signer]
@@ -1,15 +1,14 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- export * as comparison1TestsContractSol from "./Comparison1Tests.Contract.sol";
5
- export * as offboardToUserKeyTestsContractSol from "./OffboardToUserKeyTestsContract.sol";
6
4
  export { ArithmeticTestsContract__factory } from "./ArithmeticTestsContract__factory";
7
5
  export { BitwiseTestsContract__factory } from "./BitwiseTestsContract__factory";
6
+ export { Comparison1TestsContract__factory } from "./Comparison1TestsContract__factory";
8
7
  export { Comparison2TestsContract__factory } from "./Comparison2TestsContract__factory";
9
8
  export { MinMaxTestsContract__factory } from "./MinMaxTestsContract__factory";
10
9
  export { Miscellaneous1TestsContract__factory } from "./Miscellaneous1TestsContract__factory";
11
- export { Miscellaneous2TestsContract__factory } from "./Miscellaneous2TestsContract__factory";
12
- export { ShiftTestsContract__factory } from "./ShiftTestsContract__factory";
10
+ export { MiscellaneousTestsContract__factory } from "./MiscellaneousTestsContract__factory";
11
+ export { OffboardToUserKeyTestContract__factory } from "./OffboardToUserKeyTestContract__factory";
13
12
  export { StringTestsContract__factory } from "./StringTestsContract__factory";
14
13
  export { TransferScalarTestsContract__factory } from "./TransferScalarTestsContract__factory";
15
14
  export { TransferTestsContract__factory } from "./TransferTestsContract__factory";
@@ -139,7 +139,7 @@ const _abi = [
139
139
  ] as const;
140
140
 
141
141
  const _bytecode =
142
- "0x608060405234801561001057600080fd5b506108a3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632a308b3a146100515780633ead9adb146100815780634a009211146100b1578063ce4ec16a146100e1575b600080fd5b61006b60048036038101906100669190610497565b610111565b604051610078919061052f565b60405180910390f35b61009b6004803603810190610096919061054a565b6101a2565b6040516100a8919061052f565b60405180910390f35b6100cb60048036038101906100c691906105b1565b610236565b6040516100d8919061060c565b60405180910390f35b6100fb60048036038101906100f69190610497565b6102bc565b604051610108919061060c565b60405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb846101398561034d565b6040518363ffffffff1660e01b8152600401610156929190610645565b6020604051808303816000875af1158015610175573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610199919061069a565b90509392505050565b60008473ffffffffffffffffffffffffffffffffffffffff166323b872dd85856101cb8661034d565b6040518463ffffffff1660e01b81526004016101e9939291906106c7565b6020604051808303816000875af1158015610208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022c919061069a565b9050949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff16638269bcc3836040518263ffffffff1660e01b815260040161027191906106fe565b6020604051808303816000875af1158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190610745565b905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff1663095ea7b3846102e48561034d565b6040518363ffffffff1660e01b8152600401610301929190610645565b6020604051808303816000875af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190610745565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561037f5761037e610772565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016103aa9291906107eb565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed9190610840565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610424826103f9565b9050919050565b61043481610419565b811461043f57600080fd5b50565b6000813590506104518161042b565b92915050565b600067ffffffffffffffff82169050919050565b61047481610457565b811461047f57600080fd5b50565b6000813590506104918161046b565b92915050565b6000806000606084860312156104b0576104af6103f4565b5b60006104be86828701610442565b93505060206104cf86828701610442565b92505060406104e086828701610482565b9150509250925092565b6000819050919050565b6000819050919050565b600061051961051461050f846104ea565b6104f4565b6104ea565b9050919050565b610529816104fe565b82525050565b60006020820190506105446000830184610520565b92915050565b60008060008060808587031215610564576105636103f4565b5b600061057287828801610442565b945050602061058387828801610442565b935050604061059487828801610442565b92505060606105a587828801610482565b91505092959194509250565b600080604083850312156105c8576105c76103f4565b5b60006105d685828601610442565b92505060206105e785828601610442565b9150509250929050565b60008115159050919050565b610606816105f1565b82525050565b600060208201905061062160008301846105fd565b92915050565b61063081610419565b82525050565b61063f816104fe565b82525050565b600060408201905061065a6000830185610627565b6106676020830184610636565b9392505050565b610677816104ea565b811461068257600080fd5b50565b6000815190506106948161066e565b92915050565b6000602082840312156106b0576106af6103f4565b5b60006106be84828501610685565b91505092915050565b60006060820190506106dc6000830186610627565b6106e96020830185610627565b6106f66040830184610636565b949350505050565b60006020820190506107136000830184610627565b92915050565b610722816105f1565b811461072d57600080fd5b50565b60008151905061073f81610719565b92915050565b60006020828403121561075b5761075a6103f4565b5b600061076984828501610730565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6107d6816107a1565b82525050565b6107e5816104ea565b82525050565b600060408201905061080060008301856107cd565b61080d60208301846107dc565b9392505050565b61081d816104ea565b811461082857600080fd5b50565b60008151905061083a81610814565b92915050565b600060208284031215610856576108556103f4565b5b60006108648482850161082b565b9150509291505056fea26469706673582212206f6db4dc042fc4eaca06d4238c9299b8be1e6edab7e96c000b3cf4a368d96aa664736f6c63430008140033";
142
+ "0x608060405234801561001057600080fd5b506108a3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632a308b3a146100515780633ead9adb146100815780634a009211146100b1578063ce4ec16a146100e1575b600080fd5b61006b60048036038101906100669190610497565b610111565b604051610078919061052f565b60405180910390f35b61009b6004803603810190610096919061054a565b6101a2565b6040516100a8919061052f565b60405180910390f35b6100cb60048036038101906100c691906105b1565b610236565b6040516100d8919061060c565b60405180910390f35b6100fb60048036038101906100f69190610497565b6102bc565b604051610108919061060c565b60405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb846101398561034d565b6040518363ffffffff1660e01b8152600401610156929190610645565b6020604051808303816000875af1158015610175573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610199919061069a565b90509392505050565b60008473ffffffffffffffffffffffffffffffffffffffff166323b872dd85856101cb8661034d565b6040518463ffffffff1660e01b81526004016101e9939291906106c7565b6020604051808303816000875af1158015610208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022c919061069a565b9050949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff16638269bcc3836040518263ffffffff1660e01b815260040161027191906106fe565b6020604051808303816000875af1158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190610745565b905092915050565b60008373ffffffffffffffffffffffffffffffffffffffff1663095ea7b3846102e48561034d565b6040518363ffffffff1660e01b8152600401610301929190610645565b6020604051808303816000875af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190610745565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561037f5761037e610772565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016103aa9291906107eb565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed9190610840565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610424826103f9565b9050919050565b61043481610419565b811461043f57600080fd5b50565b6000813590506104518161042b565b92915050565b600067ffffffffffffffff82169050919050565b61047481610457565b811461047f57600080fd5b50565b6000813590506104918161046b565b92915050565b6000806000606084860312156104b0576104af6103f4565b5b60006104be86828701610442565b93505060206104cf86828701610442565b92505060406104e086828701610482565b9150509250925092565b6000819050919050565b6000819050919050565b600061051961051461050f846104ea565b6104f4565b6104ea565b9050919050565b610529816104fe565b82525050565b60006020820190506105446000830184610520565b92915050565b60008060008060808587031215610564576105636103f4565b5b600061057287828801610442565b945050602061058387828801610442565b935050604061059487828801610442565b92505060606105a587828801610482565b91505092959194509250565b600080604083850312156105c8576105c76103f4565b5b60006105d685828601610442565b92505060206105e785828601610442565b9150509250929050565b60008115159050919050565b610606816105f1565b82525050565b600060208201905061062160008301846105fd565b92915050565b61063081610419565b82525050565b61063f816104fe565b82525050565b600060408201905061065a6000830185610627565b6106676020830184610636565b9392505050565b610677816104ea565b811461068257600080fd5b50565b6000815190506106948161066e565b92915050565b6000602082840312156106b0576106af6103f4565b5b60006106be84828501610685565b91505092915050565b60006060820190506106dc6000830186610627565b6106e96020830185610627565b6106f66040830184610636565b949350505050565b60006020820190506107136000830184610627565b92915050565b610722816105f1565b811461072d57600080fd5b50565b60008151905061073f81610719565b92915050565b60006020828403121561075b5761075a6103f4565b5b600061076984828501610730565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6107d6816107a1565b82525050565b6107e5816104ea565b82525050565b600060408201905061080060008301856107cd565b61080d60208301846107dc565b9392505050565b61081d816104ea565b811461082857600080fd5b50565b60008151905061083a81610814565b92915050565b600060208284031215610856576108556103f4565b5b60006108648482850161082b565b9150509291505056fea264697066735822122019a19cd29aecdfb0afc31afc9577617252449274a501ff1e2d08d7cf3ca1f7cf64736f6c63430008140033";
143
143
 
144
144
  type PrivateERC20WalletMockConstructorParams =
145
145
  | [signer?: Signer]
@@ -27,7 +27,13 @@ const _abi = [
27
27
  {
28
28
  indexed: false,
29
29
  internalType: "bytes",
30
- name: "userKey",
30
+ name: "userKey1",
31
+ type: "bytes",
32
+ },
33
+ {
34
+ indexed: false,
35
+ internalType: "bytes",
36
+ name: "userKey2",
31
37
  type: "bytes",
32
38
  },
33
39
  ],
@@ -55,7 +61,7 @@ const _abi = [
55
61
  ] as const;
56
62
 
57
63
  const _bytecode =
58
- "0x608060405234801561001057600080fd5b506106e0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063afaea1bd14610030575b600080fd5b61004a60048036038101906100459190610329565b61004c565b005b600061005a858585856100b1565b90503373ffffffffffffffffffffffffffffffffffffffff167fb67504ecfeef0230a06f661ea388c2947b4125a35e918ebff5889e3553c29c04826040516100a2919061043a565b60405180910390a25050505050565b6060600085859050848490506100c79190610495565b67ffffffffffffffff8111156100e0576100df6104c9565b5b6040519080825280601f01601f1916602001820160405280156101125781602001600182028036833780820191505090505b50905060005b8484905081101561019557848482818110610136576101356104f8565b5b9050013560f81c60f81b828281518110610153576101526104f8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061018d90610527565b915050610118565b5060005b86869050811015610224578686828181106101b7576101b66104f8565b5b9050013560f81c60f81b8282878790506101d19190610495565b815181106101e2576101e16104f8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061021c90610527565b915050610199565b50606473ffffffffffffffffffffffffffffffffffffffff1663a85f0ca2826040518263ffffffff1660e01b815260040161025f919061043a565b600060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906102a59190610661565b915050949350505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126102e9576102e86102c4565b5b8235905067ffffffffffffffff811115610306576103056102c9565b5b602083019150836001820283011115610322576103216102ce565b5b9250929050565b60008060008060408587031215610343576103426102ba565b5b600085013567ffffffffffffffff811115610361576103606102bf565b5b61036d878288016102d3565b9450945050602085013567ffffffffffffffff8111156103905761038f6102bf565b5b61039c878288016102d3565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e45780820151818401526020810190506103c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061040c826103aa565b61041681856103b5565b93506104268185602086016103c6565b61042f816103f0565b840191505092915050565b600060208201905081810360008301526104548184610401565b905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104a08261045c565b91506104ab8361045c565b92508282019050808211156104c3576104c2610466565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006105328261045c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361056457610563610466565b5b600182019050919050565b600080fd5b61057d826103f0565b810181811067ffffffffffffffff8211171561059c5761059b6104c9565b5b80604052505050565b60006105af6102b0565b90506105bb8282610574565b919050565b600067ffffffffffffffff8211156105db576105da6104c9565b5b6105e4826103f0565b9050602081019050919050565b60006106046105ff846105c0565b6105a5565b9050828152602081018484840111156106205761061f61056f565b5b61062b8482856103c6565b509392505050565b600082601f830112610648576106476102c4565b5b81516106588482602086016105f1565b91505092915050565b600060208284031215610677576106766102ba565b5b600082015167ffffffffffffffff811115610695576106946102bf565b5b6106a184828501610633565b9150509291505056fea26469706673582212206115018057d6bc465801c86cb2b275e2e4d8f98d3885f29b598391fc2f76be4864736f6c63430008140033";
64
+ "0x608060405234801561001057600080fd5b506108df806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063afaea1bd14610030575b600080fd5b61004a600480360381019061004591906104f1565b61004c565b005b60008061005b868686866100b7565b915091503373ffffffffffffffffffffffffffffffffffffffff167ffc83efa19b7c2bc399a672494bb0af52f9bbd678357edf30e55b5ac4e65878ba83836040516100a7929190610602565b60405180910390a2505050505050565b606080600086869050858590506100ce9190610672565b67ffffffffffffffff8111156100e7576100e66106a6565b5b6040519080825280601f01601f1916602001820160405280156101195781602001600182028036833780820191505090505b50905060005b8585905081101561019c5785858281811061013d5761013c6106d5565b5b9050013560f81c60f81b82828151811061015a576101596106d5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061019490610704565b91505061011f565b5060005b8787905081101561022b578787828181106101be576101bd6106d5565b5b9050013560f81c60f81b8282888890506101d89190610672565b815181106101e9576101e86106d5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061022390610704565b9150506101a0565b506000606473ffffffffffffffffffffffffffffffffffffffff1663a85f0ca2836040518263ffffffff1660e01b8152600401610268919061074c565b6000604051808303816000875af1158015610287573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906102b09190610860565b9050600061010067ffffffffffffffff8111156102d0576102cf6106a6565b5b6040519080825280601f01601f1916602001820160405280156103025781602001600182028036833780820191505090505b509050600061010067ffffffffffffffff811115610323576103226106a6565b5b6040519080825280601f01601f1916602001820160405280156103555781602001600182028036833780820191505090505b50905060005b82518110156103d757838181518110610377576103766106d5565b5b602001015160f81c60f81b838281518110610395576103946106d5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806103cf90610704565b91505061035b565b5060005b81518110156104645783610100826103f39190610672565b81518110610404576104036106d5565b5b602001015160f81c60f81b828281518110610422576104216106d5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061045c90610704565b9150506103db565b508181955095505050505094509492505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104b1576104b061048c565b5b8235905067ffffffffffffffff8111156104ce576104cd610491565b5b6020830191508360018202830111156104ea576104e9610496565b5b9250929050565b6000806000806040858703121561050b5761050a610482565b5b600085013567ffffffffffffffff81111561052957610528610487565b5b6105358782880161049b565b9450945050602085013567ffffffffffffffff81111561055857610557610487565b5b6105648782880161049b565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156105ac578082015181840152602081019050610591565b60008484015250505050565b6000601f19601f8301169050919050565b60006105d482610572565b6105de818561057d565b93506105ee81856020860161058e565b6105f7816105b8565b840191505092915050565b6000604082019050818103600083015261061c81856105c9565b9050818103602083015261063081846105c9565b90509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061067d82610639565b915061068883610639565b92508282019050808211156106a05761069f610643565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061070f82610639565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361074157610740610643565b5b600182019050919050565b6000602082019050818103600083015261076681846105c9565b905092915050565b600080fd5b61077c826105b8565b810181811067ffffffffffffffff8211171561079b5761079a6106a6565b5b80604052505050565b60006107ae610478565b90506107ba8282610773565b919050565b600067ffffffffffffffff8211156107da576107d96106a6565b5b6107e3826105b8565b9050602081019050919050565b60006108036107fe846107bf565b6107a4565b90508281526020810184848401111561081f5761081e61076e565b5b61082a84828561058e565b509392505050565b600082601f8301126108475761084661048c565b5b81516108578482602086016107f0565b91505092915050565b60006020828403121561087657610875610482565b5b600082015167ffffffffffffffff81111561089457610893610487565b5b6108a084828501610832565b9150509291505056fea2646970667358221220e028ca78b9557ac2f79e953b276ee6f7fe178c38f51a12305ec67ac1df234d2d64736f6c63430008140033";
59
65
 
60
66
  type AccountOnboardConstructorParams =
61
67
  | [signer?: Signer]