@layerzerolabs/lz-evm-sdk-v2 2.0.17 → 2.0.18

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 (95) hide show
  1. package/artifacts/contracts/Executor.sol/Executor.json +2 -2
  2. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +18 -2
  3. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +16 -0
  4. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +2 -2
  5. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +13 -2
  6. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +2 -2
  7. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +14 -3
  8. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +2 -2
  9. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +13 -2
  10. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +11 -0
  11. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +11 -0
  12. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +12 -1
  13. package/deployments/avalanche-testnet/AxelarDVNAdapterFeeLib.json +10 -10
  14. package/deployments/avalanche-testnet/AxelarDVNAdapterFeeLib_Implementation.json +40 -40
  15. package/deployments/ethereum-sandbox-local/DVN.json +76 -76
  16. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +23 -23
  17. package/deployments/ethereum-sandbox-local/DefaultProxyAdmin.json +258 -0
  18. package/deployments/ethereum-sandbox-local/EndpointV2.json +141 -150
  19. package/deployments/ethereum-sandbox-local/EndpointV2View.json +435 -0
  20. package/deployments/ethereum-sandbox-local/EndpointV2View_Implementation.json +313 -0
  21. package/deployments/ethereum-sandbox-local/EndpointV2View_Proxy.json +230 -0
  22. package/deployments/ethereum-sandbox-local/Executor.json +86 -86
  23. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +38 -33
  24. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +17 -17
  25. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +61 -61
  26. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +66 -66
  27. package/deployments/ethereum-sandbox-local/LzExecutor.json +757 -0
  28. package/deployments/ethereum-sandbox-local/LzExecutor_Implementation.json +703 -0
  29. package/deployments/ethereum-sandbox-local/LzExecutor_Proxy.json +244 -0
  30. package/deployments/ethereum-sandbox-local/NonceContractMock.json +6 -6
  31. package/deployments/ethereum-sandbox-local/PriceFeed.json +18 -18
  32. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +5 -5
  33. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +44 -44
  34. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  35. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +126 -98
  36. package/deployments/ethereum-sandbox-local/ReceiveUln301View.json +354 -0
  37. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Implementation.json +231 -0
  38. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Proxy.json +230 -0
  39. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +114 -62
  40. package/deployments/ethereum-sandbox-local/ReceiveUln302View.json +478 -0
  41. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Implementation.json +384 -0
  42. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Proxy.json +230 -0
  43. package/deployments/ethereum-sandbox-local/SendUln301.json +112 -112
  44. package/deployments/ethereum-sandbox-local/SendUln302.json +109 -109
  45. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +23 -23
  46. package/deployments/ethereum-sandbox-local/Treasury.json +21 -21
  47. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +12 -12
  48. package/deployments/polygon-sandbox-local/DVN.json +76 -76
  49. package/deployments/polygon-sandbox-local/DVNFeeLib.json +23 -23
  50. package/deployments/polygon-sandbox-local/DefaultProxyAdmin.json +258 -0
  51. package/deployments/polygon-sandbox-local/EndpointV2.json +141 -150
  52. package/deployments/polygon-sandbox-local/EndpointV2View.json +435 -0
  53. package/deployments/polygon-sandbox-local/EndpointV2View_Implementation.json +313 -0
  54. package/deployments/polygon-sandbox-local/EndpointV2View_Proxy.json +230 -0
  55. package/deployments/polygon-sandbox-local/Executor.json +86 -86
  56. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +38 -33
  57. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +17 -17
  58. package/deployments/polygon-sandbox-local/Executor_Implementation.json +61 -61
  59. package/deployments/polygon-sandbox-local/Executor_Proxy.json +66 -66
  60. package/deployments/polygon-sandbox-local/LzExecutor.json +757 -0
  61. package/deployments/polygon-sandbox-local/LzExecutor_Implementation.json +703 -0
  62. package/deployments/polygon-sandbox-local/LzExecutor_Proxy.json +244 -0
  63. package/deployments/polygon-sandbox-local/NonceContractMock.json +6 -6
  64. package/deployments/polygon-sandbox-local/PriceFeed.json +18 -18
  65. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +5 -5
  66. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +44 -44
  67. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  68. package/deployments/polygon-sandbox-local/ReceiveUln301.json +126 -98
  69. package/deployments/polygon-sandbox-local/ReceiveUln301View.json +354 -0
  70. package/deployments/polygon-sandbox-local/ReceiveUln301View_Implementation.json +231 -0
  71. package/deployments/polygon-sandbox-local/ReceiveUln301View_Proxy.json +230 -0
  72. package/deployments/polygon-sandbox-local/ReceiveUln302.json +114 -62
  73. package/deployments/polygon-sandbox-local/ReceiveUln302View.json +478 -0
  74. package/deployments/polygon-sandbox-local/ReceiveUln302View_Implementation.json +384 -0
  75. package/deployments/polygon-sandbox-local/ReceiveUln302View_Proxy.json +230 -0
  76. package/deployments/polygon-sandbox-local/SendUln301.json +112 -112
  77. package/deployments/polygon-sandbox-local/SendUln302.json +109 -109
  78. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +23 -23
  79. package/deployments/polygon-sandbox-local/Treasury.json +21 -21
  80. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +12 -12
  81. package/dist/{index-htDjTX1I.d.mts → index-839VW31F.d.mts} +82 -10
  82. package/dist/{index-htDjTX1I.d.ts → index-839VW31F.d.ts} +82 -10
  83. package/dist/index.browser.cjs +108 -10
  84. package/dist/index.browser.cjs.map +1 -1
  85. package/dist/index.browser.d.mts +1 -1
  86. package/dist/index.browser.d.ts +1 -1
  87. package/dist/index.browser.mjs +108 -10
  88. package/dist/index.browser.mjs.map +1 -1
  89. package/dist/index.cjs +108 -10
  90. package/dist/index.cjs.map +1 -1
  91. package/dist/index.d.mts +1 -1
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.mjs +108 -10
  94. package/dist/index.mjs.map +1 -1
  95. package/package.json +8 -8
@@ -1149,8 +1149,8 @@
1149
1149
  "type": "function"
1150
1150
  }
1151
1151
  ],
1152
- "bytecode": "0x608060405234801561001057600080fd5b5061406e806100206000396000f3fe6080604052600436106102175760003560e01c8063717e8a421161011d578063acdbcca5116100b0578063c7b2370b1161007f578063d2ae210411610064578063d2ae210414610787578063d547741f146107d9578063fa34c84e146107f957600080fd5b8063c7b2370b14610747578063cd88b9031461076757600080fd5b8063acdbcca5146106ac578063c2803b2c146106cc578063c358de0a146106fa578063c416aa511461071a57600080fd5b80638624ba07116100ec5780638624ba071461057557806391d14854146105885780639e944965146105db578063a217fddf1461069757600080fd5b8063717e8a42146104bd578063724e78da146104dd57806372607537146104fd578063741bef1a1461054857600080fd5b80632de11376116101b05780633927c0751161017f5780635c975abb116101645780635c975abb146104325780635e280f111461044a578063709eb6641461049d57600080fd5b80633927c0751461040c578063475b6d9e1461041f57600080fd5b80632de113761461038c5780632f2ff15d146103ac5780633146646a146103cc57806336568abe146103ec57600080fd5b80631095b6d7116101ec5780631095b6d7146102e157806316c38b3c14610301578063248a9ca31461032157806326e67a371461035f57600080fd5b80629fc6811461021c578062bf2e801461023e57806301e336671461029157806301ffc9a7146102b1575b600080fd5b34801561022857600080fd5b5061023c6102373660046131fb565b610819565b005b34801561024a57600080fd5b5060c954610279907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561029d57600080fd5b5061023c6102ac3660046132a0565b610bb8565b3480156102bd57600080fd5b506102d16102cc3660046132dc565b610bf3565b6040519015158152602001610288565b3480156102ed57600080fd5b5061023c6102fc3660046132a0565b610c8c565b34801561030d57600080fd5b5061023c61031c36600461332c565b610e1b565b34801561032d57600080fd5b5061035161033c366004613349565b60009081526065602052604090206001015490565b604051908152602001610288565b34801561036b57600080fd5b5061037f61037a366004613374565b610e40565b6040516102889190613391565b34801561039857600080fd5b506102d16103a73660046133d8565b610ec7565b3480156103b857600080fd5b5061023c6103c73660046133f3565b610fab565b3480156103d857600080fd5b5061023c6103e7366004613468565b610fd5565b3480156103f857600080fd5b5061023c6104073660046133f3565b61109e565b61023c61041a366004613511565b6110d0565b61023c61042d3660046135a5565b6111ba565b34801561043e57600080fd5b5060975460ff166102d1565b34801561045657600080fd5b5061012e546104789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610288565b3480156104a957600080fd5b506103516104b8366004613626565b61120e565b3480156104c957600080fd5b506103516104d8366004613626565b611367565b3480156104e957600080fd5b5061023c6104f83660046133d8565b6114e5565b34801561050957600080fd5b5061012e546105339074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610288565b34801561055457600080fd5b5060ca546104789073ffffffffffffffffffffffffffffffffffffffff1681565b61023c610583366004613697565b61158a565b34801561059457600080fd5b506102d16105a33660046133f3565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156105e757600080fd5b506106516105f6366004613374565b61012d602052600090815260409020805460019091015467ffffffffffffffff82169161ffff68010000000000000000820416916fffffffffffffffffffffffffffffffff6a01000000000000000000009092048216911684565b6040805167ffffffffffffffff909516855261ffff90931660208501526fffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610288565b3480156106a357600080fd5b50610351600081565b3480156106b857600080fd5b5061023c6106c736600461375a565b6116c7565b3480156106d857600080fd5b5061012f546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561070657600080fd5b5061023c610715366004613851565b611877565b34801561072657600080fd5b5060c9546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075357600080fd5b5061023c6107623660046133d8565b611924565b34801561077357600080fd5b5061023c61078236600461386c565b6119c1565b34801561079357600080fd5b5060c9546107c09074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610288565b3480156107e557600080fd5b5061023c6107f43660046133f3565b611a0b565b34801561080557600080fd5b5061023c6108143660046133d8565b611a30565b60006108437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661089c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108be565b3373ffffffffffffffffffffffffffffffffffffffff8216146108be57600080fd5b600054610100900460ff16158080156108de5750600054600160ff909116105b806108f85750303b1580156108f8575060005460ff166001145b610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109ef611b1e565b6109fe8686612ee08787611bbf565b61012e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16908117909155604080517f416ecebf000000000000000000000000000000000000000000000000000000008152905163416ecebf916004808201926020929091908290030181865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906138f4565b61012e80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905561012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610be281611c7b565b610bed848484611c88565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610c8657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cb681611c7b565b73ffffffffffffffffffffffffffffffffffffffff841660009081527fe3a3b2721d010eec8988605a93cd7c15d969808c0e2b42f6155dc2b4fa13c081602052604090205460ff16610d34576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610e2681611c7b565b8115610e3857610e34611cb8565b5050565b610e34611d3d565b63ffffffff8116600090815260cb6020908152604091829020805483518184028101840190945280845260609392830182828015610ebb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e8c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f0f6a9529577ef7bf1cbc8fccda1cc3c881f755c7e92e34c7c4deac1fa3c1c791602052604081205460ff1615610f1c57506000919050565b60c95474010000000000000000000000000000000000000000900467ffffffffffffffff161580610f91575073ffffffffffffffffffffffffffffffffffffffff821660009081527f35c5067391a9036240763c1067bfa438a7b0131204a675a2fe562dd73782ce85602052604090205460ff165b15610f9e57506001919050565b506000919050565b919050565b600082815260656020526040902060010154610fc681611c7b565b610fd08383611d94565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fff81611c7b565b611007611e5b565b61012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f8906110629087908790879060040161395a565b600060405180830381600087803b15801561107c57600080fd5b505af1158015611090573d6000803e3d6000fd5b50505050610bed600160fb55565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110fa81611c7b565b611102611e5b565b611122886111108686611ed5565b61111a8787611ef8565b8a8a8a611f11565b5061012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f89061117e9087908790879060040161395a565b600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b50505050610bae600160fb55565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111e481611c7b565b6111ec611e5b565b6111fa878787878787611f11565b50611205600160fb55565b50505050505050565b60008461121a81610ec7565b611250576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611258612086565b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a1660208084018290528a831684860152606084018a905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517f371c3a8e000000000000000000000000000000000000000000000000000000008152929391169163371c3a8e9161131a918591908a908a9060040161397e565b602060405180830381865afa158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190613a34565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61139381611c7b565b8561139d81610ec7565b6113d3576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8b1660208084018290528b831684860152606084018b905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517ff43bcfc5000000000000000000000000000000000000000000000000000000008152929391169163f43bcfc591611495918591908b908b9060040161397e565b6020604051808303816000875af11580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d89190613a34565b9998505050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561150f81611c7b565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115b481611c7b565b6115bc611e5b565b61012e546000906115fc90602085019074010000000000000000000000000000000000000000900463ffffffff166115f482876133d8565b898989611f11565b9050600061160a8234613a7c565b61012e5490915073ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e08601358360208801611640818a6133d8565b60808a013561165260a08c018c613a8f565b61165f60c08e018e613a8f565b6040518a63ffffffff1660e01b81526004016116819796959493929190613b30565b6000604051808303818589803b15801561169a57600080fd5b5088f11580156116ae573d6000803e3d6000fd5b50505050505050506116c0600160fb55565b5050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116f181611c7b565b60005b825181101561184757600083828151811061171157611711613b94565b60209081029190910181015160408051608080820183528385015167ffffffffffffffff90811683528385015161ffff9081168488019081526060808801516fffffffffffffffffffffffffffffffff908116878901908152958901518116918701918252975163ffffffff16600090815261012d90995295909720935184549751935187166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9490921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090981692169190911795909517169390931783555160019283018054919092167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161790559190910190506116f4565b507f3fd3f9275410b39824c12e5dfcf63fb332698a5eee3b09895aaaaa9e403bd4818260405161157e9190613bc3565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756118a181611c7b565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561194e81611c7b565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119eb81611c7b565b63ffffffff8416600090815260cb602052604090206116c0908484612fd8565b600082815260656020526040902060010154611a2681611c7b565b610fd083836120f3565b6000611a5a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116611ab35773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355611ad5565b3373ffffffffffffffffffffffffffffffffffffffff821614611ad557600080fd5b5061012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16611bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611bbd6121b9565b565b600054610100900460ff16611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611c5e612250565b611c66612250565b611c6e6122e7565b6116c085858585856123a8565b611c85813361258d565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611cad57610fd08282612647565b610fd083838361274d565b611cc0612086565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d133390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611d456127bb565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611d13565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611df35750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611e515760c98054601490611e2a9074010000000000000000000000000000000000000000900467ffffffffffffffff16613c5d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612827565b600260fb5403611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610980565b600260fb55565b600160fb55565b6000611ee56031602d8486613c84565b611eee91613cae565b60e01c9392505050565b6000611f0a611f07848461291b565b90565b9392505050565b6000808367ffffffffffffffff811115611f2d57611f2d6130ba565b604051908082528060200260200182016040528015611f56578160200160208202803683370190505b50905060005b84811015612039576000868683818110611f7857611f78613b94565b905060400201803603810190611f8e9190613cf6565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1682602001518790604051600060405180830381858888f193505050503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b505090508084848151811061201157612011613b94565b91151560209283029190910182015282015161202d9086613d4d565b94505050600101611f5c565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c346888888888888660405161207396959493929190613d9e565b60405180910390a1509695505050505050565b60975460ff1615611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610980565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156121515750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156121af5760c980546014906121889074010000000000000000000000000000000000000000900467ffffffffffffffff16613e3f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612934565b600054610100900460ff16611ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff1661243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff86160217905560ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff868116919091179091558216156124e3576124e3600083611d94565b60005b855181101561253a576125327f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de87838151811061252557612525613b94565b6020026020010151611d94565b6001016124e6565b5060005b81518110156125855761257d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811061252557612525613b94565b60010161253e565b505050505050565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e34576125cd816129ef565b6125d8836020612a0e565b6040516020016125e9929190613ea5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261098091600401613f26565b73ffffffffffffffffffffffffffffffffffffffff8216612694576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146126ee576040519150601f19603f3d011682016040523d82523d6000602084013e6126f3565b606091505b5050905080610fd0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610980565b73ffffffffffffffffffffffffffffffffffffffff821661279a576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fd073ffffffffffffffffffffffffffffffffffffffff84168383612c51565b60975460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610980565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556128bd3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061292b605160318486613c84565b611f0a91613f77565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610c8673ffffffffffffffffffffffffffffffffffffffff831660145b60606000612a1d836002613fb3565b612a28906002613d4d565b67ffffffffffffffff811115612a4057612a406130ba565b6040519080825280601f01601f191660200182016040528015612a6a576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612aa157612aa1613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b0457612b04613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612b40846002613fb3565b612b4b906001613d4d565b90505b6001811115612be8577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612b8c57612b8c613b94565b1a60f81b828281518110612ba257612ba2613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612be181613fca565b9050612b4e565b508315611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610980565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fd092869291600091612d1c918516908490612dc9565b9050805160001480612d3d575080806020019051810190612d3d9190613fff565b610fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610980565b6060612dd88484600085612de0565b949350505050565b606082471015612e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610980565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e9b919061401c565b60006040518083038185875af1925050503d8060008114612ed8576040519150601f19603f3d011682016040523d82523d6000602084013e612edd565b606091505b5091509150612eee87838387612ef9565b979650505050505050565b60608315612f8f578251600003612f885773ffffffffffffffffffffffffffffffffffffffff85163b612f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610980565b5081612dd8565b612dd88383815115612fa45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109809190613f26565b82805482825590600052602060002090601f016020900481019282156130715791602002820160005b8382111561304257833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613001565b801561306f5782816101000a81549060ff0219169055600101602081600001049283019260010302613042565b505b5061307d929150613081565b5090565b5b8082111561307d5760008155600101613082565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fa657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561310c5761310c6130ba565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613159576131596130ba565b604052919050565b600067ffffffffffffffff82111561317b5761317b6130ba565b5060051b60200190565b600082601f83011261319657600080fd5b813560206131ab6131a683613161565b613112565b8083825260208201915060208460051b8701019350868411156131cd57600080fd5b602086015b848110156131f0576131e381613096565b83529183019183016131d2565b509695505050505050565b60008060008060008060c0878903121561321457600080fd5b61321d87613096565b955061322b60208801613096565b9450604087013567ffffffffffffffff8082111561324857600080fd5b6132548a838b01613185565b955061326260608a01613096565b945061327060808a01613096565b935060a089013591508082111561328657600080fd5b5061329389828a01613185565b9150509295509295509295565b6000806000606084860312156132b557600080fd5b6132be84613096565b92506132cc60208501613096565b9150604084013590509250925092565b6000602082840312156132ee57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611f0a57600080fd5b8015158114611c8557600080fd5b60006020828403121561333e57600080fd5b8135611f0a8161331e565b60006020828403121561335b57600080fd5b5035919050565b63ffffffff81168114611c8557600080fd5b60006020828403121561338657600080fd5b8135611f0a81613362565b6020808252825182820181905260009190848201906040850190845b818110156133cc57835160ff16835292840192918401916001016133ad565b50909695505050505050565b6000602082840312156133ea57600080fd5b611f0a82613096565b6000806040838503121561340657600080fd5b8235915061341660208401613096565b90509250929050565b60008083601f84011261343157600080fd5b50813567ffffffffffffffff81111561344957600080fd5b60208301915083602082850101111561346157600080fd5b9250929050565b60008060006040848603121561347d57600080fd5b833567ffffffffffffffff81111561349457600080fd5b6134a08682870161341f565b909790965060209590950135949350505050565b6000606082840312156134c657600080fd5b50919050565b60008083601f8401126134de57600080fd5b50813567ffffffffffffffff8111156134f657600080fd5b6020830191508360208260061b850101111561346157600080fd5b600080600080600080600060e0888a03121561352c57600080fd5b61353689896134b4565b9650606088013567ffffffffffffffff8082111561355357600080fd5b61355f8b838c016134cc565b909850965060808a0135955060a08a013591508082111561357f57600080fd5b5061358c8a828b0161341f565b989b979a5095989497959660c090950135949350505050565b60008060008060008060e087890312156135be57600080fd5b6135c888886134b4565b955060608701356135d881613362565b94506135e660808801613096565b935060a087013567ffffffffffffffff81111561360257600080fd5b61360e89828a016134cc565b979a969950949794969560c090950135949350505050565b60008060008060006080868803121561363e57600080fd5b853561364981613362565b945061365760208701613096565b935060408601359250606086013567ffffffffffffffff81111561367a57600080fd5b6136868882890161341f565b969995985093965092949392505050565b600080600080606085870312156136ad57600080fd5b843567ffffffffffffffff808211156136c557600080fd5b6136d1888389016134cc565b90965094506020870135935060408701359150808211156136f157600080fd5b508501610100818803121561370557600080fd5b939692955090935050565b803567ffffffffffffffff81168114610fa657600080fd5b803561ffff81168114610fa657600080fd5b80356fffffffffffffffffffffffffffffffff81168114610fa657600080fd5b6000602080838503121561376d57600080fd5b823567ffffffffffffffff81111561378457600080fd5b8301601f8101851361379557600080fd5b80356137a36131a682613161565b81815260a091820283018401918482019190888411156137c257600080fd5b938501935b838510156138455780858a0312156137df5760008081fd5b6137e76130e9565b85356137f281613362565b81526137ff868801613710565b878201526040613810818801613728565b90820152606061382187820161373a565b90820152608061383287820161373a565b90820152835293840193918501916137c7565b50979650505050505050565b60006020828403121561386357600080fd5b611f0a82613728565b60008060006040848603121561388157600080fd5b833561388c81613362565b9250602084013567ffffffffffffffff808211156138a957600080fd5b818601915086601f8301126138bd57600080fd5b8135818111156138cc57600080fd5b8760208260051b85010111156138e157600080fd5b6020830194508093505050509250925092565b60006020828403121561390657600080fd5b8151611f0a81613362565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061396e604083018587613911565b9050826020830152949350505050565b600061014073ffffffffffffffffffffffffffffffffffffffff80885116845263ffffffff60208901511660208501528060408901511660408501525060608701516060840152608087015161ffff80821660808601528754915067ffffffffffffffff821660a0860152808260401c1660c0860152506fffffffffffffffffffffffffffffffff808260501c1660e086015280600189015416610100860152505080610120840152612eee8184018587613911565b600060208284031215613a4657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610c8657610c86613a4d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ac457600080fd5b83018035915067ffffffffffffffff821115613adf57600080fd5b60200191503681900382131561346157600080fd5b8035613aff81613362565b63ffffffff1682526020818101359083015267ffffffffffffffff613b2660408301613710565b1660408301525050565b613b3a8189613af4565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000613b7360e083018688613911565b82810360c0840152613b86818587613911565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015613c50578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060808201516fffffffffffffffffffffffffffffffff90811691870191909152608091820151169085015260a09093019290850190600101613be0565b5091979650505050505050565b600067ffffffffffffffff808316818103613c7a57613c7a613a4d565b6001019392505050565b60008085851115613c9457600080fd5b83861115613ca157600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015613cee5780818660040360031b1b83161692505b505092915050565b600060408284031215613d0857600080fd5b6040516040810181811067ffffffffffffffff82111715613d2b57613d2b6130ba565b604052613d3783613096565b8152602083013560208201528091505092915050565b80820180821115610c8657610c86613a4d565b60008151808452602080850194506020840160005b83811015613d93578151151587529582019590820190600101613d75565b509495945050505050565b600060e08201613dae838a613af4565b63ffffffff8816606084015273ffffffffffffffffffffffffffffffffffffffff878116608085015260e060a0850152908590528590610100840160005b87811015613e1d5782613dfe85613096565b1682526020848101359083015260409384019390910190600101613dec565b5084810360c0860152613e308187613d60565b9b9a5050505050505050505050565b600067ffffffffffffffff821680613e5957613e59613a4d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60005b83811015613e9c578181015183820152602001613e84565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613edd816017850160208801613e81565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613f1a816028840160208801613e81565b01602801949350505050565b6020815260008251806020840152613f45816040850160208701613e81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356020831015610c86577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610c8657610c86613a4d565b600081613fd957613fd9613a4d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561401157600080fd5b8151611f0a8161331e565b6000825161402e818460208701613e81565b919091019291505056fea2646970667358221220d6ac9513e5d61f7dcee21aae510fca202796a85596ee38f61af46ba46efa759164736f6c63430008160033",
1153
- "deployedBytecode": "0x6080604052600436106102175760003560e01c8063717e8a421161011d578063acdbcca5116100b0578063c7b2370b1161007f578063d2ae210411610064578063d2ae210414610787578063d547741f146107d9578063fa34c84e146107f957600080fd5b8063c7b2370b14610747578063cd88b9031461076757600080fd5b8063acdbcca5146106ac578063c2803b2c146106cc578063c358de0a146106fa578063c416aa511461071a57600080fd5b80638624ba07116100ec5780638624ba071461057557806391d14854146105885780639e944965146105db578063a217fddf1461069757600080fd5b8063717e8a42146104bd578063724e78da146104dd57806372607537146104fd578063741bef1a1461054857600080fd5b80632de11376116101b05780633927c0751161017f5780635c975abb116101645780635c975abb146104325780635e280f111461044a578063709eb6641461049d57600080fd5b80633927c0751461040c578063475b6d9e1461041f57600080fd5b80632de113761461038c5780632f2ff15d146103ac5780633146646a146103cc57806336568abe146103ec57600080fd5b80631095b6d7116101ec5780631095b6d7146102e157806316c38b3c14610301578063248a9ca31461032157806326e67a371461035f57600080fd5b80629fc6811461021c578062bf2e801461023e57806301e336671461029157806301ffc9a7146102b1575b600080fd5b34801561022857600080fd5b5061023c6102373660046131fb565b610819565b005b34801561024a57600080fd5b5060c954610279907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561029d57600080fd5b5061023c6102ac3660046132a0565b610bb8565b3480156102bd57600080fd5b506102d16102cc3660046132dc565b610bf3565b6040519015158152602001610288565b3480156102ed57600080fd5b5061023c6102fc3660046132a0565b610c8c565b34801561030d57600080fd5b5061023c61031c36600461332c565b610e1b565b34801561032d57600080fd5b5061035161033c366004613349565b60009081526065602052604090206001015490565b604051908152602001610288565b34801561036b57600080fd5b5061037f61037a366004613374565b610e40565b6040516102889190613391565b34801561039857600080fd5b506102d16103a73660046133d8565b610ec7565b3480156103b857600080fd5b5061023c6103c73660046133f3565b610fab565b3480156103d857600080fd5b5061023c6103e7366004613468565b610fd5565b3480156103f857600080fd5b5061023c6104073660046133f3565b61109e565b61023c61041a366004613511565b6110d0565b61023c61042d3660046135a5565b6111ba565b34801561043e57600080fd5b5060975460ff166102d1565b34801561045657600080fd5b5061012e546104789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610288565b3480156104a957600080fd5b506103516104b8366004613626565b61120e565b3480156104c957600080fd5b506103516104d8366004613626565b611367565b3480156104e957600080fd5b5061023c6104f83660046133d8565b6114e5565b34801561050957600080fd5b5061012e546105339074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610288565b34801561055457600080fd5b5060ca546104789073ffffffffffffffffffffffffffffffffffffffff1681565b61023c610583366004613697565b61158a565b34801561059457600080fd5b506102d16105a33660046133f3565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156105e757600080fd5b506106516105f6366004613374565b61012d602052600090815260409020805460019091015467ffffffffffffffff82169161ffff68010000000000000000820416916fffffffffffffffffffffffffffffffff6a01000000000000000000009092048216911684565b6040805167ffffffffffffffff909516855261ffff90931660208501526fffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610288565b3480156106a357600080fd5b50610351600081565b3480156106b857600080fd5b5061023c6106c736600461375a565b6116c7565b3480156106d857600080fd5b5061012f546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561070657600080fd5b5061023c610715366004613851565b611877565b34801561072657600080fd5b5060c9546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075357600080fd5b5061023c6107623660046133d8565b611924565b34801561077357600080fd5b5061023c61078236600461386c565b6119c1565b34801561079357600080fd5b5060c9546107c09074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610288565b3480156107e557600080fd5b5061023c6107f43660046133f3565b611a0b565b34801561080557600080fd5b5061023c6108143660046133d8565b611a30565b60006108437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661089c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108be565b3373ffffffffffffffffffffffffffffffffffffffff8216146108be57600080fd5b600054610100900460ff16158080156108de5750600054600160ff909116105b806108f85750303b1580156108f8575060005460ff166001145b610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109ef611b1e565b6109fe8686612ee08787611bbf565b61012e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16908117909155604080517f416ecebf000000000000000000000000000000000000000000000000000000008152905163416ecebf916004808201926020929091908290030181865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906138f4565b61012e80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905561012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610be281611c7b565b610bed848484611c88565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610c8657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cb681611c7b565b73ffffffffffffffffffffffffffffffffffffffff841660009081527fe3a3b2721d010eec8988605a93cd7c15d969808c0e2b42f6155dc2b4fa13c081602052604090205460ff16610d34576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610e2681611c7b565b8115610e3857610e34611cb8565b5050565b610e34611d3d565b63ffffffff8116600090815260cb6020908152604091829020805483518184028101840190945280845260609392830182828015610ebb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e8c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f0f6a9529577ef7bf1cbc8fccda1cc3c881f755c7e92e34c7c4deac1fa3c1c791602052604081205460ff1615610f1c57506000919050565b60c95474010000000000000000000000000000000000000000900467ffffffffffffffff161580610f91575073ffffffffffffffffffffffffffffffffffffffff821660009081527f35c5067391a9036240763c1067bfa438a7b0131204a675a2fe562dd73782ce85602052604090205460ff165b15610f9e57506001919050565b506000919050565b919050565b600082815260656020526040902060010154610fc681611c7b565b610fd08383611d94565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fff81611c7b565b611007611e5b565b61012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f8906110629087908790879060040161395a565b600060405180830381600087803b15801561107c57600080fd5b505af1158015611090573d6000803e3d6000fd5b50505050610bed600160fb55565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110fa81611c7b565b611102611e5b565b611122886111108686611ed5565b61111a8787611ef8565b8a8a8a611f11565b5061012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f89061117e9087908790879060040161395a565b600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b50505050610bae600160fb55565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111e481611c7b565b6111ec611e5b565b6111fa878787878787611f11565b50611205600160fb55565b50505050505050565b60008461121a81610ec7565b611250576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611258612086565b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a1660208084018290528a831684860152606084018a905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517f371c3a8e000000000000000000000000000000000000000000000000000000008152929391169163371c3a8e9161131a918591908a908a9060040161397e565b602060405180830381865afa158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190613a34565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61139381611c7b565b8561139d81610ec7565b6113d3576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8b1660208084018290528b831684860152606084018b905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517ff43bcfc5000000000000000000000000000000000000000000000000000000008152929391169163f43bcfc591611495918591908b908b9060040161397e565b6020604051808303816000875af11580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d89190613a34565b9998505050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561150f81611c7b565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115b481611c7b565b6115bc611e5b565b61012e546000906115fc90602085019074010000000000000000000000000000000000000000900463ffffffff166115f482876133d8565b898989611f11565b9050600061160a8234613a7c565b61012e5490915073ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e08601358360208801611640818a6133d8565b60808a013561165260a08c018c613a8f565b61165f60c08e018e613a8f565b6040518a63ffffffff1660e01b81526004016116819796959493929190613b30565b6000604051808303818589803b15801561169a57600080fd5b5088f11580156116ae573d6000803e3d6000fd5b50505050505050506116c0600160fb55565b5050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116f181611c7b565b60005b825181101561184757600083828151811061171157611711613b94565b60209081029190910181015160408051608080820183528385015167ffffffffffffffff90811683528385015161ffff9081168488019081526060808801516fffffffffffffffffffffffffffffffff908116878901908152958901518116918701918252975163ffffffff16600090815261012d90995295909720935184549751935187166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9490921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090981692169190911795909517169390931783555160019283018054919092167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161790559190910190506116f4565b507f3fd3f9275410b39824c12e5dfcf63fb332698a5eee3b09895aaaaa9e403bd4818260405161157e9190613bc3565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756118a181611c7b565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561194e81611c7b565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119eb81611c7b565b63ffffffff8416600090815260cb602052604090206116c0908484612fd8565b600082815260656020526040902060010154611a2681611c7b565b610fd083836120f3565b6000611a5a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116611ab35773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355611ad5565b3373ffffffffffffffffffffffffffffffffffffffff821614611ad557600080fd5b5061012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16611bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611bbd6121b9565b565b600054610100900460ff16611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611c5e612250565b611c66612250565b611c6e6122e7565b6116c085858585856123a8565b611c85813361258d565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611cad57610fd08282612647565b610fd083838361274d565b611cc0612086565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d133390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611d456127bb565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611d13565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611df35750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611e515760c98054601490611e2a9074010000000000000000000000000000000000000000900467ffffffffffffffff16613c5d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612827565b600260fb5403611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610980565b600260fb55565b600160fb55565b6000611ee56031602d8486613c84565b611eee91613cae565b60e01c9392505050565b6000611f0a611f07848461291b565b90565b9392505050565b6000808367ffffffffffffffff811115611f2d57611f2d6130ba565b604051908082528060200260200182016040528015611f56578160200160208202803683370190505b50905060005b84811015612039576000868683818110611f7857611f78613b94565b905060400201803603810190611f8e9190613cf6565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1682602001518790604051600060405180830381858888f193505050503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b505090508084848151811061201157612011613b94565b91151560209283029190910182015282015161202d9086613d4d565b94505050600101611f5c565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c346888888888888660405161207396959493929190613d9e565b60405180910390a1509695505050505050565b60975460ff1615611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610980565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156121515750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156121af5760c980546014906121889074010000000000000000000000000000000000000000900467ffffffffffffffff16613e3f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612934565b600054610100900460ff16611ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff1661243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff86160217905560ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff868116919091179091558216156124e3576124e3600083611d94565b60005b855181101561253a576125327f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de87838151811061252557612525613b94565b6020026020010151611d94565b6001016124e6565b5060005b81518110156125855761257d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811061252557612525613b94565b60010161253e565b505050505050565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e34576125cd816129ef565b6125d8836020612a0e565b6040516020016125e9929190613ea5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261098091600401613f26565b73ffffffffffffffffffffffffffffffffffffffff8216612694576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146126ee576040519150601f19603f3d011682016040523d82523d6000602084013e6126f3565b606091505b5050905080610fd0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610980565b73ffffffffffffffffffffffffffffffffffffffff821661279a576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fd073ffffffffffffffffffffffffffffffffffffffff84168383612c51565b60975460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610980565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556128bd3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061292b605160318486613c84565b611f0a91613f77565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610c8673ffffffffffffffffffffffffffffffffffffffff831660145b60606000612a1d836002613fb3565b612a28906002613d4d565b67ffffffffffffffff811115612a4057612a406130ba565b6040519080825280601f01601f191660200182016040528015612a6a576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612aa157612aa1613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b0457612b04613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612b40846002613fb3565b612b4b906001613d4d565b90505b6001811115612be8577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612b8c57612b8c613b94565b1a60f81b828281518110612ba257612ba2613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612be181613fca565b9050612b4e565b508315611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610980565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fd092869291600091612d1c918516908490612dc9565b9050805160001480612d3d575080806020019051810190612d3d9190613fff565b610fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610980565b6060612dd88484600085612de0565b949350505050565b606082471015612e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610980565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e9b919061401c565b60006040518083038185875af1925050503d8060008114612ed8576040519150601f19603f3d011682016040523d82523d6000602084013e612edd565b606091505b5091509150612eee87838387612ef9565b979650505050505050565b60608315612f8f578251600003612f885773ffffffffffffffffffffffffffffffffffffffff85163b612f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610980565b5081612dd8565b612dd88383815115612fa45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109809190613f26565b82805482825590600052602060002090601f016020900481019282156130715791602002820160005b8382111561304257833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613001565b801561306f5782816101000a81549060ff0219169055600101602081600001049283019260010302613042565b505b5061307d929150613081565b5090565b5b8082111561307d5760008155600101613082565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fa657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561310c5761310c6130ba565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613159576131596130ba565b604052919050565b600067ffffffffffffffff82111561317b5761317b6130ba565b5060051b60200190565b600082601f83011261319657600080fd5b813560206131ab6131a683613161565b613112565b8083825260208201915060208460051b8701019350868411156131cd57600080fd5b602086015b848110156131f0576131e381613096565b83529183019183016131d2565b509695505050505050565b60008060008060008060c0878903121561321457600080fd5b61321d87613096565b955061322b60208801613096565b9450604087013567ffffffffffffffff8082111561324857600080fd5b6132548a838b01613185565b955061326260608a01613096565b945061327060808a01613096565b935060a089013591508082111561328657600080fd5b5061329389828a01613185565b9150509295509295509295565b6000806000606084860312156132b557600080fd5b6132be84613096565b92506132cc60208501613096565b9150604084013590509250925092565b6000602082840312156132ee57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611f0a57600080fd5b8015158114611c8557600080fd5b60006020828403121561333e57600080fd5b8135611f0a8161331e565b60006020828403121561335b57600080fd5b5035919050565b63ffffffff81168114611c8557600080fd5b60006020828403121561338657600080fd5b8135611f0a81613362565b6020808252825182820181905260009190848201906040850190845b818110156133cc57835160ff16835292840192918401916001016133ad565b50909695505050505050565b6000602082840312156133ea57600080fd5b611f0a82613096565b6000806040838503121561340657600080fd5b8235915061341660208401613096565b90509250929050565b60008083601f84011261343157600080fd5b50813567ffffffffffffffff81111561344957600080fd5b60208301915083602082850101111561346157600080fd5b9250929050565b60008060006040848603121561347d57600080fd5b833567ffffffffffffffff81111561349457600080fd5b6134a08682870161341f565b909790965060209590950135949350505050565b6000606082840312156134c657600080fd5b50919050565b60008083601f8401126134de57600080fd5b50813567ffffffffffffffff8111156134f657600080fd5b6020830191508360208260061b850101111561346157600080fd5b600080600080600080600060e0888a03121561352c57600080fd5b61353689896134b4565b9650606088013567ffffffffffffffff8082111561355357600080fd5b61355f8b838c016134cc565b909850965060808a0135955060a08a013591508082111561357f57600080fd5b5061358c8a828b0161341f565b989b979a5095989497959660c090950135949350505050565b60008060008060008060e087890312156135be57600080fd5b6135c888886134b4565b955060608701356135d881613362565b94506135e660808801613096565b935060a087013567ffffffffffffffff81111561360257600080fd5b61360e89828a016134cc565b979a969950949794969560c090950135949350505050565b60008060008060006080868803121561363e57600080fd5b853561364981613362565b945061365760208701613096565b935060408601359250606086013567ffffffffffffffff81111561367a57600080fd5b6136868882890161341f565b969995985093965092949392505050565b600080600080606085870312156136ad57600080fd5b843567ffffffffffffffff808211156136c557600080fd5b6136d1888389016134cc565b90965094506020870135935060408701359150808211156136f157600080fd5b508501610100818803121561370557600080fd5b939692955090935050565b803567ffffffffffffffff81168114610fa657600080fd5b803561ffff81168114610fa657600080fd5b80356fffffffffffffffffffffffffffffffff81168114610fa657600080fd5b6000602080838503121561376d57600080fd5b823567ffffffffffffffff81111561378457600080fd5b8301601f8101851361379557600080fd5b80356137a36131a682613161565b81815260a091820283018401918482019190888411156137c257600080fd5b938501935b838510156138455780858a0312156137df5760008081fd5b6137e76130e9565b85356137f281613362565b81526137ff868801613710565b878201526040613810818801613728565b90820152606061382187820161373a565b90820152608061383287820161373a565b90820152835293840193918501916137c7565b50979650505050505050565b60006020828403121561386357600080fd5b611f0a82613728565b60008060006040848603121561388157600080fd5b833561388c81613362565b9250602084013567ffffffffffffffff808211156138a957600080fd5b818601915086601f8301126138bd57600080fd5b8135818111156138cc57600080fd5b8760208260051b85010111156138e157600080fd5b6020830194508093505050509250925092565b60006020828403121561390657600080fd5b8151611f0a81613362565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061396e604083018587613911565b9050826020830152949350505050565b600061014073ffffffffffffffffffffffffffffffffffffffff80885116845263ffffffff60208901511660208501528060408901511660408501525060608701516060840152608087015161ffff80821660808601528754915067ffffffffffffffff821660a0860152808260401c1660c0860152506fffffffffffffffffffffffffffffffff808260501c1660e086015280600189015416610100860152505080610120840152612eee8184018587613911565b600060208284031215613a4657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610c8657610c86613a4d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ac457600080fd5b83018035915067ffffffffffffffff821115613adf57600080fd5b60200191503681900382131561346157600080fd5b8035613aff81613362565b63ffffffff1682526020818101359083015267ffffffffffffffff613b2660408301613710565b1660408301525050565b613b3a8189613af4565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000613b7360e083018688613911565b82810360c0840152613b86818587613911565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015613c50578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060808201516fffffffffffffffffffffffffffffffff90811691870191909152608091820151169085015260a09093019290850190600101613be0565b5091979650505050505050565b600067ffffffffffffffff808316818103613c7a57613c7a613a4d565b6001019392505050565b60008085851115613c9457600080fd5b83861115613ca157600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015613cee5780818660040360031b1b83161692505b505092915050565b600060408284031215613d0857600080fd5b6040516040810181811067ffffffffffffffff82111715613d2b57613d2b6130ba565b604052613d3783613096565b8152602083013560208201528091505092915050565b80820180821115610c8657610c86613a4d565b60008151808452602080850194506020840160005b83811015613d93578151151587529582019590820190600101613d75565b509495945050505050565b600060e08201613dae838a613af4565b63ffffffff8816606084015273ffffffffffffffffffffffffffffffffffffffff878116608085015260e060a0850152908590528590610100840160005b87811015613e1d5782613dfe85613096565b1682526020848101359083015260409384019390910190600101613dec565b5084810360c0860152613e308187613d60565b9b9a5050505050505050505050565b600067ffffffffffffffff821680613e5957613e59613a4d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60005b83811015613e9c578181015183820152602001613e84565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613edd816017850160208801613e81565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613f1a816028840160208801613e81565b01602801949350505050565b6020815260008251806020840152613f45816040850160208701613e81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356020831015610c86577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610c8657610c86613a4d565b600081613fd957613fd9613a4d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561401157600080fd5b8151611f0a8161331e565b6000825161402e818460208701613e81565b919091019291505056fea2646970667358221220d6ac9513e5d61f7dcee21aae510fca202796a85596ee38f61af46ba46efa759164736f6c63430008160033",
1152
+ "bytecode": "0x608060405234801561001057600080fd5b5061406e806100206000396000f3fe6080604052600436106102175760003560e01c8063717e8a421161011d578063acdbcca5116100b0578063c7b2370b1161007f578063d2ae210411610064578063d2ae210414610787578063d547741f146107d9578063fa34c84e146107f957600080fd5b8063c7b2370b14610747578063cd88b9031461076757600080fd5b8063acdbcca5146106ac578063c2803b2c146106cc578063c358de0a146106fa578063c416aa511461071a57600080fd5b80638624ba07116100ec5780638624ba071461057557806391d14854146105885780639e944965146105db578063a217fddf1461069757600080fd5b8063717e8a42146104bd578063724e78da146104dd57806372607537146104fd578063741bef1a1461054857600080fd5b80632de11376116101b05780633927c0751161017f5780635c975abb116101645780635c975abb146104325780635e280f111461044a578063709eb6641461049d57600080fd5b80633927c0751461040c578063475b6d9e1461041f57600080fd5b80632de113761461038c5780632f2ff15d146103ac5780633146646a146103cc57806336568abe146103ec57600080fd5b80631095b6d7116101ec5780631095b6d7146102e157806316c38b3c14610301578063248a9ca31461032157806326e67a371461035f57600080fd5b80629fc6811461021c578062bf2e801461023e57806301e336671461029157806301ffc9a7146102b1575b600080fd5b34801561022857600080fd5b5061023c6102373660046131fb565b610819565b005b34801561024a57600080fd5b5060c954610279907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561029d57600080fd5b5061023c6102ac3660046132a0565b610bb8565b3480156102bd57600080fd5b506102d16102cc3660046132dc565b610bf3565b6040519015158152602001610288565b3480156102ed57600080fd5b5061023c6102fc3660046132a0565b610c8c565b34801561030d57600080fd5b5061023c61031c36600461332c565b610e1b565b34801561032d57600080fd5b5061035161033c366004613349565b60009081526065602052604090206001015490565b604051908152602001610288565b34801561036b57600080fd5b5061037f61037a366004613374565b610e40565b6040516102889190613391565b34801561039857600080fd5b506102d16103a73660046133d8565b610ec7565b3480156103b857600080fd5b5061023c6103c73660046133f3565b610fab565b3480156103d857600080fd5b5061023c6103e7366004613468565b610fd5565b3480156103f857600080fd5b5061023c6104073660046133f3565b61109e565b61023c61041a366004613511565b6110d0565b61023c61042d3660046135a5565b6111ba565b34801561043e57600080fd5b5060975460ff166102d1565b34801561045657600080fd5b5061012e546104789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610288565b3480156104a957600080fd5b506103516104b8366004613626565b61120e565b3480156104c957600080fd5b506103516104d8366004613626565b611367565b3480156104e957600080fd5b5061023c6104f83660046133d8565b6114e5565b34801561050957600080fd5b5061012e546105339074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610288565b34801561055457600080fd5b5060ca546104789073ffffffffffffffffffffffffffffffffffffffff1681565b61023c610583366004613697565b61158a565b34801561059457600080fd5b506102d16105a33660046133f3565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156105e757600080fd5b506106516105f6366004613374565b61012d602052600090815260409020805460019091015467ffffffffffffffff82169161ffff68010000000000000000820416916fffffffffffffffffffffffffffffffff6a01000000000000000000009092048216911684565b6040805167ffffffffffffffff909516855261ffff90931660208501526fffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610288565b3480156106a357600080fd5b50610351600081565b3480156106b857600080fd5b5061023c6106c736600461375a565b6116c7565b3480156106d857600080fd5b5061012f546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561070657600080fd5b5061023c610715366004613851565b611877565b34801561072657600080fd5b5060c9546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075357600080fd5b5061023c6107623660046133d8565b611924565b34801561077357600080fd5b5061023c61078236600461386c565b6119c1565b34801561079357600080fd5b5060c9546107c09074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610288565b3480156107e557600080fd5b5061023c6107f43660046133f3565b611a0b565b34801561080557600080fd5b5061023c6108143660046133d8565b611a30565b60006108437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661089c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108be565b3373ffffffffffffffffffffffffffffffffffffffff8216146108be57600080fd5b600054610100900460ff16158080156108de5750600054600160ff909116105b806108f85750303b1580156108f8575060005460ff166001145b610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109ef611b1e565b6109fe8686612ee08787611bbf565b61012e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16908117909155604080517f416ecebf000000000000000000000000000000000000000000000000000000008152905163416ecebf916004808201926020929091908290030181865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906138f4565b61012e80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905561012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610be281611c7b565b610bed848484611c88565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610c8657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cb681611c7b565b73ffffffffffffffffffffffffffffffffffffffff841660009081527fe3a3b2721d010eec8988605a93cd7c15d969808c0e2b42f6155dc2b4fa13c081602052604090205460ff16610d34576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610e2681611c7b565b8115610e3857610e34611cb8565b5050565b610e34611d3d565b63ffffffff8116600090815260cb6020908152604091829020805483518184028101840190945280845260609392830182828015610ebb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e8c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f0f6a9529577ef7bf1cbc8fccda1cc3c881f755c7e92e34c7c4deac1fa3c1c791602052604081205460ff1615610f1c57506000919050565b60c95474010000000000000000000000000000000000000000900467ffffffffffffffff161580610f91575073ffffffffffffffffffffffffffffffffffffffff821660009081527f35c5067391a9036240763c1067bfa438a7b0131204a675a2fe562dd73782ce85602052604090205460ff165b15610f9e57506001919050565b506000919050565b919050565b600082815260656020526040902060010154610fc681611c7b565b610fd08383611d94565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fff81611c7b565b611007611e5b565b61012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f8906110629087908790879060040161395a565b600060405180830381600087803b15801561107c57600080fd5b505af1158015611090573d6000803e3d6000fd5b50505050610bed600160fb55565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110fa81611c7b565b611102611e5b565b611122886111108686611ed5565b61111a8787611ef8565b8a8a8a611f11565b5061012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f89061117e9087908790879060040161395a565b600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b50505050610bae600160fb55565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111e481611c7b565b6111ec611e5b565b6111fa878787878787611f11565b50611205600160fb55565b50505050505050565b60008461121a81610ec7565b611250576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611258612086565b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a1660208084018290528a831684860152606084018a905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517f371c3a8e000000000000000000000000000000000000000000000000000000008152929391169163371c3a8e9161131a918591908a908a9060040161397e565b602060405180830381865afa158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190613a34565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61139381611c7b565b8561139d81610ec7565b6113d3576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8b1660208084018290528b831684860152606084018b905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517ff43bcfc5000000000000000000000000000000000000000000000000000000008152929391169163f43bcfc591611495918591908b908b9060040161397e565b6020604051808303816000875af11580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d89190613a34565b9998505050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561150f81611c7b565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115b481611c7b565b6115bc611e5b565b61012e546000906115fc90602085019074010000000000000000000000000000000000000000900463ffffffff166115f482876133d8565b898989611f11565b9050600061160a8234613a7c565b61012e5490915073ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e08601358360208801611640818a6133d8565b60808a013561165260a08c018c613a8f565b61165f60c08e018e613a8f565b6040518a63ffffffff1660e01b81526004016116819796959493929190613b30565b6000604051808303818589803b15801561169a57600080fd5b5088f11580156116ae573d6000803e3d6000fd5b50505050505050506116c0600160fb55565b5050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116f181611c7b565b60005b825181101561184757600083828151811061171157611711613b94565b60209081029190910181015160408051608080820183528385015167ffffffffffffffff90811683528385015161ffff9081168488019081526060808801516fffffffffffffffffffffffffffffffff908116878901908152958901518116918701918252975163ffffffff16600090815261012d90995295909720935184549751935187166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9490921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090981692169190911795909517169390931783555160019283018054919092167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161790559190910190506116f4565b507f3fd3f9275410b39824c12e5dfcf63fb332698a5eee3b09895aaaaa9e403bd4818260405161157e9190613bc3565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756118a181611c7b565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561194e81611c7b565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119eb81611c7b565b63ffffffff8416600090815260cb602052604090206116c0908484612fd8565b600082815260656020526040902060010154611a2681611c7b565b610fd083836120f3565b6000611a5a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116611ab35773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355611ad5565b3373ffffffffffffffffffffffffffffffffffffffff821614611ad557600080fd5b5061012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16611bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611bbd6121b9565b565b600054610100900460ff16611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611c5e612250565b611c66612250565b611c6e6122e7565b6116c085858585856123a8565b611c85813361258d565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611cad57610fd08282612647565b610fd083838361274d565b611cc0612086565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d133390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611d456127bb565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611d13565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611df35750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611e515760c98054601490611e2a9074010000000000000000000000000000000000000000900467ffffffffffffffff16613c5d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612827565b600260fb5403611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610980565b600260fb55565b600160fb55565b6000611ee56031602d8486613c84565b611eee91613cae565b60e01c9392505050565b6000611f0a611f07848461291b565b90565b9392505050565b6000808367ffffffffffffffff811115611f2d57611f2d6130ba565b604051908082528060200260200182016040528015611f56578160200160208202803683370190505b50905060005b84811015612039576000868683818110611f7857611f78613b94565b905060400201803603810190611f8e9190613cf6565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1682602001518790604051600060405180830381858888f193505050503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b505090508084848151811061201157612011613b94565b91151560209283029190910182015282015161202d9086613d4d565b94505050600101611f5c565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c346888888888888660405161207396959493929190613d9e565b60405180910390a1509695505050505050565b60975460ff1615611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610980565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156121515750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156121af5760c980546014906121889074010000000000000000000000000000000000000000900467ffffffffffffffff16613e3f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612934565b600054610100900460ff16611ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff1661243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff86160217905560ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff868116919091179091558216156124e3576124e3600083611d94565b60005b855181101561253a576125327f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de87838151811061252557612525613b94565b6020026020010151611d94565b6001016124e6565b5060005b81518110156125855761257d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811061252557612525613b94565b60010161253e565b505050505050565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e34576125cd816129ef565b6125d8836020612a0e565b6040516020016125e9929190613ea5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261098091600401613f26565b73ffffffffffffffffffffffffffffffffffffffff8216612694576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146126ee576040519150601f19603f3d011682016040523d82523d6000602084013e6126f3565b606091505b5050905080610fd0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610980565b73ffffffffffffffffffffffffffffffffffffffff821661279a576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fd073ffffffffffffffffffffffffffffffffffffffff84168383612c51565b60975460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610980565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556128bd3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061292b605160318486613c84565b611f0a91613f77565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610c8673ffffffffffffffffffffffffffffffffffffffff831660145b60606000612a1d836002613fb3565b612a28906002613d4d565b67ffffffffffffffff811115612a4057612a406130ba565b6040519080825280601f01601f191660200182016040528015612a6a576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612aa157612aa1613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b0457612b04613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612b40846002613fb3565b612b4b906001613d4d565b90505b6001811115612be8577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612b8c57612b8c613b94565b1a60f81b828281518110612ba257612ba2613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612be181613fca565b9050612b4e565b508315611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610980565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fd092869291600091612d1c918516908490612dc9565b9050805160001480612d3d575080806020019051810190612d3d9190613fff565b610fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610980565b6060612dd88484600085612de0565b949350505050565b606082471015612e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610980565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e9b919061401c565b60006040518083038185875af1925050503d8060008114612ed8576040519150601f19603f3d011682016040523d82523d6000602084013e612edd565b606091505b5091509150612eee87838387612ef9565b979650505050505050565b60608315612f8f578251600003612f885773ffffffffffffffffffffffffffffffffffffffff85163b612f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610980565b5081612dd8565b612dd88383815115612fa45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109809190613f26565b82805482825590600052602060002090601f016020900481019282156130715791602002820160005b8382111561304257833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613001565b801561306f5782816101000a81549060ff0219169055600101602081600001049283019260010302613042565b505b5061307d929150613081565b5090565b5b8082111561307d5760008155600101613082565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fa657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561310c5761310c6130ba565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613159576131596130ba565b604052919050565b600067ffffffffffffffff82111561317b5761317b6130ba565b5060051b60200190565b600082601f83011261319657600080fd5b813560206131ab6131a683613161565b613112565b8083825260208201915060208460051b8701019350868411156131cd57600080fd5b602086015b848110156131f0576131e381613096565b83529183019183016131d2565b509695505050505050565b60008060008060008060c0878903121561321457600080fd5b61321d87613096565b955061322b60208801613096565b9450604087013567ffffffffffffffff8082111561324857600080fd5b6132548a838b01613185565b955061326260608a01613096565b945061327060808a01613096565b935060a089013591508082111561328657600080fd5b5061329389828a01613185565b9150509295509295509295565b6000806000606084860312156132b557600080fd5b6132be84613096565b92506132cc60208501613096565b9150604084013590509250925092565b6000602082840312156132ee57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611f0a57600080fd5b8015158114611c8557600080fd5b60006020828403121561333e57600080fd5b8135611f0a8161331e565b60006020828403121561335b57600080fd5b5035919050565b63ffffffff81168114611c8557600080fd5b60006020828403121561338657600080fd5b8135611f0a81613362565b6020808252825182820181905260009190848201906040850190845b818110156133cc57835160ff16835292840192918401916001016133ad565b50909695505050505050565b6000602082840312156133ea57600080fd5b611f0a82613096565b6000806040838503121561340657600080fd5b8235915061341660208401613096565b90509250929050565b60008083601f84011261343157600080fd5b50813567ffffffffffffffff81111561344957600080fd5b60208301915083602082850101111561346157600080fd5b9250929050565b60008060006040848603121561347d57600080fd5b833567ffffffffffffffff81111561349457600080fd5b6134a08682870161341f565b909790965060209590950135949350505050565b6000606082840312156134c657600080fd5b50919050565b60008083601f8401126134de57600080fd5b50813567ffffffffffffffff8111156134f657600080fd5b6020830191508360208260061b850101111561346157600080fd5b600080600080600080600060e0888a03121561352c57600080fd5b61353689896134b4565b9650606088013567ffffffffffffffff8082111561355357600080fd5b61355f8b838c016134cc565b909850965060808a0135955060a08a013591508082111561357f57600080fd5b5061358c8a828b0161341f565b989b979a5095989497959660c090950135949350505050565b60008060008060008060e087890312156135be57600080fd5b6135c888886134b4565b955060608701356135d881613362565b94506135e660808801613096565b935060a087013567ffffffffffffffff81111561360257600080fd5b61360e89828a016134cc565b979a969950949794969560c090950135949350505050565b60008060008060006080868803121561363e57600080fd5b853561364981613362565b945061365760208701613096565b935060408601359250606086013567ffffffffffffffff81111561367a57600080fd5b6136868882890161341f565b969995985093965092949392505050565b600080600080606085870312156136ad57600080fd5b843567ffffffffffffffff808211156136c557600080fd5b6136d1888389016134cc565b90965094506020870135935060408701359150808211156136f157600080fd5b508501610100818803121561370557600080fd5b939692955090935050565b803567ffffffffffffffff81168114610fa657600080fd5b803561ffff81168114610fa657600080fd5b80356fffffffffffffffffffffffffffffffff81168114610fa657600080fd5b6000602080838503121561376d57600080fd5b823567ffffffffffffffff81111561378457600080fd5b8301601f8101851361379557600080fd5b80356137a36131a682613161565b81815260a091820283018401918482019190888411156137c257600080fd5b938501935b838510156138455780858a0312156137df5760008081fd5b6137e76130e9565b85356137f281613362565b81526137ff868801613710565b878201526040613810818801613728565b90820152606061382187820161373a565b90820152608061383287820161373a565b90820152835293840193918501916137c7565b50979650505050505050565b60006020828403121561386357600080fd5b611f0a82613728565b60008060006040848603121561388157600080fd5b833561388c81613362565b9250602084013567ffffffffffffffff808211156138a957600080fd5b818601915086601f8301126138bd57600080fd5b8135818111156138cc57600080fd5b8760208260051b85010111156138e157600080fd5b6020830194508093505050509250925092565b60006020828403121561390657600080fd5b8151611f0a81613362565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061396e604083018587613911565b9050826020830152949350505050565b600061014073ffffffffffffffffffffffffffffffffffffffff80885116845263ffffffff60208901511660208501528060408901511660408501525060608701516060840152608087015161ffff80821660808601528754915067ffffffffffffffff821660a0860152808260401c1660c0860152506fffffffffffffffffffffffffffffffff808260501c1660e086015280600189015416610100860152505080610120840152612eee8184018587613911565b600060208284031215613a4657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610c8657610c86613a4d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ac457600080fd5b83018035915067ffffffffffffffff821115613adf57600080fd5b60200191503681900382131561346157600080fd5b8035613aff81613362565b63ffffffff1682526020818101359083015267ffffffffffffffff613b2660408301613710565b1660408301525050565b613b3a8189613af4565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000613b7360e083018688613911565b82810360c0840152613b86818587613911565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015613c50578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060808201516fffffffffffffffffffffffffffffffff90811691870191909152608091820151169085015260a09093019290850190600101613be0565b5091979650505050505050565b600067ffffffffffffffff808316818103613c7a57613c7a613a4d565b6001019392505050565b60008085851115613c9457600080fd5b83861115613ca157600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015613cee5780818660040360031b1b83161692505b505092915050565b600060408284031215613d0857600080fd5b6040516040810181811067ffffffffffffffff82111715613d2b57613d2b6130ba565b604052613d3783613096565b8152602083013560208201528091505092915050565b80820180821115610c8657610c86613a4d565b60008151808452602080850194506020840160005b83811015613d93578151151587529582019590820190600101613d75565b509495945050505050565b600060e08201613dae838a613af4565b63ffffffff8816606084015273ffffffffffffffffffffffffffffffffffffffff878116608085015260e060a0850152908590528590610100840160005b87811015613e1d5782613dfe85613096565b1682526020848101359083015260409384019390910190600101613dec565b5084810360c0860152613e308187613d60565b9b9a5050505050505050505050565b600067ffffffffffffffff821680613e5957613e59613a4d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60005b83811015613e9c578181015183820152602001613e84565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613edd816017850160208801613e81565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613f1a816028840160208801613e81565b01602801949350505050565b6020815260008251806020840152613f45816040850160208701613e81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356020831015610c86577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610c8657610c86613a4d565b600081613fd957613fd9613a4d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561401157600080fd5b8151611f0a8161331e565b6000825161402e818460208701613e81565b919091019291505056fea26469706673582212205b91117d3d8d755936f26cac2f0de9cfce1ffe0d9b8bc439c5eb442e32e5671764736f6c63430008160033",
1153
+ "deployedBytecode": "0x6080604052600436106102175760003560e01c8063717e8a421161011d578063acdbcca5116100b0578063c7b2370b1161007f578063d2ae210411610064578063d2ae210414610787578063d547741f146107d9578063fa34c84e146107f957600080fd5b8063c7b2370b14610747578063cd88b9031461076757600080fd5b8063acdbcca5146106ac578063c2803b2c146106cc578063c358de0a146106fa578063c416aa511461071a57600080fd5b80638624ba07116100ec5780638624ba071461057557806391d14854146105885780639e944965146105db578063a217fddf1461069757600080fd5b8063717e8a42146104bd578063724e78da146104dd57806372607537146104fd578063741bef1a1461054857600080fd5b80632de11376116101b05780633927c0751161017f5780635c975abb116101645780635c975abb146104325780635e280f111461044a578063709eb6641461049d57600080fd5b80633927c0751461040c578063475b6d9e1461041f57600080fd5b80632de113761461038c5780632f2ff15d146103ac5780633146646a146103cc57806336568abe146103ec57600080fd5b80631095b6d7116101ec5780631095b6d7146102e157806316c38b3c14610301578063248a9ca31461032157806326e67a371461035f57600080fd5b80629fc6811461021c578062bf2e801461023e57806301e336671461029157806301ffc9a7146102b1575b600080fd5b34801561022857600080fd5b5061023c6102373660046131fb565b610819565b005b34801561024a57600080fd5b5060c954610279907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561029d57600080fd5b5061023c6102ac3660046132a0565b610bb8565b3480156102bd57600080fd5b506102d16102cc3660046132dc565b610bf3565b6040519015158152602001610288565b3480156102ed57600080fd5b5061023c6102fc3660046132a0565b610c8c565b34801561030d57600080fd5b5061023c61031c36600461332c565b610e1b565b34801561032d57600080fd5b5061035161033c366004613349565b60009081526065602052604090206001015490565b604051908152602001610288565b34801561036b57600080fd5b5061037f61037a366004613374565b610e40565b6040516102889190613391565b34801561039857600080fd5b506102d16103a73660046133d8565b610ec7565b3480156103b857600080fd5b5061023c6103c73660046133f3565b610fab565b3480156103d857600080fd5b5061023c6103e7366004613468565b610fd5565b3480156103f857600080fd5b5061023c6104073660046133f3565b61109e565b61023c61041a366004613511565b6110d0565b61023c61042d3660046135a5565b6111ba565b34801561043e57600080fd5b5060975460ff166102d1565b34801561045657600080fd5b5061012e546104789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610288565b3480156104a957600080fd5b506103516104b8366004613626565b61120e565b3480156104c957600080fd5b506103516104d8366004613626565b611367565b3480156104e957600080fd5b5061023c6104f83660046133d8565b6114e5565b34801561050957600080fd5b5061012e546105339074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610288565b34801561055457600080fd5b5060ca546104789073ffffffffffffffffffffffffffffffffffffffff1681565b61023c610583366004613697565b61158a565b34801561059457600080fd5b506102d16105a33660046133f3565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156105e757600080fd5b506106516105f6366004613374565b61012d602052600090815260409020805460019091015467ffffffffffffffff82169161ffff68010000000000000000820416916fffffffffffffffffffffffffffffffff6a01000000000000000000009092048216911684565b6040805167ffffffffffffffff909516855261ffff90931660208501526fffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610288565b3480156106a357600080fd5b50610351600081565b3480156106b857600080fd5b5061023c6106c736600461375a565b6116c7565b3480156106d857600080fd5b5061012f546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561070657600080fd5b5061023c610715366004613851565b611877565b34801561072657600080fd5b5060c9546104789073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075357600080fd5b5061023c6107623660046133d8565b611924565b34801561077357600080fd5b5061023c61078236600461386c565b6119c1565b34801561079357600080fd5b5060c9546107c09074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610288565b3480156107e557600080fd5b5061023c6107f43660046133f3565b611a0b565b34801561080557600080fd5b5061023c6108143660046133d8565b611a30565b60006108437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661089c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556108be565b3373ffffffffffffffffffffffffffffffffffffffff8216146108be57600080fd5b600054610100900460ff16158080156108de5750600054600160ff909116105b806108f85750303b1580156108f8575060005460ff166001145b610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109ef611b1e565b6109fe8686612ee08787611bbf565b61012e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16908117909155604080517f416ecebf000000000000000000000000000000000000000000000000000000008152905163416ecebf916004808201926020929091908290030181865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906138f4565b61012e80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff939093169290920291909117905561012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610be281611c7b565b610bed848484611c88565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610c8657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610cb681611c7b565b73ffffffffffffffffffffffffffffffffffffffff841660009081527fe3a3b2721d010eec8988605a93cd7c15d969808c0e2b42f6155dc2b4fa13c081602052604090205460ff16610d34576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610e2681611c7b565b8115610e3857610e34611cb8565b5050565b610e34611d3d565b63ffffffff8116600090815260cb6020908152604091829020805483518184028101840190945280845260609392830182828015610ebb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e8c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f0f6a9529577ef7bf1cbc8fccda1cc3c881f755c7e92e34c7c4deac1fa3c1c791602052604081205460ff1615610f1c57506000919050565b60c95474010000000000000000000000000000000000000000900467ffffffffffffffff161580610f91575073ffffffffffffffffffffffffffffffffffffffff821660009081527f35c5067391a9036240763c1067bfa438a7b0131204a675a2fe562dd73782ce85602052604090205460ff165b15610f9e57506001919050565b506000919050565b919050565b600082815260656020526040902060010154610fc681611c7b565b610fd08383611d94565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610fff81611c7b565b611007611e5b565b61012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f8906110629087908790879060040161395a565b600060405180830381600087803b15801561107c57600080fd5b505af1158015611090573d6000803e3d6000fd5b50505050610bed600160fb55565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110fa81611c7b565b611102611e5b565b611122886111108686611ed5565b61111a8787611ef8565b8a8a8a611f11565b5061012f546040517fe65106f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e65106f89061117e9087908790879060040161395a565b600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b50505050610bae600160fb55565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111e481611c7b565b6111ec611e5b565b6111fa878787878787611f11565b50611205600160fb55565b50505050505050565b60008461121a81610ec7565b611250576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611258612086565b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a1660208084018290528a831684860152606084018a905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517f371c3a8e000000000000000000000000000000000000000000000000000000008152929391169163371c3a8e9161131a918591908a908a9060040161397e565b602060405180830381865afa158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190613a34565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61139381611c7b565b8561139d81610ec7565b6113d3576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260ca5473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8b1660208084018290528b831684860152606084018b905260c95461ffff7c01000000000000000000000000000000000000000000000000000000008204166080860152600092835261012d9091529084902093517ff43bcfc5000000000000000000000000000000000000000000000000000000008152929391169163f43bcfc591611495918591908b908b9060040161397e565b6020604051808303816000875af11580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d89190613a34565b9998505050505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561150f81611c7b565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115b481611c7b565b6115bc611e5b565b61012e546000906115fc90602085019074010000000000000000000000000000000000000000900463ffffffff166115f482876133d8565b898989611f11565b9050600061160a8234613a7c565b61012e5490915073ffffffffffffffffffffffffffffffffffffffff16630c0c389e60e08601358360208801611640818a6133d8565b60808a013561165260a08c018c613a8f565b61165f60c08e018e613a8f565b6040518a63ffffffff1660e01b81526004016116819796959493929190613b30565b6000604051808303818589803b15801561169a57600080fd5b5088f11580156116ae573d6000803e3d6000fd5b50505050505050506116c0600160fb55565b5050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116f181611c7b565b60005b825181101561184757600083828151811061171157611711613b94565b60209081029190910181015160408051608080820183528385015167ffffffffffffffff90811683528385015161ffff9081168488019081526060808801516fffffffffffffffffffffffffffffffff908116878901908152958901518116918701918252975163ffffffff16600090815261012d90995295909720935184549751935187166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9490921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090981692169190911795909517169390931783555160019283018054919092167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161790559190910190506116f4565b507f3fd3f9275410b39824c12e5dfcf63fb332698a5eee3b09895aaaaa9e403bd4818260405161157e9190613bc3565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756118a181611c7b565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561194e81611c7b565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161157e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119eb81611c7b565b63ffffffff8416600090815260cb602052604090206116c0908484612fd8565b600082815260656020526040902060010154611a2681611c7b565b610fd083836120f3565b6000611a5a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116611ab35773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355611ad5565b3373ffffffffffffffffffffffffffffffffffffffff821614611ad557600080fd5b5061012f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16611bb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611bbd6121b9565b565b600054610100900460ff16611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b611c5e612250565b611c66612250565b611c6e6122e7565b6116c085858585856123a8565b611c85813361258d565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611cad57610fd08282612647565b610fd083838361274d565b611cc0612086565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d133390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611d456127bb565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611d13565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611df35750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611e515760c98054601490611e2a9074010000000000000000000000000000000000000000900467ffffffffffffffff16613c5d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612827565b600260fb5403611ec7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610980565b600260fb55565b600160fb55565b6000611ee56031602d8486613c84565b611eee91613cae565b60e01c9392505050565b6000611f0a611f07848461291b565b90565b9392505050565b6000808367ffffffffffffffff811115611f2d57611f2d6130ba565b604051908082528060200260200182016040528015611f56578160200160208202803683370190505b50905060005b84811015612039576000868683818110611f7857611f78613b94565b905060400201803603810190611f8e9190613cf6565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1682602001518790604051600060405180830381858888f193505050503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b505090508084848151811061201157612011613b94565b91151560209283029190910182015282015161202d9086613d4d565b94505050600101611f5c565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c346888888888888660405161207396959493929190613d9e565b60405180910390a1509695505050505050565b60975460ff1615611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610980565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156121515750600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156121af5760c980546014906121889074010000000000000000000000000000000000000000900467ffffffffffffffff16613e3f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610e348282612934565b600054610100900460ff16611ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b600054610100900460ff1661237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff1661243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610980565b60c980547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff86160217905560ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff868116919091179091558216156124e3576124e3600083611d94565b60005b855181101561253a576125327f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de87838151811061252557612525613b94565b6020026020010151611d94565b6001016124e6565b5060005b81518110156125855761257d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811061252557612525613b94565b60010161253e565b505050505050565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e34576125cd816129ef565b6125d8836020612a0e565b6040516020016125e9929190613ea5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261098091600401613f26565b73ffffffffffffffffffffffffffffffffffffffff8216612694576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146126ee576040519150601f19603f3d011682016040523d82523d6000602084013e6126f3565b606091505b5050905080610fd0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610980565b73ffffffffffffffffffffffffffffffffffffffff821661279a576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fd073ffffffffffffffffffffffffffffffffffffffff84168383612c51565b60975460ff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610980565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556128bd3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061292b605160318486613c84565b611f0a91613f77565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610e3457600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610c8673ffffffffffffffffffffffffffffffffffffffff831660145b60606000612a1d836002613fb3565b612a28906002613d4d565b67ffffffffffffffff811115612a4057612a406130ba565b6040519080825280601f01601f191660200182016040528015612a6a576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612aa157612aa1613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b0457612b04613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612b40846002613fb3565b612b4b906001613d4d565b90505b6001811115612be8577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612b8c57612b8c613b94565b1a60f81b828281518110612ba257612ba2613b94565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612be181613fca565b9050612b4e565b508315611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610980565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610fd092869291600091612d1c918516908490612dc9565b9050805160001480612d3d575080806020019051810190612d3d9190613fff565b610fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610980565b6060612dd88484600085612de0565b949350505050565b606082471015612e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610980565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e9b919061401c565b60006040518083038185875af1925050503d8060008114612ed8576040519150601f19603f3d011682016040523d82523d6000602084013e612edd565b606091505b5091509150612eee87838387612ef9565b979650505050505050565b60608315612f8f578251600003612f885773ffffffffffffffffffffffffffffffffffffffff85163b612f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610980565b5081612dd8565b612dd88383815115612fa45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109809190613f26565b82805482825590600052602060002090601f016020900481019282156130715791602002820160005b8382111561304257833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613001565b801561306f5782816101000a81549060ff0219169055600101602081600001049283019260010302613042565b505b5061307d929150613081565b5090565b5b8082111561307d5760008155600101613082565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fa657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561310c5761310c6130ba565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613159576131596130ba565b604052919050565b600067ffffffffffffffff82111561317b5761317b6130ba565b5060051b60200190565b600082601f83011261319657600080fd5b813560206131ab6131a683613161565b613112565b8083825260208201915060208460051b8701019350868411156131cd57600080fd5b602086015b848110156131f0576131e381613096565b83529183019183016131d2565b509695505050505050565b60008060008060008060c0878903121561321457600080fd5b61321d87613096565b955061322b60208801613096565b9450604087013567ffffffffffffffff8082111561324857600080fd5b6132548a838b01613185565b955061326260608a01613096565b945061327060808a01613096565b935060a089013591508082111561328657600080fd5b5061329389828a01613185565b9150509295509295509295565b6000806000606084860312156132b557600080fd5b6132be84613096565b92506132cc60208501613096565b9150604084013590509250925092565b6000602082840312156132ee57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611f0a57600080fd5b8015158114611c8557600080fd5b60006020828403121561333e57600080fd5b8135611f0a8161331e565b60006020828403121561335b57600080fd5b5035919050565b63ffffffff81168114611c8557600080fd5b60006020828403121561338657600080fd5b8135611f0a81613362565b6020808252825182820181905260009190848201906040850190845b818110156133cc57835160ff16835292840192918401916001016133ad565b50909695505050505050565b6000602082840312156133ea57600080fd5b611f0a82613096565b6000806040838503121561340657600080fd5b8235915061341660208401613096565b90509250929050565b60008083601f84011261343157600080fd5b50813567ffffffffffffffff81111561344957600080fd5b60208301915083602082850101111561346157600080fd5b9250929050565b60008060006040848603121561347d57600080fd5b833567ffffffffffffffff81111561349457600080fd5b6134a08682870161341f565b909790965060209590950135949350505050565b6000606082840312156134c657600080fd5b50919050565b60008083601f8401126134de57600080fd5b50813567ffffffffffffffff8111156134f657600080fd5b6020830191508360208260061b850101111561346157600080fd5b600080600080600080600060e0888a03121561352c57600080fd5b61353689896134b4565b9650606088013567ffffffffffffffff8082111561355357600080fd5b61355f8b838c016134cc565b909850965060808a0135955060a08a013591508082111561357f57600080fd5b5061358c8a828b0161341f565b989b979a5095989497959660c090950135949350505050565b60008060008060008060e087890312156135be57600080fd5b6135c888886134b4565b955060608701356135d881613362565b94506135e660808801613096565b935060a087013567ffffffffffffffff81111561360257600080fd5b61360e89828a016134cc565b979a969950949794969560c090950135949350505050565b60008060008060006080868803121561363e57600080fd5b853561364981613362565b945061365760208701613096565b935060408601359250606086013567ffffffffffffffff81111561367a57600080fd5b6136868882890161341f565b969995985093965092949392505050565b600080600080606085870312156136ad57600080fd5b843567ffffffffffffffff808211156136c557600080fd5b6136d1888389016134cc565b90965094506020870135935060408701359150808211156136f157600080fd5b508501610100818803121561370557600080fd5b939692955090935050565b803567ffffffffffffffff81168114610fa657600080fd5b803561ffff81168114610fa657600080fd5b80356fffffffffffffffffffffffffffffffff81168114610fa657600080fd5b6000602080838503121561376d57600080fd5b823567ffffffffffffffff81111561378457600080fd5b8301601f8101851361379557600080fd5b80356137a36131a682613161565b81815260a091820283018401918482019190888411156137c257600080fd5b938501935b838510156138455780858a0312156137df5760008081fd5b6137e76130e9565b85356137f281613362565b81526137ff868801613710565b878201526040613810818801613728565b90820152606061382187820161373a565b90820152608061383287820161373a565b90820152835293840193918501916137c7565b50979650505050505050565b60006020828403121561386357600080fd5b611f0a82613728565b60008060006040848603121561388157600080fd5b833561388c81613362565b9250602084013567ffffffffffffffff808211156138a957600080fd5b818601915086601f8301126138bd57600080fd5b8135818111156138cc57600080fd5b8760208260051b85010111156138e157600080fd5b6020830194508093505050509250925092565b60006020828403121561390657600080fd5b8151611f0a81613362565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061396e604083018587613911565b9050826020830152949350505050565b600061014073ffffffffffffffffffffffffffffffffffffffff80885116845263ffffffff60208901511660208501528060408901511660408501525060608701516060840152608087015161ffff80821660808601528754915067ffffffffffffffff821660a0860152808260401c1660c0860152506fffffffffffffffffffffffffffffffff808260501c1660e086015280600189015416610100860152505080610120840152612eee8184018587613911565b600060208284031215613a4657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610c8657610c86613a4d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ac457600080fd5b83018035915067ffffffffffffffff821115613adf57600080fd5b60200191503681900382131561346157600080fd5b8035613aff81613362565b63ffffffff1682526020818101359083015267ffffffffffffffff613b2660408301613710565b1660408301525050565b613b3a8189613af4565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000613b7360e083018688613911565b82810360c0840152613b86818587613911565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015613c50578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060808201516fffffffffffffffffffffffffffffffff90811691870191909152608091820151169085015260a09093019290850190600101613be0565b5091979650505050505050565b600067ffffffffffffffff808316818103613c7a57613c7a613a4d565b6001019392505050565b60008085851115613c9457600080fd5b83861115613ca157600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015613cee5780818660040360031b1b83161692505b505092915050565b600060408284031215613d0857600080fd5b6040516040810181811067ffffffffffffffff82111715613d2b57613d2b6130ba565b604052613d3783613096565b8152602083013560208201528091505092915050565b80820180821115610c8657610c86613a4d565b60008151808452602080850194506020840160005b83811015613d93578151151587529582019590820190600101613d75565b509495945050505050565b600060e08201613dae838a613af4565b63ffffffff8816606084015273ffffffffffffffffffffffffffffffffffffffff878116608085015260e060a0850152908590528590610100840160005b87811015613e1d5782613dfe85613096565b1682526020848101359083015260409384019390910190600101613dec565b5084810360c0860152613e308187613d60565b9b9a5050505050505050505050565b600067ffffffffffffffff821680613e5957613e59613a4d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b60005b83811015613e9c578181015183820152602001613e84565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613edd816017850160208801613e81565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613f1a816028840160208801613e81565b01602801949350505050565b6020815260008251806020840152613f45816040850160208701613e81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356020831015610c86577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610c8657610c86613a4d565b600081613fd957613fd9613a4d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561401157600080fd5b8151611f0a8161331e565b6000825161402e818460208701613e81565b919091019291505056fea26469706673582212205b91117d3d8d755936f26cac2f0de9cfce1ffe0d9b8bc439c5eb442e32e5671764736f6c63430008160033",
1154
1154
  "linkReferences": {},
1155
1155
  "deployedLinkReferences": {}
1156
1156
  }
@@ -14,6 +14,17 @@
14
14
  "stateMutability": "nonpayable",
15
15
  "type": "constructor"
16
16
  },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "uint32",
21
+ "name": "eid",
22
+ "type": "uint32"
23
+ }
24
+ ],
25
+ "name": "Executor_EidNotSupported",
26
+ "type": "error"
27
+ },
17
28
  {
18
29
  "inputs": [
19
30
  {
@@ -72,6 +83,11 @@
72
83
  "name": "Executor_UnsupportedOptionType",
73
84
  "type": "error"
74
85
  },
86
+ {
87
+ "inputs": [],
88
+ "name": "Executor_ZeroLzReceiveGasProvided",
89
+ "type": "error"
90
+ },
75
91
  {
76
92
  "inputs": [
77
93
  {
@@ -329,8 +345,8 @@
329
345
  "type": "receive"
330
346
  }
331
347
  ],
332
- "bytecode": "0x60a060405234801561001057600080fd5b5060405161172a38038061172a83398101604081905261002f91610090565b61003833610040565b6080526100a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a257600080fd5b5051919050565b6080516116666100c4600039600061095f01526116666000f3fe6080604052600436106100695760003560e01c80638da5cb5b116100435780638da5cb5b146100df578063f2fde38b14610114578063f43bcfc51461013457600080fd5b806301e3366714610075578063371c3a8e14610097578063715018a6146100ca57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b5061009561009036600461119e565b610154565b005b3480156100a357600080fd5b506100b76100b23660046111da565b61016c565b6040519081526020015b60405180910390f35b3480156100d657600080fd5b5061009561030d565b3480156100eb57600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c1565b34801561012057600080fd5b5061009561012f36600461129a565b610321565b34801561014057600080fd5b506100b761014f3660046111da565b6103dd565b61015c6104a6565b610167838383610527565b505050565b600080806101b961019561018660408a0160208b016112bc565b61753063ffffffff9091161090565b6101a260208901896112e2565b6101b260808a0160608b0161132a565b8888610557565b909250905060008080806101d060208c018c61129a565b73ffffffffffffffffffffffffffffffffffffffff166388a4124c6101fb60408e0160208f016112bc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028a9190611347565b929650909450925090506102d4846102a860408d0160208e0161139c565b8d60800160208101906102bb919061139c565b8d60400160208101906102ce919061132a565b856108d4565b96506102f48684848e60800160208101906102ef919061139c565b6109cf565b6102fe90886113ef565b9b9a5050505050505050505050565b6103156104a6565b61031f6000610a39565b565b6103296104a6565b73ffffffffffffffffffffffffffffffffffffffff81166103d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103da81610a39565b50565b600080806103f761019561018660408a0160208b016112bc565b9092509050600080808061040e60208c018c61129a565b73ffffffffffffffffffffffffffffffffffffffff1663c1723a1d61043960408e0160208f016112bc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610266573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461031f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c8565b73ffffffffffffffffffffffffffffffffffffffff831661054c576101678282610aae565b610167838383610bb4565b600080828103610592576040517e575ea100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5067ffffffffffffffff85166000805b848210156108065760003681806105ba8a8a88610c22565b9850919550935091508590507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff85160161069f576000806105fd8585610c78565b915091508e801561062057506000816fffffffffffffffffffffffffffffffff16115b1561065c576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff871660048201526024016103c8565b6106786fffffffffffffffffffffffffffffffff82168b6113ef565b99506106966fffffffffffffffffffffffffffffffff83168a6113ef565b985050506107fd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8516016106fc5760006106d58484610cf6565b5090506106f46fffffffffffffffffffffffffffffffff82168a6113ef565b9850506107fd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff851601610793578c15610763576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016103c8565b6000806107708585610d4d565b9250925050806fffffffffffffffffffffffffffffffff168a61067891906113ef565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff8516016107c657600194506107fd565b6040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016103c8565b505050506105a2565b818514610842576040517f990776ea000000000000000000000000000000000000000000000000000000008152600481018390526024016103c8565b866fffffffffffffffffffffffffffffffff168411156108a8576040517e84ce02000000000000000000000000000000000000000000000000000000008152600481018590526fffffffffffffffffffffffffffffffff881660248201526044016103c8565b80156108c85760646108bb846066611408565b6108c5919061141f565b92505b50509550959350505050565b60008061ffff8616156108e757856108e9565b845b905060006127106108fe61ffff84168a611408565b610908919061141f565b90506fffffffffffffffffffffffffffffffff8416158061093957506fffffffffffffffffffffffffffffffff8516155b156109475791506109c69050565b600088856fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000886fffffffffffffffffffffffffffffffff1661099b9190611408565b6109a5919061141f565b6109af91906113ef565b90508181116109be57816109c0565b805b93505050505b95945050505050565b60008415610a31576127108261ffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff1688610a109190611408565b610a1a919061141f565b610a249190611408565b610a2e919061141f565b90505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610afb576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b55576040519150601f19603f3d011682016040523d82523d6000602084013e610b5a565b606091505b5050905080610167576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016103c8565b73ffffffffffffffffffffffffffffffffffffffff8216610c01576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016773ffffffffffffffffffffffffffffffffffffffff84168383610dda565b600036816001840181610c36888884610e67565b600292909201919050610c4a888884610e8e565b94506001820161ffff82168301610c6381838b8d61145a565b979b909a50969850505061ffff160193505050565b60008060108314801590610c8d575060208314155b15610cc4576040517f4796aee100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cd084846000610eb3565b915060208314610ce1576000610ced565b610ced84846010610eb3565b90509250929050565b60008060308314610d33576040517fc3a1858e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d3f84846000610eb3565b9150610ced84846010610eda565b6000808060128414801590610d63575060228414155b15610d9a576040517f8b4aa70b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610da685856000610e67565b9250610db485856002610eb3565b915060228414610dc5576000610dd1565b610dd185856012610eb3565b90509250925092565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610167908490610ef5565b600060028201610e798184868861145a565b610e8291611484565b60f01c95945050505050565b6000838383818110610ea257610ea26114cc565b919091013560f81c95945050505050565b600060108201610ec58184868861145a565b610ece916114fb565b60801c95945050505050565b600060208201610eec8184868861145a565b6109c691611541565b6000610f57826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110049092919063ffffffff16565b9050805160001480610f78575080806020019051810190610f78919061157d565b610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103c8565b6060610a318484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161103891906115c3565b60006040518083038185875af1925050503d8060008114611075576040519150601f19603f3d011682016040523d82523d6000602084013e61107a565b606091505b509150915061108b87838387611096565b979650505050505050565b6060831561112c5782516000036111255773ffffffffffffffffffffffffffffffffffffffff85163b611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c8565b5081610a31565b610a3183838151156111415781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c891906115df565b803573ffffffffffffffffffffffffffffffffffffffff8116811461119957600080fd5b919050565b6000806000606084860312156111b357600080fd5b6111bc84611175565b92506111ca60208501611175565b9150604084013590509250925092565b6000806000808486036101408112156111f257600080fd5b60a081121561120057600080fd5b85945060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608201121561123357600080fd5b5060a08501925061012085013567ffffffffffffffff8082111561125657600080fd5b818701915087601f83011261126a57600080fd5b81358181111561127957600080fd5b88602082850101111561128b57600080fd5b95989497505060200194505050565b6000602082840312156112ac57600080fd5b6112b582611175565b9392505050565b6000602082840312156112ce57600080fd5b813563ffffffff811681146112b557600080fd5b6000602082840312156112f457600080fd5b813567ffffffffffffffff811681146112b557600080fd5b6fffffffffffffffffffffffffffffffff811681146103da57600080fd5b60006020828403121561133c57600080fd5b81356112b58161130c565b6000806000806080858703121561135d57600080fd5b84519350602085015161136f8161130c565b60408601519093506113808161130c565b60608601519092506113918161130c565b939692955090935050565b6000602082840312156113ae57600080fd5b813561ffff811681146112b557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115611402576114026113c0565b92915050565b8082028115828204841417611402576114026113c0565b600082611455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808585111561146a57600080fd5b8386111561147757600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156114c45780818660020360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156114c45760109490940360031b84901b1690921692915050565b80356020831015611402577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561158f57600080fd5b815180151581146112b557600080fd5b60005b838110156115ba5781810151838201526020016115a2565b50506000910152565b600082516115d581846020870161159f565b9190910192915050565b60208152600082518060208401526115fe81604085016020870161159f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212206e86b6e6b8d397a07b07a93a5ad81a5d6933b3c26623b0d7af01bf8629f2105664736f6c63430008160033",
333
- "deployedBytecode": "0x6080604052600436106100695760003560e01c80638da5cb5b116100435780638da5cb5b146100df578063f2fde38b14610114578063f43bcfc51461013457600080fd5b806301e3366714610075578063371c3a8e14610097578063715018a6146100ca57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b5061009561009036600461119e565b610154565b005b3480156100a357600080fd5b506100b76100b23660046111da565b61016c565b6040519081526020015b60405180910390f35b3480156100d657600080fd5b5061009561030d565b3480156100eb57600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c1565b34801561012057600080fd5b5061009561012f36600461129a565b610321565b34801561014057600080fd5b506100b761014f3660046111da565b6103dd565b61015c6104a6565b610167838383610527565b505050565b600080806101b961019561018660408a0160208b016112bc565b61753063ffffffff9091161090565b6101a260208901896112e2565b6101b260808a0160608b0161132a565b8888610557565b909250905060008080806101d060208c018c61129a565b73ffffffffffffffffffffffffffffffffffffffff166388a4124c6101fb60408e0160208f016112bc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028a9190611347565b929650909450925090506102d4846102a860408d0160208e0161139c565b8d60800160208101906102bb919061139c565b8d60400160208101906102ce919061132a565b856108d4565b96506102f48684848e60800160208101906102ef919061139c565b6109cf565b6102fe90886113ef565b9b9a5050505050505050505050565b6103156104a6565b61031f6000610a39565b565b6103296104a6565b73ffffffffffffffffffffffffffffffffffffffff81166103d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103da81610a39565b50565b600080806103f761019561018660408a0160208b016112bc565b9092509050600080808061040e60208c018c61129a565b73ffffffffffffffffffffffffffffffffffffffff1663c1723a1d61043960408e0160208f016112bc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610266573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461031f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c8565b73ffffffffffffffffffffffffffffffffffffffff831661054c576101678282610aae565b610167838383610bb4565b600080828103610592576040517e575ea100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5067ffffffffffffffff85166000805b848210156108065760003681806105ba8a8a88610c22565b9850919550935091508590507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff85160161069f576000806105fd8585610c78565b915091508e801561062057506000816fffffffffffffffffffffffffffffffff16115b1561065c576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff871660048201526024016103c8565b6106786fffffffffffffffffffffffffffffffff82168b6113ef565b99506106966fffffffffffffffffffffffffffffffff83168a6113ef565b985050506107fd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8516016106fc5760006106d58484610cf6565b5090506106f46fffffffffffffffffffffffffffffffff82168a6113ef565b9850506107fd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff851601610793578c15610763576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016103c8565b6000806107708585610d4d565b9250925050806fffffffffffffffffffffffffffffffff168a61067891906113ef565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff8516016107c657600194506107fd565b6040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016103c8565b505050506105a2565b818514610842576040517f990776ea000000000000000000000000000000000000000000000000000000008152600481018390526024016103c8565b866fffffffffffffffffffffffffffffffff168411156108a8576040517e84ce02000000000000000000000000000000000000000000000000000000008152600481018590526fffffffffffffffffffffffffffffffff881660248201526044016103c8565b80156108c85760646108bb846066611408565b6108c5919061141f565b92505b50509550959350505050565b60008061ffff8616156108e757856108e9565b845b905060006127106108fe61ffff84168a611408565b610908919061141f565b90506fffffffffffffffffffffffffffffffff8416158061093957506fffffffffffffffffffffffffffffffff8516155b156109475791506109c69050565b600088856fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000886fffffffffffffffffffffffffffffffff1661099b9190611408565b6109a5919061141f565b6109af91906113ef565b90508181116109be57816109c0565b805b93505050505b95945050505050565b60008415610a31576127108261ffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff1688610a109190611408565b610a1a919061141f565b610a249190611408565b610a2e919061141f565b90505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610afb576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b55576040519150601f19603f3d011682016040523d82523d6000602084013e610b5a565b606091505b5050905080610167576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016103c8565b73ffffffffffffffffffffffffffffffffffffffff8216610c01576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016773ffffffffffffffffffffffffffffffffffffffff84168383610dda565b600036816001840181610c36888884610e67565b600292909201919050610c4a888884610e8e565b94506001820161ffff82168301610c6381838b8d61145a565b979b909a50969850505061ffff160193505050565b60008060108314801590610c8d575060208314155b15610cc4576040517f4796aee100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cd084846000610eb3565b915060208314610ce1576000610ced565b610ced84846010610eb3565b90509250929050565b60008060308314610d33576040517fc3a1858e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d3f84846000610eb3565b9150610ced84846010610eda565b6000808060128414801590610d63575060228414155b15610d9a576040517f8b4aa70b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610da685856000610e67565b9250610db485856002610eb3565b915060228414610dc5576000610dd1565b610dd185856012610eb3565b90509250925092565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610167908490610ef5565b600060028201610e798184868861145a565b610e8291611484565b60f01c95945050505050565b6000838383818110610ea257610ea26114cc565b919091013560f81c95945050505050565b600060108201610ec58184868861145a565b610ece916114fb565b60801c95945050505050565b600060208201610eec8184868861145a565b6109c691611541565b6000610f57826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110049092919063ffffffff16565b9050805160001480610f78575080806020019051810190610f78919061157d565b610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103c8565b6060610a318484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161103891906115c3565b60006040518083038185875af1925050503d8060008114611075576040519150601f19603f3d011682016040523d82523d6000602084013e61107a565b606091505b509150915061108b87838387611096565b979650505050505050565b6060831561112c5782516000036111255773ffffffffffffffffffffffffffffffffffffffff85163b611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c8565b5081610a31565b610a3183838151156111415781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c891906115df565b803573ffffffffffffffffffffffffffffffffffffffff8116811461119957600080fd5b919050565b6000806000606084860312156111b357600080fd5b6111bc84611175565b92506111ca60208501611175565b9150604084013590509250925092565b6000806000808486036101408112156111f257600080fd5b60a081121561120057600080fd5b85945060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608201121561123357600080fd5b5060a08501925061012085013567ffffffffffffffff8082111561125657600080fd5b818701915087601f83011261126a57600080fd5b81358181111561127957600080fd5b88602082850101111561128b57600080fd5b95989497505060200194505050565b6000602082840312156112ac57600080fd5b6112b582611175565b9392505050565b6000602082840312156112ce57600080fd5b813563ffffffff811681146112b557600080fd5b6000602082840312156112f457600080fd5b813567ffffffffffffffff811681146112b557600080fd5b6fffffffffffffffffffffffffffffffff811681146103da57600080fd5b60006020828403121561133c57600080fd5b81356112b58161130c565b6000806000806080858703121561135d57600080fd5b84519350602085015161136f8161130c565b60408601519093506113808161130c565b60608601519092506113918161130c565b939692955090935050565b6000602082840312156113ae57600080fd5b813561ffff811681146112b557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115611402576114026113c0565b92915050565b8082028115828204841417611402576114026113c0565b600082611455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808585111561146a57600080fd5b8386111561147757600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156114c45780818660020360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156114c45760109490940360031b84901b1690921692915050565b80356020831015611402577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561158f57600080fd5b815180151581146112b557600080fd5b60005b838110156115ba5781810151838201526020016115a2565b50506000910152565b600082516115d581846020870161159f565b9190910192915050565b60208152600082518060208401526115fe81604085016020870161159f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212206e86b6e6b8d397a07b07a93a5ad81a5d6933b3c26623b0d7af01bf8629f2105664736f6c63430008160033",
348
+ "bytecode": "0x60a060405234801561001057600080fd5b5060405161183238038061183283398101604081905261002f91610090565b61003833610040565b6080526100a9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a257600080fd5b5051919050565b60805161176e6100c46000396000610a67015261176e6000f3fe6080604052600436106100695760003560e01c80638da5cb5b116100435780638da5cb5b146100df578063f2fde38b14610114578063f43bcfc51461013457600080fd5b806301e3366714610075578063371c3a8e14610097578063715018a6146100ca57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100956100903660046112a6565b610154565b005b3480156100a357600080fd5b506100b76100b23660046112e2565b61016c565b6040519081526020015b60405180910390f35b3480156100d657600080fd5b5061009561037c565b3480156100eb57600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c1565b34801561012057600080fd5b5061009561012f3660046113a2565b610390565b34801561014057600080fd5b506100b761014f3660046112e2565b610447565b61015c61053f565b6101678383836105c0565b505050565b600061017b60208501856113c4565b67ffffffffffffffff166000036101dc5761019c60408601602087016113ee565b6040517fc3baa0b700000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024015b60405180910390fd5b6000806102286102046101f560408a0160208b016113ee565b61753063ffffffff9091161090565b61021160208901896113c4565b61022160808a0160608b01611432565b88886105f0565b9092509050600080808061023f60208c018c6113a2565b73ffffffffffffffffffffffffffffffffffffffff166388a4124c61026a60408e0160208f016113ee565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa1580156102d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f9919061144f565b929650909450925090506103438461031760408d0160208e016114a4565b8d608001602081019061032a91906114a4565b8d604001602081019061033d9190611432565b856109dc565b96506103638684848e608001602081019061035e91906114a4565b610ad7565b61036d90886114f7565b9b9a5050505050505050505050565b61038461053f565b61038e6000610b41565b565b61039861053f565b73ffffffffffffffffffffffffffffffffffffffff811661043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101d3565b61044481610b41565b50565b600061045660208501856113c4565b67ffffffffffffffff166000036104775761019c60408601602087016113ee565b6000806104906102046101f560408a0160208b016113ee565b909250905060008080806104a760208c018c6113a2565b73ffffffffffffffffffffffffffffffffffffffff1663c1723a1d6104d260408e0160208f016113ee565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af11580156102d5573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d3565b73ffffffffffffffffffffffffffffffffffffffff83166105e5576101678282610bb6565b610167838383610cbc565b60008082810361062b576040517e575ea100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5067ffffffffffffffff8516600080805b858310156108c75760003681806106548b8b89610d2a565b9950919550935091508690507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff851601610739576000806106978585610d80565b915091508f80156106ba57506000816fffffffffffffffffffffffffffffffff16115b156106f6576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff871660048201526024016101d3565b6107126fffffffffffffffffffffffffffffffff82168c6114f7565b9a506107306fffffffffffffffffffffffffffffffff8316886114f7565b965050506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff85160161079657600061076f8484610dfe565b50905061078e6fffffffffffffffffffffffffffffffff82168b6114f7565b9950506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff851601610854578d156107fd576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016101d3565b60008061080a8585610e55565b9250925050806fffffffffffffffffffffffffffffffff168b61082d91906114f7565b9a5061084b6fffffffffffffffffffffffffffffffff83168b6114f7565b995050506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff85160161088757600195506108be565b6040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016101d3565b5050505061063c565b828614610903576040517f990776ea000000000000000000000000000000000000000000000000000000008152600481018490526024016101d3565b876fffffffffffffffffffffffffffffffff16851115610969576040517e84ce02000000000000000000000000000000000000000000000000000000008152600481018690526fffffffffffffffffffffffffffffffff891660248201526044016101d3565b806000036109a3576040517fe5eb8f3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109ad81856114f7565b935081156109cf5760646109c2856066611510565b6109cc9190611527565b93505b5050509550959350505050565b60008061ffff8616156109ef57856109f1565b845b90506000612710610a0661ffff84168a611510565b610a109190611527565b90506fffffffffffffffffffffffffffffffff84161580610a4157506fffffffffffffffffffffffffffffffff8516155b15610a4f579150610ace9050565b600088856fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000886fffffffffffffffffffffffffffffffff16610aa39190611510565b610aad9190611527565b610ab791906114f7565b9050818111610ac65781610ac8565b805b93505050505b95945050505050565b60008415610b39576127108261ffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff1688610b189190611510565b610b229190611527565b610b2c9190611510565b610b369190611527565b90505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610c03576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610c5d576040519150601f19603f3d011682016040523d82523d6000602084013e610c62565b606091505b5050905080610167576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016101d3565b73ffffffffffffffffffffffffffffffffffffffff8216610d09576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016773ffffffffffffffffffffffffffffffffffffffff84168383610ee2565b600036816001840181610d3e888884610f6f565b600292909201919050610d52888884610f96565b94506001820161ffff82168301610d6b81838b8d611562565b979b909a50969850505061ffff160193505050565b60008060108314801590610d95575060208314155b15610dcc576040517f4796aee100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dd884846000610fbb565b915060208314610de9576000610df5565b610df584846010610fbb565b90509250929050565b60008060308314610e3b576040517fc3a1858e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4784846000610fbb565b9150610df584846010610fe2565b6000808060128414801590610e6b575060228414155b15610ea2576040517f8b4aa70b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eae85856000610f6f565b9250610ebc85856002610fbb565b915060228414610ecd576000610ed9565b610ed985856012610fbb565b90509250925092565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610167908490610ffd565b600060028201610f8181848688611562565b610f8a9161158c565b60f01c95945050505050565b6000838383818110610faa57610faa6115d4565b919091013560f81c95945050505050565b600060108201610fcd81848688611562565b610fd691611603565b60801c95945050505050565b600060208201610ff481848688611562565b610ace91611649565b600061105f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661110c9092919063ffffffff16565b90508051600014806110805750808060200190518101906110809190611685565b610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101d3565b6060610b398484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161114091906116cb565b60006040518083038185875af1925050503d806000811461117d576040519150601f19603f3d011682016040523d82523d6000602084013e611182565b606091505b50915091506111938783838761119e565b979650505050505050565b6060831561123457825160000361122d5773ffffffffffffffffffffffffffffffffffffffff85163b61122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101d3565b5081610b39565b610b3983838151156112495781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d391906116e7565b803573ffffffffffffffffffffffffffffffffffffffff811681146112a157600080fd5b919050565b6000806000606084860312156112bb57600080fd5b6112c48461127d565b92506112d26020850161127d565b9150604084013590509250925092565b6000806000808486036101408112156112fa57600080fd5b60a081121561130857600080fd5b85945060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608201121561133b57600080fd5b5060a08501925061012085013567ffffffffffffffff8082111561135e57600080fd5b818701915087601f83011261137257600080fd5b81358181111561138157600080fd5b88602082850101111561139357600080fd5b95989497505060200194505050565b6000602082840312156113b457600080fd5b6113bd8261127d565b9392505050565b6000602082840312156113d657600080fd5b813567ffffffffffffffff811681146113bd57600080fd5b60006020828403121561140057600080fd5b813563ffffffff811681146113bd57600080fd5b6fffffffffffffffffffffffffffffffff8116811461044457600080fd5b60006020828403121561144457600080fd5b81356113bd81611414565b6000806000806080858703121561146557600080fd5b84519350602085015161147781611414565b604086015190935061148881611414565b606086015190925061149981611414565b939692955090935050565b6000602082840312156114b657600080fd5b813561ffff811681146113bd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561150a5761150a6114c8565b92915050565b808202811582820484141761150a5761150a6114c8565b60008261155d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808585111561157257600080fd5b8386111561157f57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156115cc5780818660020360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156115cc5760109490940360031b84901b1690921692915050565b8035602083101561150a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561169757600080fd5b815180151581146113bd57600080fd5b60005b838110156116c25781810151838201526020016116aa565b50506000910152565b600082516116dd8184602087016116a7565b9190910192915050565b60208152600082518060208401526117068160408501602087016116a7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122014a4fdac7427501fce5b3ad4c21428a323c217a5d99120eb190b182172eec96a64736f6c63430008160033",
349
+ "deployedBytecode": "0x6080604052600436106100695760003560e01c80638da5cb5b116100435780638da5cb5b146100df578063f2fde38b14610114578063f43bcfc51461013457600080fd5b806301e3366714610075578063371c3a8e14610097578063715018a6146100ca57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100956100903660046112a6565b610154565b005b3480156100a357600080fd5b506100b76100b23660046112e2565b61016c565b6040519081526020015b60405180910390f35b3480156100d657600080fd5b5061009561037c565b3480156100eb57600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c1565b34801561012057600080fd5b5061009561012f3660046113a2565b610390565b34801561014057600080fd5b506100b761014f3660046112e2565b610447565b61015c61053f565b6101678383836105c0565b505050565b600061017b60208501856113c4565b67ffffffffffffffff166000036101dc5761019c60408601602087016113ee565b6040517fc3baa0b700000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024015b60405180910390fd5b6000806102286102046101f560408a0160208b016113ee565b61753063ffffffff9091161090565b61021160208901896113c4565b61022160808a0160608b01611432565b88886105f0565b9092509050600080808061023f60208c018c6113a2565b73ffffffffffffffffffffffffffffffffffffffff166388a4124c61026a60408e0160208f016113ee565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa1580156102d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f9919061144f565b929650909450925090506103438461031760408d0160208e016114a4565b8d608001602081019061032a91906114a4565b8d604001602081019061033d9190611432565b856109dc565b96506103638684848e608001602081019061035e91906114a4565b610ad7565b61036d90886114f7565b9b9a5050505050505050505050565b61038461053f565b61038e6000610b41565b565b61039861053f565b73ffffffffffffffffffffffffffffffffffffffff811661043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101d3565b61044481610b41565b50565b600061045660208501856113c4565b67ffffffffffffffff166000036104775761019c60408601602087016113ee565b6000806104906102046101f560408a0160208b016113ee565b909250905060008080806104a760208c018c6113a2565b73ffffffffffffffffffffffffffffffffffffffff1663c1723a1d6104d260408e0160208f016113ee565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af11580156102d5573d6000803e3d6000fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d3565b73ffffffffffffffffffffffffffffffffffffffff83166105e5576101678282610bb6565b610167838383610cbc565b60008082810361062b576040517e575ea100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5067ffffffffffffffff8516600080805b858310156108c75760003681806106548b8b89610d2a565b9950919550935091508690507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff851601610739576000806106978585610d80565b915091508f80156106ba57506000816fffffffffffffffffffffffffffffffff16115b156106f6576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff871660048201526024016101d3565b6107126fffffffffffffffffffffffffffffffff82168c6114f7565b9a506107306fffffffffffffffffffffffffffffffff8316886114f7565b965050506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff85160161079657600061076f8484610dfe565b50905061078e6fffffffffffffffffffffffffffffffff82168b6114f7565b9950506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff851601610854578d156107fd576040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016101d3565b60008061080a8585610e55565b9250925050806fffffffffffffffffffffffffffffffff168b61082d91906114f7565b9a5061084b6fffffffffffffffffffffffffffffffff83168b6114f7565b995050506108be565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff85160161088757600195506108be565b6040517f052e551500000000000000000000000000000000000000000000000000000000815260ff851660048201526024016101d3565b5050505061063c565b828614610903576040517f990776ea000000000000000000000000000000000000000000000000000000008152600481018490526024016101d3565b876fffffffffffffffffffffffffffffffff16851115610969576040517e84ce02000000000000000000000000000000000000000000000000000000008152600481018690526fffffffffffffffffffffffffffffffff891660248201526044016101d3565b806000036109a3576040517fe5eb8f3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109ad81856114f7565b935081156109cf5760646109c2856066611510565b6109cc9190611527565b93505b5050509550959350505050565b60008061ffff8616156109ef57856109f1565b845b90506000612710610a0661ffff84168a611510565b610a109190611527565b90506fffffffffffffffffffffffffffffffff84161580610a4157506fffffffffffffffffffffffffffffffff8516155b15610a4f579150610ace9050565b600088856fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000886fffffffffffffffffffffffffffffffff16610aa39190611510565b610aad9190611527565b610ab791906114f7565b9050818111610ac65781610ac8565b805b93505050505b95945050505050565b60008415610b39576127108261ffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff1688610b189190611510565b610b229190611527565b610b2c9190611510565b610b369190611527565b90505b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610c03576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610c5d576040519150601f19603f3d011682016040523d82523d6000602084013e610c62565b606091505b5050905080610167576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016101d3565b73ffffffffffffffffffffffffffffffffffffffff8216610d09576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61016773ffffffffffffffffffffffffffffffffffffffff84168383610ee2565b600036816001840181610d3e888884610f6f565b600292909201919050610d52888884610f96565b94506001820161ffff82168301610d6b81838b8d611562565b979b909a50969850505061ffff160193505050565b60008060108314801590610d95575060208314155b15610dcc576040517f4796aee100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dd884846000610fbb565b915060208314610de9576000610df5565b610df584846010610fbb565b90509250929050565b60008060308314610e3b576040517fc3a1858e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4784846000610fbb565b9150610df584846010610fe2565b6000808060128414801590610e6b575060228414155b15610ea2576040517f8b4aa70b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eae85856000610f6f565b9250610ebc85856002610fbb565b915060228414610ecd576000610ed9565b610ed985856012610fbb565b90509250925092565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610167908490610ffd565b600060028201610f8181848688611562565b610f8a9161158c565b60f01c95945050505050565b6000838383818110610faa57610faa6115d4565b919091013560f81c95945050505050565b600060108201610fcd81848688611562565b610fd691611603565b60801c95945050505050565b600060208201610ff481848688611562565b610ace91611649565b600061105f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661110c9092919063ffffffff16565b90508051600014806110805750808060200190518101906110809190611685565b610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101d3565b6060610b398484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161114091906116cb565b60006040518083038185875af1925050503d806000811461117d576040519150601f19603f3d011682016040523d82523d6000602084013e611182565b606091505b50915091506111938783838761119e565b979650505050505050565b6060831561123457825160000361122d5773ffffffffffffffffffffffffffffffffffffffff85163b61122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101d3565b5081610b39565b610b3983838151156112495781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d391906116e7565b803573ffffffffffffffffffffffffffffffffffffffff811681146112a157600080fd5b919050565b6000806000606084860312156112bb57600080fd5b6112c48461127d565b92506112d26020850161127d565b9150604084013590509250925092565b6000806000808486036101408112156112fa57600080fd5b60a081121561130857600080fd5b85945060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608201121561133b57600080fd5b5060a08501925061012085013567ffffffffffffffff8082111561135e57600080fd5b818701915087601f83011261137257600080fd5b81358181111561138157600080fd5b88602082850101111561139357600080fd5b95989497505060200194505050565b6000602082840312156113b457600080fd5b6113bd8261127d565b9392505050565b6000602082840312156113d657600080fd5b813567ffffffffffffffff811681146113bd57600080fd5b60006020828403121561140057600080fd5b813563ffffffff811681146113bd57600080fd5b6fffffffffffffffffffffffffffffffff8116811461044457600080fd5b60006020828403121561144457600080fd5b81356113bd81611414565b6000806000806080858703121561146557600080fd5b84519350602085015161147781611414565b604086015190935061148881611414565b606086015190925061149981611414565b939692955090935050565b6000602082840312156114b657600080fd5b813561ffff811681146113bd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561150a5761150a6114c8565b92915050565b808202811582820484141761150a5761150a6114c8565b60008261155d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808585111561157257600080fd5b8386111561157f57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156115cc5780818660020360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156115cc5760109490940360031b84901b1690921692915050565b8035602083101561150a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561169757600080fd5b815180151581146113bd57600080fd5b60005b838110156116c25781810151838201526020016116aa565b50506000910152565b600082516116dd8184602087016116a7565b9190910192915050565b60208152600082518060208401526117068160408501602087016116a7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122014a4fdac7427501fce5b3ad4c21428a323c217a5d99120eb190b182172eec96a64736f6c63430008160033",
334
350
  "linkReferences": {},
335
351
  "deployedLinkReferences": {}
336
352
  }
@@ -3,6 +3,17 @@
3
3
  "contractName": "IExecutorFeeLib",
4
4
  "sourceName": "contracts/interfaces/IExecutorFeeLib.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint32",
10
+ "name": "eid",
11
+ "type": "uint32"
12
+ }
13
+ ],
14
+ "name": "Executor_EidNotSupported",
15
+ "type": "error"
16
+ },
6
17
  {
7
18
  "inputs": [
8
19
  {
@@ -46,6 +57,11 @@
46
57
  "name": "Executor_UnsupportedOptionType",
47
58
  "type": "error"
48
59
  },
60
+ {
61
+ "inputs": [],
62
+ "name": "Executor_ZeroLzReceiveGasProvided",
63
+ "type": "error"
64
+ },
49
65
  {
50
66
  "inputs": [
51
67
  {