From a989fa3cddbce0737c2f21161af0135cbf5123c0 Mon Sep 17 00:00:00 2001 From: david-uniswap <274080779+david-uniswap@users.noreply.github.com> Date: Tue, 26 May 2026 15:29:38 -0700 Subject: [PATCH 1/2] deploy Universal Router 2.1.1 to Robinhood Chain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Redeploys UniversalRouter using the regenerated briefcase (stacked on briefcase initcode in that PR was frozen at a submodule pin that predated the v2.1.1 commit upstream. Deployed: - UniversalRouter (v2.1.1): 0x8876789976decbfcbbbe364623c63652db8c0904 Tx: 0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa Initcode hash: 0x6dba80c0116a490d48657845492bb38374489ed49c296ac50614265f97221510 Bytecode size: 26,404 bytes (vs 23,587 for v2.1.0) UnsupportedProtocol (0x7332D11BD10d18A04B119Cd4671a96f3148002c4) is unchanged — same source, same initcode hash, still deployed at the same address. Reused as the `acrossSpokePool` placeholder. Old v2.1.0 UR at 0x248a454ac3584c2a48d1fcb28d3910a6b6ea00af is moved to .history in deployments/json/4663.json and labeled as orphaned. The contract still exists onchain but nothing integrates with it. What v2.1.1 brings over v2.1.0: - PAY_PORTION_FULL_PRECISION command (slot 0x07) with 1e18 precision - Per-hop slippage on v2/v3 swaps (minHopPriceX36) - minHopPriceX36 field added to V4 ExactInputSingleParams struct - Expanded command space mask: 0x3f -> 0x7f - v2 fee-on-transfer slippage fix (uses actual balance change) - OZ audit fixes m01, l03, n05, n08 Verification: - Onchain immutables match expected wiring (SPOKE_POOL = UnsupportedProtocol, V3/V4 position managers, PoolManager). - Bytecode dispatcher contains command 0x07 dispatch (4 instances of PUSH1 0x07 in the deployed bytecode). - Deployed bytecode length matches compiled artifact length (49,095 chars; differences are immutable bake-in only). - V4 smoke test simulation passes against the new UR after updating ExactInputSingleParams struct to include minHopPriceX36 (smoke test update will land separately on david-nick/robinhood-smoke-tests). - Blockscout verification passed on first attempt — no submodule alignment dance needed since briefcase now matches the current submodule pin. Cost: 0.000555 ETH (5.55M gas at 0.1 gwei chain base fee). --- .../4663/run-1779818847710.json | 48 ++ .../4663/run-1779834142853.json | 51 ++ .../Deploy-all.s.sol/4663/run-latest.json | 69 +- deployments/4663.md | 59 ++ deployments/json/4663.json | 65 +- script/deploy/tasks/4663/task-1779834129.json | 609 ++++++++++++++++++ script/deploy/tasks/4663/task-pending.json | 609 ++++++++++++++++++ 7 files changed, 1456 insertions(+), 54 deletions(-) create mode 100644 broadcast/Deploy-all.s.sol/4663/run-1779818847710.json create mode 100644 broadcast/Deploy-all.s.sol/4663/run-1779834142853.json create mode 100644 script/deploy/tasks/4663/task-1779834129.json create mode 100644 script/deploy/tasks/4663/task-pending.json diff --git a/broadcast/Deploy-all.s.sol/4663/run-1779818847710.json b/broadcast/Deploy-all.s.sol/4663/run-1779818847710.json new file mode 100644 index 00000000..e7aada47 --- /dev/null +++ b/broadcast/Deploy-all.s.sol/4663/run-1779818847710.json @@ -0,0 +1,48 @@ +{ + "transactions": [ + { + "hash": "0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24", + "transactionType": "CREATE", + "contractName": "UnsupportedProtocol", + "contractAddress": "0x7332d11bd10d18a04b119cd4671a96f3148002c4", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "gas": "0x1499f", + "value": "0x0", + "input": "0x6080604052348015600e575f5ffd5b50603580601a5f395ff3fe6080604052348015600e575f5ffd5b5060405163ea3559ef60e01b815260040160405180910390fdfea164736f6c634300081e000a", + "nonce": "0x2e", + "chainId": "0x1237" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x106ae", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24", + "transactionIndex": "0x1", + "blockHash": "0xe57988b035ca995a0efc18ce4e37206b6aa3c3dce4431dfc363faee4ee20beaf", + "blockNumber": "0x4597", + "gasUsed": "0x106ae", + "effectiveGasPrice": "0x5f62f20", + "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "to": null, + "contractAddress": "0x7332d11bd10d18a04b119cd4671a96f3148002c4", + "gasUsedForL1": "0x920", + "l1BlockNumber": "0x1803bff" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1779818847710, + "chain": 4663, + "commit": "dbef74e" +} \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/4663/run-1779834142853.json b/broadcast/Deploy-all.s.sol/4663/run-1779834142853.json new file mode 100644 index 00000000..d66746f7 --- /dev/null +++ b/broadcast/Deploy-all.s.sol/4663/run-1779834142853.json @@ -0,0 +1,51 @@ +{ + "transactions": [ + { + "hash": "0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa", + "transactionType": "CREATE2", + "contractName": "UniversalRouter", + "contractAddress": "0x8876789976decbfcbbbe364623c63652db8c0904", + "function": null, + "arguments": [ + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73, 0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f, 0x1f7d7550B1b028f7571E69A784071F0205FD2EfA, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x8366a39CC670B4001A1121B8F6A443A643e40951, 0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3, 0x58daec3116aae6D93017bAAea7749052E8a04fA7, 0x7332D11BD10d18A04B119Cd4671a96f3148002c4)" + ], + "transaction": { + "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x70f79b", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a0806040523461041d57610140816167248038038091610021828561043c565b83398101031261041d576040519061014082016001600160401b03811183821017610409576040526100528161045f565b82526100606020820161045f565b602083019081526100736040830161045f565b90604084019182526100876060840161045f565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c0870161045f565b9660c083019788526100c960e0880161045f565b958660e08501526100f16101206100e36101008b0161045f565b998a6101008801520161045f565b98896101208601526040519761010689610421565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610421565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040957604052815260208101928352604081019182526060810193845260405161019d60408261043c565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca60408461043c565b600183526020830191601960f91b83526101e381610473565b610120526101f084610609565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c08261043c565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e09190915290518116610200529051811661022052905181166102405290518116610260521661028052604051615fe29081610742823960805181614755015260a05181614812015260c05181614726015260e051816147a4015261010051816147ca0152610120518161055f0152610140518161058b01526101605181818161329e0152818161346a01526142c70152610180518181816132c00152818161344901526142a601526101a0518161204f01526101c051816120a201526101e0518181816106760152818161088d0152818161142b01528181611add01528181612ce101528181614ffa015281816150710152818161516b015281816152bb01528181615c350152615da4015261020051818181611a7b01528181612fd90152613129015261022051818181610f5a01528181612eab015261387e0152610240518181816104cb0152818161136c01526129b9015261026051818181610805015261148a015261028051818181610488015281816125dd01526127280152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040957604052565b601f909101601f19168101906001600160401b0382119082101761040957604052565b51906001600160a01b038216820361041d57565b908151602081105f146104ed575090601f8151116104ad57602081519101516020821061049e571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610409575f54600181811c911680156105ff575b60208210146105eb57601f81116105b9575b50602092601f821160011461055a57928192935f9261054f575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610537565b601f198216935f8052805f20915f5b8681106105a15750836001959610610589575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061057c565b91926020600181928685015181550194019201610569565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105e0575061051d565b5f81556001016105d3565b634e487b7160e01b5f52602260045260245ffd5b90607f169061050b565b908151602081105f14610634575090601f8151116104ad57602081519101516020821061049e571790565b6001600160401b03811161040957600154600181811c91168015610737575b60208210146105eb57601f8111610704575b50602092601f82116001146106a357928192935f92610698575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061067f565b601f1982169360015f52805f20915f5b8681106106ec57508360019596106106d4575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106c6565b919260206001819286850151815501940192016106b3565b60015f52601f60205f20910160051c810190601f830160051c015b81811061072c5750610665565b5f815560010161071f565b90607f169061065356fe60806040526004361015610022575b3615610018575f80fd5b610020611a71565b005b5f3560e01c80631a27b201146100f157806324856bc3146100ec5780633593564c146100e757806344684dc3146100e25780638021fef7146100dd578063817122dc146100d857806384b0196e146100d357806391dd7346146100ce578063d04d79a2146100c9578063d0c9f6cb146100c4578063d737d0c7146100bf578063dc4c90d3146100ba5763fa461e330361000e576108b1565b61086e565b610829565b6107e6565b610752565b61063b565b610547565b6104ac565b610469565b6103cd565b6102cb565b6101c6565b610118565b6001600160a01b0381160361010757565b5f80fd5b3590610116826100f6565b565b3461010757604060031936011261010757600435610135816100f6565b6001600160a01b0360243591165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f840112156101075782359167ffffffffffffffff8311610107576020838186019501011161010757565b9181601f840112156101075782359167ffffffffffffffff8311610107576020808501948460051b01011161010757565b60406003193601126101075760043567ffffffffffffffff8111610107576101f2903690600401610167565b60243567ffffffffffffffff811161010757610212903690600401610195565b913330146102c2576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a5761027593337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61002093610cc9565b60606003193601126101075760043567ffffffffffffffff8111610107576102f7903690600401610167565b60243567ffffffffffffffff811161010757610317903690600401610195565b916044354211610383573330146102c2576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a5761027593337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b8015150361010757565b60843590610116826103ab565b3590610116826103ab565b6101006003193601126101075760043567ffffffffffffffff8111610107576103fa903690600401610167565b9060243567ffffffffffffffff81116101075761041b903690600401610195565b9260443560643561042a6103b5565b9060a4359260c4359767ffffffffffffffff891161010757610453610020993690600401610167565b97909660e4359961156f565b5f91031261010757565b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106105315750505090565b8251845260209384019390920191600101610524565b34610107575f600319360112610107576105f56105837f0000000000000000000000000000000000000000000000000000000000000000613c6a565b6106236105af7f0000000000000000000000000000000000000000000000000000000000000000613d6b565b6106036105ba611872565b916040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e08701906104ef565b9085820360408701526104ef565b904660608501523060808501525f60a085015283820360c0850152610514565b0390f35b9060206106389281815201906104ef565b90565b346101075760206003193601126101075760043567ffffffffffffffff81116101075761066c903690600401610167565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361072a576106a591613e23565b90818303610702575f5b8381106106d6576106236040516106c7602082611809565b5f815260405191829182610627565b806106fc6106e76001938789610c53565b3560f81c6106f6838787610c97565b916149ae565b016106af565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610107575f6003193601126101075760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610107575f6003193601126101075760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101075760606003193601126101075760243560043560443567ffffffffffffffff8111610107576108e8903690600401610167565b91905f821392831580610ba2575b610b7a576001600160a01b03946109399361092161091684860186611946565b969250991695611f12565b92909161092e8484613ebb565b999198908a8a611fc8565b6001600160a01b0333911603610b52578015610b35576001600160a01b0389166001600160a01b038916109882995b15610980575050505050505061002093503391612104565b90919293949598999750610995866042111590565b15610a5f575086516109e7575b505050946109c66109b96109c1936100209861218a565b9390926121be565b6119ca565b9480156109df576109d690611a56565b945b3390612256565b505f946109d8565b610a00610a0a938a93610a05935f14610a5857506119ca565b6119df565b611a24565b610a148686611a42565b51808210610a2257806109a2565b7f382ec7a2000000000000000000000000000000000000000000000000000000005f52600487905260245260445260645ffd5b5ffd5b90506119ca565b969450909192507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929796975c8711610b0d578351610aa8575b5050505061002093503391612104565b86610a05610a00610acb958b95610ac5955f14610a5857506119ca565b92611a42565b51808210610ada578080610a98565b7f382ec7a2000000000000000000000000000000000000000000000000000000005f52600486905260245260445260645ffd5b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b0388166001600160a01b038a1610988399610968565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f8513156108f6565b929190333014610c36576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a57610c1193337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d565b61011693610cc9565b634e487b7160e01b5f52603260045260245ffd5b90821015610c5f570190565b610c3f565b903590601e1981360301821215610107570180359067ffffffffffffffff82116101075760200191813603831361010757565b90821015610c5f57610cae9160051b810190610c64565b9091565b6040906106389392815281602082015201906104ef565b909392848103611547575f5b858110610ce457505050509050565b610cef818785610c53565b35610cfb828487610c97565b6060929160019160f884901c607f1660218110156114b557601081101561131c57600881101561105e5780610df75750610d4582610d3c83610d9195611f9d565b92909382612dbf565b92909360808301355f14610df0577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b604081013590610d8c60208201359135612f75565b613a20565b159081610de1575b50610da75750600101610cd5565b90610ddd6040519283927f2c4029e900000000000000000000000000000000000000000000000000000000845260048401610cb2565b0390fd5b600160ff1b161590505f610d99565b3092610d77565b60018103610e695750610e1182610d3c83610e5d95611f9d565b92909360808301355f14610e62577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b604081013590610e5860208201359135612f75565b61391f565b610d91565b3092610e43565b60028103610eba575050610e5d90610e9f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b90604081013591610eb36020830135612f75565b9135613872565b9192909160038103610f8b5750505f92935090610f4d610edb849383611f72565b909190610f3f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9160405194859360208501977f2a2d80d10000000000000000000000000000000000000000000000000000000089528035019060248601611d84565b03601f198101835282611809565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b91610d91565b9092915060048103610fbe575080610fa96020610e5d930135612f75565b6001600160a01b0360408301351691356137be565b60058103610fe55750806040610e5d92013590610fde6020820135612f75565b9035613733565b6006810361100c5750806040610e5d920135906110056020820135612f75565b90356136bd565b600781036110335750806040610e5d9201359061102c6020820135612f75565b90356135ef565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909190600881036110d85750818161107c610e5d9461108594612d9f565b93909282612dbf565b92909360808301355f146110d1577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b6040810135906110cc60208201359135612f75565b61340d565b30926110b7565b600981036111465750818161107c610e5d946110f394612d9f565b92909360808301355f1461113f577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b60408101359061113a60208201359135612f75565b613280565b3092611125565b909290600a81036111c65750505f92935081611166610f4d928594611f47565b929091610f3f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9460405194859360208501977f2b67b57000000000000000000000000000000000000000000000000000000000895260248601611d32565b909290600b81036111eb5750610e5d91506111e660208201359135612f75565b613106565b600c810361120d5750610e5d915061120860208201359135612f75565b612fba565b600d810361124c5750610e5d9161122391612d82565b907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c91612e94565b9092509050600e810361103357506040516370a0823160e01b81526001600160a01b03823516600482015290602082806024810103816001600160a01b0384860135165afa918215611317575f926112e4575b5060400135111580610e5d576040517fa3281672000000000000000000000000000000000000000000000000000000006020820152909250610f858160248101610f3f565b60409192506113099060203d8111611310575b6113018183611809565b810190611cac565b919061129f565b503d6112f7565b611cbb565b90919060108103611332575090610e5d91612c92565b939450929091506011810361139757505f9190816113508493612c45565b61135f60405180938193611bfc565b0390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b601281036113d057505f918291906113507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c8261294f565b601381036114565750505f809160405161141e81610f3f60208201947f6276cbbe00000000000000000000000000000000000000000000000000000000865260a08101359060248401611c21565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b6014810361103357505f91829161146d81836127dd565b479161147e60405180938193611bfc565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b939490939192604083101561152d57505060218103611033575061151e610f3f6114e15f948594613e23565b60409593959491945194859360208501977f24856bc300000000000000000000000000000000000000000000000000000000895260248601611b25565b519082305af190610f85611bcd565b9290949391604081145f14611033575090610e5d916125a5565b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b95909698929a999791978042116103835761158c8c9a9b9c611e49565b5f5b8b81106117a35750868661164e61165e958f611664999896610f3f918f8f6115dc906116569a6040516115c981610f3f602082018095611e7a565b519020961561179c5733925b36916118a9565b6020815191012097604051978896602088019a8b9360e09591989796936001600160a01b039361010087019a7f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c885260208801526040870152606086015260808501521660a083015260c08201520152565b519020613c13565b9236916118a9565b90613c54565b5f1988036116e5575b6116dd97507fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d610bac565b610116611ea7565b61171b61171489611707846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b5460ff1690565b6117745761176f6117446116dd99611707846001600160a01b03165f52600260205260405f2090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b61166d565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f926115d5565b806117b88d9f9e9d6001936115d5918f610c97565b602081519101206117c98285611a42565b52019c9a9b9c61158e565b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761180457604052565b6117d4565b90601f601f19910116810190811067ffffffffffffffff82111761180457604052565b604051906101166101a083611809565b60405190610116606083611809565b6040519061011660a083611809565b67ffffffffffffffff81116118045760051b60200190565b60405190611881602083611809565b5f808352366020840137565b67ffffffffffffffff811161180457601f01601f191660200190565b9291926118b58261188d565b916118c36040519384611809565b829481845281830111610107578281602093845f960137010152565b9080601f8301121561010757816020610638933591016118a9565b9291906119068161185a565b936119146040519586611809565b602085838152019160051b810192831161010757905b82821061193657505050565b813581526020918201910161192a565b60808183031261010757803567ffffffffffffffff8111610107578261196d9183016118df565b92602082013561197c816100f6565b92604083013567ffffffffffffffff811161010757830181601f82011215610107576060918160206119b0933591016118fa565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146119da575f0390565b6119b6565b906ec097ce7bc90715b34b9f10000000008202918083046ec097ce7bc90715b34b9f100000000014901517156119da57565b818102929181159184041417156119da57565b8115611a2e570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610c5f5760209160051b010190565b905f1982019182116119da57565b919082039182116119da57565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141580611ad2575b611aaa57565b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016331415611aa4565b601f8260209493601f1993818652868601375f8582860101520116010190565b939190611b3a91604086526040860191611b05565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b848410611b72575050505050505090565b90919293949596601f19828203018752873583811215610107578401906020823592019167ffffffffffffffff811161010757803603831361010757611bbe6020928392600195611b05565b99019701959401929190611b61565b3d15611bf7573d90611bde8261188d565b91611bec6040519384611809565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361010757565b8060020b0361010757565b9092916001600160a01b0360a091611ca6608060c0860197848135611c45816100f6565b168752846020820135611c57816100f6565b16602088015262ffffff6040820135611c6f81611c09565b1660408801526060810135611c8381611c16565b60020b60608801520135611c96816100f6565b6001600160a01b03166080860152565b16910152565b90816020910312610107575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361010757565b65ffffffffffff611ca6606080936001600160a01b038135611cfa816100f6565b1686526001600160a01b036020820135611d13816100f6565b16602087015283611d2660408301611cc6565b16604087015201611cc6565b60a061063895936001600160a01b0361010094168352611d556020840182611cd9565b6001600160a01b036080820135611d6b816100f6565b1682840152013560c08201528160e08201520191611b05565b92906001600160a01b0390959492951683526060602084015260c08301928535601e19873603018112156101075786016020813591019467ffffffffffffffff8211610107578160071b360386136101075781906060808501525260e0820194905f5b818110611e2b57505050604086611e17611e076020610638999a0161010b565b6001600160a01b03166080850152565b013560a08201526040818503910152611b05565b90919560808082611e3e6001948b611cd9565b019701929101611de7565b90611e538261185a565b611e606040519182611809565b828152601f19611e70829461185a565b0190602036910137565b80516020909101905f5b818110611e915750505090565b8251845260209384019390920191600101611e84565b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611f3a57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611f3a57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611f3a57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611f3a57565b6120e291610638936001600160a01b0382166001600160a01b038416116120ee575b62ffffff906001600160a01b03604051938160208601961686521660408401521660608201526060815261201f608082611809565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526120d38160758101610f3f565b5190206001600160a01b031690565b6001600160a01b031690565b909190611fea565b90601482018092116119da57565b909291906001600160a01b0384163003612122576101169350613733565b91926001600160a01b038411612145576001600160a01b03610116941692613872565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b909291928360041161010757831161010757600401916003190190565b9190918260171161010757601701917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90190565b600160ff1b8110156101075790565b9594936001600160a01b036121f1606095936122059560808b5260808b0191611b05565b921660208801528682036040880152610514565b930152565b9190826040910312610107576020825192015190565b919360a09361063896956001600160a01b03809416855215156020850152604084015216606082015281608082015201906104ef565b929193959490946122678386613ebb565b97915f949194506001600160a01b0381166001600160a01b038a161094859961228f92611fc8565b6001600160a01b03166001600160a01b031694845f14604098610f3f5f96612304956122cf9461234c576401000276a49e5b8d51968795602087016121cd565b8751998a97889687957f128acb0800000000000000000000000000000000000000000000000000000000875260048701612220565b03925af18015611317575f925f9161231b57509192565b905061234091925060403d604011612345575b6123388183611809565b81019061220a565b919092565b503d61232e565b73fffd8963efd1fc6a506488495d951d5263988d259e6122c1565b919394906123758486613ebb565b96915f939193506001600160a01b0388166001600160a01b0382161093849861239d92611fc8565b6001600160a01b03166001600160a01b031693835f14966122cf5f94610f3f866123049560409c61234c576401000276a49e8d51968795602087016121cd565b63ffffffff81160361010757565b3590610116826123dd565b6020818303126101075780359067ffffffffffffffff821161010757016101a0818303126101075761242661182c565b916124308261010b565b835261243e6020830161010b565b602084015261244f6040830161010b565b60408401526124606060830161010b565b60608401526080820135608084015260a082013560a084015260c082013560c084015261248f60e0830161010b565b60e08401526124a161010083016123eb565b6101008401526124b461012083016123eb565b6101208401526124c761014083016123eb565b6101408401526101608201359167ffffffffffffffff8311610107576124f5610180926125019483016118df565b610160850152016103c2565b61018082015290565b989296612589966101809b966001600160a01b036106389f9e9a978d6040836125979f989b8161256d9b8161257b9f168652166020850152169101521660608d015260808c015260a08b015260c08a015260e08901906001600160a01b03169052565b63ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b8161016082015201906104ef565b6125b1918101906123f6565b6080810151905f600160ff1b8314612753575b61018082015115612702575081905b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169161260f82516001600160a01b031690565b60208301516001600160a01b031660408401516001600160a01b03169161264060608601516001600160a01b031690565b9460a08101519060c081015161266060e08301516001600160a01b031690565b61010083015163ffffffff169061267f61012085015163ffffffff1690565b9261016061269561014087015163ffffffff1690565b950151958c3b15610107576040517f7b9392320000000000000000000000000000000000000000000000000000000081529d8e9c8d9b8c9b6126da9b60048e0161250a565b03915a945f95f18015611317576126ee5750565b806126fc5f61011693611809565b8061045f565b9061274e8361271e6120e260408501516001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690613f06565b6125d3565b9150612763610180820151151590565b1561276f5747916125c4565b6127896120e26120e260408401516001600160a01b031690565b6040516370a0823160e01b815230600482015290602090829060249082905afa908115611317575f916127be575b50916125c4565b6127d7915060203d602011611310576113018183611809565b5f6127b7565b80357fdd46508f000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000821603612902575061283a826128409361283a9361216d565b90611f12565b5f5b81811061284e57505050565b61289461288e612888612862848688610c53565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b80159081156128f7575b81156128ec575b81156128e1575b506128b957600101612842565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f6128ac565b6001811491506128a5565b60048114915061289e565b7ff801e525000000000000000000000000000000000000000000000000000000005f527fffffffff000000000000000000000000000000000000000000000000000000001660045260245ffd5b7fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612c1c575b8015612bf3575b15612bc8575060040135906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051917f6352211e00000000000000000000000000000000000000000000000000000000835260208380612a1687600483019190602083019252565b0381855afa928315611317575f93612ba7575b506001600160a01b038116916001600160a01b0384168314928315612b1e575b508215612a89575b50501590505b612a5e5750565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6040517fe985e9c50000000000000000000000000000000000000000000000000000000081526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa801561131757612a57915f91612aef575b505f80612a51565b612b11915060203d602011612b17575b612b098183611809565b8101906130f1565b5f612ae7565b503d612aff565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526004810187905291935090602081602481875afa8015611317576001600160a01b03915f91612b78575b501614915f612a49565b612b9a915060203d602011612ba0575b612b928183611809565b81019061402c565b5f612b6e565b503d612b88565b612bc191935060203d602011612ba057612b928183611809565b915f612a29565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507f42966c680000000000000000000000000000000000000000000000000000000081146129a4565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461299d565b357fffffffff00000000000000000000000000000000000000000000000000000000167f853d0085000000000000000000000000000000000000000000000000000000008101612bc85750565b5f90612cd49260405193849283927f48c89491000000000000000000000000000000000000000000000000000000008452602060048501526024840191611b05565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561131757612d105750565b3d805f833e612d1f8183611809565b8101906020818303126101075780519067ffffffffffffffff8211610107570181601f82011215610107578051612d558161188d565b92612d636040519485611809565b81845260208284010111610107575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611f3a57565b916060830135830191602083359481850194038560051b010111611f3a57565b9160a0830135830191602083359481850194038560051b010111611f3a57565b9190811015610c5f5760071b0190565b35610638816100f6565b60208082528101839052604001915f5b818110612e165750505090565b9091926080806001926001600160a01b038735612e32816100f6565b1681526001600160a01b036020880135612e4b816100f6565b1660208201526001600160a01b036040880135612e67816100f6565b1660408201526001600160a01b036060880135612e83816100f6565b166060820152019401929101612e09565b90915f5b838110612f205750506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561010757612f0f925f92836040518096819582947f0d58b1db00000000000000000000000000000000000000000000000000000000845260048401612df9565b03925af18015611317576126ee5750565b612f33612f2e828686612ddf565b612def565b6001600160a01b03808416911603612f4d57600101612e98565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b03811660018103612fae5750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361063857503090565b6040516370a0823160e01b815230600482015290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315611317575f936130d0575b5082106130a8578161302257505050565b803b15610107575f60405180927f2e1a7d4d00000000000000000000000000000000000000000000000000000000825281838161306788600483019190602083019252565b03925af1801561131757613094575b50306001600160a01b0383160361308b575050565b61011691614041565b806126fc5f6130a293611809565b5f613076565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b6130ea91935060203d602011611310576113018183611809565b915f613011565b908160209103126101075751610638816103ab565b90600160ff1b8103613227575047905b8161311f575050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561131757613213575b50306001600160a01b038316036131a2575b505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af18015611317576131fb575b50565b6131f89060203d602011612b1757612b098183611809565b806126fc5f61322193611809565b5f61318b565b9047821115613116577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b9015610c5f5790565b9060011015610c5f5760200190565b9190811015610c5f5760051b0190565b92909391969594600283106133e557861515806133d1575b6133a9577f0000000000000000000000000000000000000000000000000000000000000000977f0000000000000000000000000000000000000000000000000000000000000000985f96995f1986018681116119da579190825b61334757505050881161331f57610116978561331a92613315612f2e8787613258565b612104565b614124565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919a97505f198b018b81116119da576133908c61337e61336c613397948b8b613270565b3591613377836100f6565b8a8a613270565b3590613389826100f6565b8486614c8c565b919a614d5c565b9a80156119da575f19019190826132f2565b7f609328e8000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f1983018381116119da57871415613298565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b92949690959196600285106133e557811515806135dd575b6133a95761348e613439612f2e8789613258565b613446612f2e888a613261565b907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006145bd565b9687816135c4575b5050506134b56120e26120e2612f2e6134ae88611a56565b888a613270565b6040516370a0823160e01b81526001600160a01b038516600482015296909290602088602481875afa9586156113175761352d985f97613596575b50908561350294939260209899614124565b60405180809681946370a0823160e01b8352600483019190916001600160a01b036020820193169052565b03915afa801561131757613548925f91613577575b50611a64565b1061354f57565b7f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b613590915060203d602011611310576113018183611809565b5f613542565b60209750613502949392916135b888928a3d8c11611310576113018183611809565b985091929394506134f0565b6135d592613315612f2e898b613258565b5f8087613496565b506135e785611a56565b821415613425565b670de0b6b3a76400008311613695576001600160a01b031680613631575061362b61361d6101169347611a11565b670de0b6b3a7640000900490565b90614041565b6040516370a0823160e01b8152306004820152909190602081602481865afa90811561131757610116946136709261361d925f91613676575b50611a11565b916145d4565b61368f915060203d602011611310576113018183611809565b5f61366a565b7f90f5ebeb000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b0316806136d9575061362b6101169247614683565b6040516370a0823160e01b8152306004820152909190602081602481865afa9384156113175761011694613670925f91613714575b50614683565b61372d915060203d602011611310576113018183611809565b5f61370e565b9091906001600160a01b03168061374e575061011691614041565b600160ff1b8214613764575b91610116926145d4565b6040516370a0823160e01b815230600482015292909150602083602481855afa801561131757610116935f9161379f575b509190925061375a565b6137b8915060203d602011611310576113018183611809565b5f613795565b9091906001600160a01b0316806137e15750479081106130a8578061308b575050565b6040516370a0823160e01b815230600482015290929091602083602481875afa928315611317575f93613851575b508210613829578161382057505050565b610116926145d4565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b61386b91935060203d602011611310576113018183611809565b915f61380f565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156113175761390a5750565b806139165f8093611809565b80031261010757565b9492909695939193861515806139f6575b6139ce5761394661394c916139709836916118fa565b946146ea565b835180156139c65761395d90611a56565b945b61396b6109c1896121be565b612256565b909190156139b75750613982906119ca565b0361398f576101166146c5565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b6139c191506119ca565b613982565b505f9461395f565b7f383ef61c000000000000000000000000000000000000000000000000000000005f5260045ffd5b50613a0a613a05601789611a11565b6120f6565b831415613930565b5f1981146119da5760010190565b97939795909192949587151596878098613bfc575b6139ce578998600160ff1b8514613b93575b909950879391965f92808b8a613a5b611872565b9e8f90613aa593613a97935b613a7b613a75836042111590565b986121be565b908815613b895750613a8f30925b8a61470e565b929091612367565b90919015610a5857506119ca565b96613b30575b5015613af6573099613abc9161218a565b9190978892809c8795613ace90613a12565b9c8d95613aa594613a8f613a97959e50509c9e509495969290919e8f90928e9a95938e613a67565b505050509350935093505010613b0857565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b613b3d90610a05886119df565b613b48858588613270565b35808210613b565750613aab565b7fb429f374000000000000000000000000000000000000000000000000000000005f52600486905260245260445260645ffd5b613a8f9092613a89565b9350976120e26120e2613ba69289614f4a565b6040516370a0823160e01b815230600482015298906020908a9060249082905afa8015611317578a995f91613bdd575b5093613a47565b613bf6915060203d602011611310576113018183611809565b5f613bd6565b50613c0b613a0560178b611a11565b8a1415613a35565b604290613c1e61471c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b61063891613c6191614838565b90929192614890565b60ff8114613c7b5761063890614957565b506040515f80548060011c91600182168015613d61575b602084108114613d4d5783855284926020840191908115613d165750600114613cc3575b5061063892500382611809565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b848310613cff57506106389350015f613cb6565b805482840152859350602090920191600101613ceb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525061063893151560051b0190505f613cb6565b634e487b7160e01b5f52602260045260245ffd5b92607f1692613c92565b60ff8114613d7c5761063890614957565b506040515f6001548060011c91600182168015613e19575b602084108114613d4d5783855284926020840191908115613d165750600114613dc4575061063892500382611809565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310613e0257506106389350015f613cb6565b805482840152859350602090920191600101613dee565b92607f1692613d94565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613e8e575060809250010191011017611f3a57565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613e76565b90602b11613ede57803591601762ffffff8460601c9460481c1692013560601c90565b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b03841660248301526044808301959095529381529192613f8b90613f5d606485611809565b5f806001600160a01b0385169286519082855af190613f7a611bcd565b82613ffa575b5081613ff357501590565b613f9457505050565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201526001600160a01b0390931660248401525f604484015261011692613fee90613fe88160648101610f3f565b82614c07565b614c07565b3b15919050565b80519192508115918215614012575b5050905f613f80565b61402592506020809183010191016130f1565b5f80614009565b908160209103126101075751610638816100f6565b5f80809381935af11561405057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361010757565b90816060910312610107576140dd816140ae565b9160406140ec602084016140ae565b920151610638816123dd565b9061063894936080936001600160a01b03928452602084015216604082015281606082015201906104ef565b9493929361414b614138612f2e8489613258565b614145612f2e858a613261565b90614df0565b50915f198101957ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820194831515985f955b898710614191575050505050505050505050565b61419f612f2e888785613270565b936141b1612f2e60018a018886613270565b6040517f0902f1ac00000000000000000000000000000000000000000000000000000000815290956001600160a01b038316606083600481845afa928315611317575f905f9461456d575b506001600160a01b036dffffffffffffffffffffffffffff80829316951693169516851493845f1461455f576040516370a0823160e01b81526001600160a01b039091166004820152919460209083908180602481015b03915afa978815611317578f61427b8f9a978f958e9988915f91614541575b50039687614e0e565b9515614538578c8b5f97955b82101561452a576142a3612f2e6142eb9260028501908d613270565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614e69565b9890985b9b83614514575b5050505f14614493576040516370a0823160e01b81526001600160a01b038781166004830152909591169290602086602481875afa958615611317575f96614473575b50614342611872565b92803b15610107575f92838993614388604051978896879586947f022c0d9f000000000000000000000000000000000000000000000000000000008652600486016140f8565b03925af180156113175761445f575b506040516370a0823160e01b81526001600160a01b038516600482015290602090829060249082905afa928315611317576143ec936ec097ce7bc90715b34b9f1000000000925f91614441575b500302611a24565b6143f788888c613270565b3580821061440e5750506001905b9601959261417d565b7f65d564a5000000000000000000000000000000000000000000000000000000005f52600489905260245260445260645ffd5b614459915060203d8111611310576113018183611809565b5f6143e4565b806126fc5f61446d93611809565b5f614397565b61448c91965060203d8111611310576113018183611809565b945f614339565b5093929091506144a1611872565b93803b15610107575f928385936144e7604051988996879586947f022c0d9f000000000000000000000000000000000000000000000000000000008652600486016140f8565b03925af191821561131757600192614500575b50614405565b806126fc5f61450e93611809565b5f6144fa565b61451e9350613270565b3515158c8f8d906142f6565b5050955087958c8c5f6142ef565b8c8b5f95614287565b614559915060203d8111611310576113018183611809565b5f614272565b602090614253939496613502565b6dffffffffffffffffffffffffffff8095506001600160a01b0392506145aa839260603d81116145b6575b6145a28183611809565b8101906140c9565b509690935050506141fc565b503d614598565b9091610638936145cc91614df0565b929091614e7a565b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f51141617161561462557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b612710821161469d576127109161469991611a11565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d565b7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d565b90602b116101075790602b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630148061480f575b15614777577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261480960c082611809565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461474e565b8151919060418303614868576148619250602082015190606060408401519301515f1a90614f59565b9192909190565b50505f9160029190565b6004111561487c57565b634e487b7160e01b5f52602160045260245ffd5b61489981614872565b806148a2575050565b6148ab81614872565b600181036148db577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6148e481614872565b6002810361491857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80614924600392614872565b1461492c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60ff811690601f82116149865760405191614973604084611809565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b909190600b811015614a5b57600781036149d557506149d09061011692615573565b615979565b600681036149f057506149eb9061011692615326565b6157ef565b60098103614a0b5750614a069061011692615573565b6155f7565b9160088314614a47575050610a5591505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f52600452602490565b610116925090614a5691615326565b6153cf565b600c8103614add5750614a6d916152a1565b90614a77816152b4565b91808311614aad575061011691907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9061515a565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f52600452602482905260445ffd5b600f8103614b5f5750614aef916152a1565b90614af981614ff3565b91808310614b2f575061011691907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9061505f565b7f8b063d73000000000000000000000000000000000000000000000000000000005f52600452602482905260445ffd5b600b8103614b935750614b8d614b7b614b879261011694614fdb565b93829493929193615107565b92615135565b9161515a565b600e8103614bc55750614bb9614baf614bbf9261011694614fdb565b9282949291612f75565b926150f3565b9161505f565b9160108314614bda575050610a559150614a1c565b6101169250614bef614bf892614bbf92614fdb565b92919390612f75565b91614c0284614ff3565b614683565b5f806001600160a01b03614c3093169360208151910182865af1614c29611bcd565b9083615f49565b8051908115159182614c71575b5050614c465750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614c8492506020809183010191016130f1565b155f80614c3d565b91939290614c9d614ca59286614df0565b918194614e7a565b92604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0389165afa918215611317575f905f93614d1b575b506001600160a01b036dffffffffffffffffffffffffffff80829316941694169116145f14610cae5791565b6dffffffffffffffffffffffffffff8094506001600160a01b039250614d50839260603d6060116145b6576145a28183611809565b50959093505050614cef565b9080158015614de8575b614dc05781614d7491611a11565b916103e88302928084046103e814901517156119da57818103918183116119da576103e583029283046103e514911417156119da57614db291611a24565b600181018091116119da5790565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508215614d66565b6001600160a01b0382166001600160a01b038216105f14610cae5791565b811592838015614e61575b614dc0576103e58202918083046103e514901517156119da57614e3c9082611a11565b926103e883029283046103e81417156119da5781018091116119da5761063891611a24565b508015614e19565b92614c9d90614e7793614df0565b91565b91614f43906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614ed1604882611809565b519020610f3f604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b5190201690565b90601411613ede573560601c90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd0579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611317575f516001600160a01b03811615614fc657905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611f3a578035916040602083013592013590565b61501e81307f0000000000000000000000000000000000000000000000000000000000000000615b32565b905f821261502a575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9091801561319d576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610107575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156113175761390a5750565b9081615103576106389150614ff3565b5090565b15615131577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b3090565b90600160ff1b820361514b576106389150615bbf565b816151035761063891506152b4565b90821561319d576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107576040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f8160248183885af180156113175761528d575b506001600160a01b0381166152435750506020906004604051809481937f11da60b40000000000000000000000000000000000000000000000000000000083525af180156113175761522b5750565b6131f89060203d602011611310576113018183611809565b5f936020939261525292615c25565b6004604051809481937f11da60b40000000000000000000000000000000000000000000000000000000083525af180156113175761522b5750565b806126fc5f61529b93611809565b5f6151dc565b9190604011611f3a576020823592013590565b6152df81307f0000000000000000000000000000000000000000000000000000000000000000615b32565b905f82136152f15750610638906119ca565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9061016011611f3a5780350190565b356fffffffffffffffffffffffffffffffff811681036101075790565b35610638816103ab565b91908260a091031261010757604051615374816117e8565b60808082948035615384816100f6565b84526020810135615394816100f6565b602085015260408101356153a781611c09565b604085015260608101356153ba81611c16565b60608501520135916153cb836100f6565b0152565b6153db60c08201615335565b6fffffffffffffffffffffffffffffffff811615615536575b61544c6154476109c16154416fffffffffffffffffffffffffffffffff61541d60a08801615352565b9516809561542f610120890189610c64565b92909161543c368b61535c565b615d24565b600f0b90565b615c5c565b9160e081019261547361545e85615335565b6fffffffffffffffffffffffffffffffff1690565b936fffffffffffffffffffffffffffffffff82169485116154e6575050610100013591826154a057505050565b610a056154ac926119df565b908082106154b8575050565b7fefc8d8eb000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b906154f3610a5592615335565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f526fffffffffffffffffffffffffffffffff90811660045216602452604490565b5061554360a08201615352565b156155645761555f61544761555a60208401612def565b6152b4565b6153f4565b61555f61544761555a83612def565b9060e011611f3a5780350190565b903590601e1981360301821215610107570180359067ffffffffffffffff821161010757602001918160051b3603831361010757565b9190811015610c5f5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6181360301821215610107570190565b60208101906156068282615581565b90505f9261561660608401615335565b9161562084612def565b926fffffffffffffffffffffffffffffffff8116156157dd575b60408501908261564a8388615581565b8015159586925090826157d2575b50506157aa57949093929493845b61569b5750505050505060800161567f61545e82615335565b6fffffffffffffffffffffffffffffffff8316116154e6575050565b8597506fffffffffffffffffffffffffffffffff6157076157006154415f19946156e36156dc8b6156d08f9c809e9f9d615581565b999091019889916155b7565b9788615e42565b9590911694856156f660808a018a610c64565b9390921590615d24565b5f03615c5c565b98615727575b50505f1961571b8892612def565b95019392949084615666565b615755906ec097ce7bc90715b34b9f10000000006fffffffffffffffffffffffffffffffff8b169102611a24565b9061576a81615764868b615581565b90613270565b3590818310615779575061570d565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f8af5ad98000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050815f615658565b506157ea615447846152b4565b61563a565b6157fb60c08201615335565b906fffffffffffffffffffffffffffffffff82161561593a575b6158656158606fffffffffffffffffffffffffffffffff61583860a08501615352565b941693615844856119ca565b90615853610120860186610c64565b92909161543c368861535c565b615f2a565b9060e081019161587761545e84615335565b926fffffffffffffffffffffffffffffffff82169384106158ea575050610100013591826158a457505050565b610a056158b0926119df565b908082106158bc575050565b7f4713c18b000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b906158f7610a5592615335565b7f8b063d73000000000000000000000000000000000000000000000000000000005f526fffffffffffffffffffffffffffffffff90811660045216602452604490565b905061594860a08201615352565b156159675761596161544761595c83612def565b614ff3565b90615815565b61596161544761595c60208401612def565b60208101906159888282615581565b5f9391508061599684612def565b926159a360608601615335565b6fffffffffffffffffffffffffffffffff811615615b20575b60408601916159cb8388615581565b801515958692509082615b15575b50506157aa575f9591949395945b848610615a205750505050505050608001615a0461545e82615335565b6fffffffffffffffffffffffffffffffff8316106158ea575050565b869850615a7b6158606fffffffffffffffffffffffffffffffff92615a5d615a568a615a50888f9e9c9d9e615581565b906155b7565b9687615e42565b9490911693615a6f6080880188610c64565b929091865f0391615d24565b98615a99575b506001615a8e8993612def565b9601949395916159e7565b615ac6906ec097ce7bc90715b34b9f10000000006fffffffffffffffffffffffffffffffff8b1602611a24565b615ad487615764868b615581565b35808210615ae25750615a81565b7fa9b7edf7000000000000000000000000000000000000000000000000000000005f52600488905260245260445260645ffd5b14159050855f6159d9565b50615b2d61544785614ff3565b6159bc565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611317575f91615b90575090565b90506020813d602011615bb7575b81615bab60209383611809565b81010312610107575190565b3d9150615b9e565b6001600160a01b038116615bd257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611317575f91615c0c575090565b610638915060203d602011611310576113018183611809565b61011692916001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169216612104565b906fffffffffffffffffffffffffffffffff8216809203615c7957565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b615d1661063895936001600160a01b0360806101209582815116865282602082015116602087015262ffffff6040820151166040870152606081015160020b6060870152015116608084015260a08301906001600160a01b036040809280511515855260208101516020860152015116910152565b816101008201520191611b05565b936020919394845f14615e1057615d976401000276a4925b615d63615d4761183c565b8815158152948587018890526001600160a01b03166040860152565b60405197889485947ff3cd914c00000000000000000000000000000000000000000000000000000000865260048601615ca1565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611317575f93615ded575b505f13901515145f14615de757600f0b90565b60801d90565b5f919350615e099060203d602011611310576113018183611809565b9290615dd4565b615d9773fffd8963efd1fc6a506488495d951d5263988d2592615d3c565b3561063881611c09565b3561063881611c16565b905f6080604051615e52816117e8565b8281528260208201528260408201528260608201520152615e7282612def565b906001600160a01b038083169082161015615f0e5790614e7790615efe60015b94615ef4615ea260208301615e2e565b615ee8615ebd6060615eb660408701615e38565b9501612def565b95615ed8615ec961184b565b6001600160a01b03909a168a52565b6001600160a01b03166020890152565b62ffffff166040870152565b60020b6060850152565b6001600160a01b03166080830152565b6001600160a01b0391821691614e779116615efe818414615e92565b5f81600f0b12615c79576fffffffffffffffffffffffffffffffff1690565b90615f865750805115615f5e57805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580615fcc575b615f97575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15615f8f56fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad730000000000000000000000008bceaa40b9acdfaedf85adf4ff01f5ad6517937f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000008366a39cc670b4001a1121b8f6a443a643e4095100000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d300000000000000000000000058daec3116aae6d93017baaea7749052e8a04fa70000000000000000000000007332d11bd10d18a04b119cd4671a96f3148002c4", + "nonce": "0x4c", + "chainId": "0x1237" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x54a68e", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa", + "transactionIndex": "0x1", + "blockHash": "0x7a6e0b38ef6e862cfc5f30b8ac37ca6ba60fc77fe276c128b13d5a766c31697a", + "blockNumber": "0x46cf", + "gasUsed": "0x54a68e", + "effectiveGasPrice": "0x5f5e100", + "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "gasUsedForL1": "0x2dd48", + "l1BlockNumber": "0x18040f5" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1779834142853, + "chain": 4663, + "commit": "023196a" +} \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/4663/run-latest.json b/broadcast/Deploy-all.s.sol/4663/run-latest.json index 8a6b62dd..d66746f7 100644 --- a/broadcast/Deploy-all.s.sol/4663/run-latest.json +++ b/broadcast/Deploy-all.s.sol/4663/run-latest.json @@ -1,40 +1,21 @@ { "transactions": [ { - "hash": "0xfc5d58bca306b47501d741bbbb88d8278f8f19d2bd44051076525b25d4b85a60", + "hash": "0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa", "transactionType": "CREATE2", - "contractName": "CaliburEntry", - "contractAddress": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00", - "function": null, - "arguments": null, - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x706446", - "value": "0x0", - "input": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d001060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615fb890816100d382396080518181816120dc0152612811015260a0518181816121020152612837015260c05181818161250101526127c30152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b3661288157005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e5761196a565b611950565b6118a5565b61183d565b61181f565b611678565b611635565b6115f9565b6113fd565b611278565b611174565b61101c565b610fe8565b610e46565b610d9e565b610cc8565b610caf565b610c96565b610c30565b610bcd565b610b9e565b610b34565b610a8e565b610a0e565b610817565b6107b8565b610790565b61070e565b61066a565b610621565b610554565b6103e5565b610393565b610302565b3461026a57602060031936011261026a576020610262600435611984565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d610321600435611b23565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611c5f565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60443560243573ffffffffffffffffffffffffffffffffffffffff61043961253c565b1633036105015761032d926104836104d792846104d0956104f1575b5061046d610467610100850185611df0565b90612b26565b9693928561047e8598949398611b23565b6129e9565b9461048d82611984565b95156104e75778ffffffffff000000000000000000000000000000000000000086169788955b73ffffffffffffffffffffffffffffffffffffffff9236916109bd565b951661316d565b6040519081529081906020820190565b60019788956104b3565b5f9081803892335af1505f610455565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061055282610529565b565b3461026a57602060031936011261026a5760043561057181610529565b3033036105f95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561068781610529565b602435903033036105f95773ffffffffffffffffffffffffffffffffffffffff1690815f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a5760043561072b81610529565b602435903033036105f957806107568373ffffffffffffffffffffffffffffffffffffffff9361325c565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a5760206107ae60043561327b565b6040519015158152f35b3461026a575f60031936011261026a5761032d6040516107d9604082610956565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105f9577f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606546bffffffffffffffffffffffff8116820361088157005b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761093557604052565b6108ec565b6060810190811067ffffffffffffffff82111761093557604052565b90601f601f19910116810190811067ffffffffffffffff82111761093557604052565b6040519061055260c083610956565b60405190610552606083610956565b6003111561026a57565b67ffffffffffffffff811161093557601f01601f191660200190565b9291926109c9826109a1565b916109d76040519384610956565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff933591016109bd565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a57604051610a4b81610919565b8160040135610a5981610997565b8152602482013567ffffffffffffffff811161026a57610a8c926004610a8292369201016109f3565b6020820152611e55565b005b3461026a57602060031936011261026a57600435610aaa611a0c565b5080610ae16318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b015490610aec61375e565b1115610b0c576103218168fbb67fda52d4bfb8bf61032d93141502611b23565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610b55612765565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610bb96120b1565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610c8281610529565b90602435610c8f81610529565b9060443590565b3461026a5760206107ae610ca936610c6a565b91612145565b3461026a5760206107ae610cc236610c6a565b91612277565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610d4f73ffffffffffffffffffffffffffffffffffffffff610d41610d1c612408565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610d85575050500390f35b8251845285945060209384019390920191600101610d77565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610dcf9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610dec61253c565b16330361050157610e16610e07610467610100840184611df0565b50505050916060810190611df0565b60048193929310610e3957826004610e3492610a8c95019101610fc2565b613489565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610e6061253c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116109355760051b60200190565b9080601f8301121561026a57813591610eae83610e7e565b92610ebc6040519485610956565b80845260208085019160051b8301019183831161026a5760208101915b838310610ee857505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610f178261093a565b6020830135610f2581610529565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610f58886020809695819601016109f3565b6040820152815201920191610ed9565b8015150361026a57565b91909160408184031261026a5760405190610f8c82610919565b819381359167ffffffffffffffff831161026a57610fb06020939284938301610e96565b8452013591610fbe83610f68565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610f72565b602060031936011261026a5760043567ffffffffffffffff811161026a57611017610a8c913690600401610f72565b6125b8565b3461026a57604060031936011261026a576004356024353033036105f95781156110cf576110498261327b565b156110a75760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061112957505050505090565b9091929394602080611165837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061111a565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576111cf82610e7e565b916111dd6040519384610956565b808352601f196111ec82610e7e565b015f5b8181106112675750505f5b81811061120f576040518061032d86826110f7565b5f8061121c838587612605565b9061122c60405180938193612621565b0390305af461123961262e565b901561125f579060019161124d828761265d565b52611258818661265d565b50016111fa565b602081519101fd5b8060606020809388010152016111ef565b3461026a57602060031936011261026a576004353033036105f9578060401c6112f36112e58277ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b5467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff81168411156113d55767ffffffffffffffff61ffff91850316116113ad577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c1926113976113a89377ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105f957805f906114506318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b9068fbb67fda52d4bfb8bf84146115ec5783156115dc575b811980549182159260011c5f19810191600183811b179461157057856020525f5260405f20948554928315611561575f97505f19840103611543575b50505055556114b360015b1590565b6110a7576114f06114eb825f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b6126d3565b5f8181527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f80806114a4565b505050505050506114b3901590565b955050505050600190828154146115c057818101838154146115ac5750600201918254146115a25750600190506114b3565b5f6114b392551590565b6114b3935060025f92019081549055551590565b6114b39250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf611468565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a5760207f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561166781610529565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a576116c9903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff60648301356116ef81610529565b168015908115611815575b50156105f9576084820135801515908161180b575b506117e3576117316114af936117619561172c6024860135613e8f565b613ee0565b9691604461175361174e61174999949699368961368a565b613f20565b6120a5565b960135968661047e89611b23565b6117bb57610a8c94610e34938573ffffffffffffffffffffffffffffffffffffffff6117a46117ab9561179384611984565b9561179d87612dc2565b36916109bd565b93166140d1565b6117b6369180612732565b610f72565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f61170f565b905033145f6116fa565b3461026a57602060031936011261026a5760206107ae600435613709565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561186f81610529565b165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052602060405f2054604051908152f35b6118ae3661035f565b6118b9839293613709565b156119285782019160208184031261026a5780359067ffffffffffffffff821161026a57610a8c937eff0000000000000000000000000000000000000000000000000000000000009261190c9201610e96565b916040519261191a84610919565b8352161560208201526125b8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a576020610262612765565b3461026a575f60031936011261026a57602061026261375e565b80156119ed576119938161327b565b6119bf577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b60405190611a1982610919565b60606020835f81520152565b90600182811c92168015611a6c575b6020831014611a3f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611a34565b81601f8201121561026a57805190611a8d826109a1565b92611a9b6040519485610956565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a5760405191611af083610919565b8151611afb81610997565b8352602082015167ffffffffffffffff811161026a57611b1b9201611a76565b602082015290565b611b2b611a0c565b508015611c5657611b3b8161327b565b611b67577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f206040515f825492611ba184611a25565b9081845260208401946001811690815f14611c1b5750600114611bde575b505081611bd46102ff94936020930382610956565b8051010190611abc565b5f908152602081209092505b818310611c01575050810160200181611bd4611bbf565b600181602092949394548385880101520191019190611bea565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b8201602001905081611bd4611bbf565b506102ff6128b7565b9180611d7e5761773961ffff821904028314611d5757611c7e91612b26565b9391611c8d8396949296611b23565b91611ca28282611c9b6120b1565b8887612b79565b928315611d3b575b50505015611d1357611ce9611cef94611cc283611984565b611ccb81612dc2565b73ffffffffffffffffffffffffffffffffffffffff169436916109bd565b92612e6e565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611d4f935085611d49612765565b91612d60565b5f8080611caa565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611d8982826128f1565b611d975790611c7e91612b26565b611da39261047e6128b7565b15611dcc577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611e50602083610956565b5f8252565b3033036105f957805160038110156102785780611e7360029261026e565b1480611f4a575b611f22577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611f1d611eab83613318565b92611f07604051611ed181611ec385602083016102d7565b03601f198101835282610956565b611f02865f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b611fda565b611f1084613355565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611f7a825192602080309583010191016129d4565b1614611e7a565b818110611f8c575050565b5f8155600101611f81565b9190601f8111611fa657505050565b610552925f5260205f20906020601f840160051c83019310611fd0575b601f0160051c0190611f81565b9091508190611fc3565b919091825167ffffffffffffffff81116109355761200281611ffc8454611a25565b84611f97565b6020601f82116001146120405781906120319394955f92612035575b50505f198260011b9260031b1c19161790565b9055565b015190505f8061201e565b601f19821690612053845f5260205f2090565b915f5b81811061208d57509583600195969710612075575b505050811b019055565b01515f1960f88460031b161c191690555f808061206b565b9192602060018192868b015181550194019201612056565b6102ff90610b55612765565b73ffffffffffffffffffffffffffffffffffffffff6120ce612408565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c082610956565b821561226f5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f908152602090205c9082821061221f5781835f1973ffffffffffffffffffffffffffffffffffffffff941061220d575b505016905f80808084865af16121ae61262e565b50156121e5576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b61221891033361325c565b5f8361219a565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f9282156123ff5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f9081527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052604090205482811061221f575f198110612364575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af161230461262e565b501561233c57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806123ca3373ffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a2906122dc565b50505050600190565b7f1f000000000000000000000000000000000000000000000000000000000000009060408051906124398183610956565b600782527f43616c69627572000000000000000000000000000000000000000000000000006020830152805161246f8282610956565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161252f602082610956565b5f80825236602083013790565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600547f800000000000000000000000000000000000000000000000000000000000000081161561259f5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b6125c1336135df565b6125ca81613638565b156105f95761055291613489565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561261c5761038f9160051b810190611df0565b6125d8565b908092918237015f815290565b3d15612658573d9061263f826109a1565b9161264d6040519384610956565b82523d5f602084013e565b606090565b805182101561261c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036126ce57565b612671565b6126dd8154611a25565b90816126e7575050565b81601f5f93116001146126f8575055565b8183526020832061271491601f0160051c810190600101611f81565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261287b60e082610956565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176128ae57633c10b94e5f526004601cfd5b6020526020603cf35b6128bf611a0c565b50604051306020820152602081526128d8604082610956565b604051906128e582610919565b60028252602082015290565b5060418114908115612901575090565b604091501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a5761294f610979565b91803567ffffffffffffffff811161026a578261296d9183016109f3565b8352602081013567ffffffffffffffff811161026a5760a0926129919183016109f3565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610529565b9290600284516129f88161026e565b612a018161026e565b03612a6a579073ffffffffffffffffffffffffffffffffffffffff92612a2692613b2f565b169081612a335750505f90565b612a4d6020612a66920151602080825183010191016129d4565b73ffffffffffffffffffffffffffffffffffffffff1690565b1490565b8351612a758161026e565b612a7e8161026e565b612abb57612ab690612aae612aa360206102ff97015160208082518301019101612909565b9590948101906129be565b929091613aec565b613b04565b60018451612ac88161026e565b612ad18161026e565b03612b1e57611ec3612b19612b04612af960206102ff98015160208082518301019101612909565b96909581019061291f565b92604051928391602083019190602083019252565b6138de565b505050505f90565b9190823592612b358282613bbd565b9093819363ffffffff60408501351684019063ffffffff82351694602080840193870101910110610e3957604090939210612b6c57565b634be6321b5f526004601cfd5b9091939293612b888486614660565b949093612b9f602088013592604089013598614690565b9091612bde8985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612d5457612bec91613c80565b82959299939199158015612d4c575b612d3e57611ec3612cd9612c266102ff9c612c1e612cfc96612d389b36916109bd565b9436916109bd565b604051928391605c612c6360208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613809565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613809565b51902092611ec36040519384926020840196875260408401526060830190613809565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b906129e9565b505050505050505050505f90565b508015612bfb565b50505050505050505f90565b906102ff949392612d3891604090601c60208351612d7e8582610956565b828152017f506572736f6e616c5369676e28627974657320707265666978656429000000008152209180519160208301938452818301528152612cfc606082610956565b612dcb90613e70565b90612dd35750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612e06565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612e81575b50505050565b612ed39373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f62575b501603612f3a575f808080612e7b565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612f84915060203d602011612f8a575b612f7c8183610956565b810190612e33565b5f612f2a565b503d612f72565b612e63565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91613155906102ff96949592845260a0602085015261304560a0850161302b83610547565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c08501526131246131186130b961307b6130686040860186612f96565b61012060e08b01526101c08a0191612fe6565b6130886060860186612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612fe6565b608084013561012088015260a084013561014088015260c08401356101608801526130e760e0850185612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612fe6565b91610100810190612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612fe6565b936040830152606082015260808184039101526102b2565b9190939460028316613182575b505050505050565b6020946131d473ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701613006565b0392165afa908115612f91577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f9161323d575b501603612f3a575f808080808061317a565b613256915060203d602011612f8a57612f7c8183610956565b5f61322b565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b6132b07f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf82146115ec578115613307575b801954156132de576020525f5260405f2054151590565b9060019181815414613302578183820154146133025760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf91506132c7565b8051906003821015610278576020015160208151910120604051906133416020830180946102a5565b60408201526040815261287b606082610956565b905f9161338d7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf81146115ec578015613479575b8119918254918160205282156133ed575b805f5260405f20928354156133cc575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561347057828114612e7b57600182018054908115613462575083811461345b576002830191825492831561344c575084831461317a575f52600160405f20555f52600260405f20555f52600360405f20556007916133b6565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf6133a5565b5f5b81518051821015612e7b57816134a09161265d565b51805173ffffffffffffffffffffffffffffffffffffffff16806135d9575030905b6134cb85611984565b60ff60c882901c1615806135ba575b6135925785925f8073ffffffffffffffffffffffffffffffffffffffff613537941694602081019361351760408651930192835190838b8b6147d9565b9451915191602083519301915af1928361352f61262e565b958692614966565b1580613585575b61354b575060010161348b565b613581906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610b8d565b0390fd5b506020830151151561353e565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff8416146134da565b906134c2565b73ffffffffffffffffffffffffffffffffffffffff16308114613633576102ff9060405190602082015260208152613618604082610956565b6040519061362582610919565b600282526020820152613318565b505f90565b8015613684576136478161327b565b15613633575f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205261367f60405f2054613e70565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761093557604052819381359167ffffffffffffffff831161026a576136d96080939284938301610f72565b8452602081013560208501526040810135604085015260608101356136fd81610529565b60608501520135910152565b7f01000000000000000000000000000000000000000000000000000000000000008114908115613737575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090811954918260011c9215159080541560026001830154159201541592156137b457505050565b90919293505f906137da57506001906137d557506002906102ff5750600390565b919050565b92915050565b90601582018092116126ce57565b90600282018092116126ce57565b919082018092116126ce57565b805191908290602001825e015f815290565b90610552600161385b936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613809565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1810185520183610956565b80516020101561261c5760400190565b6138c89060209392613809565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a810613ad95760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e63461394d83516060860151613947816137e0565b91614c42565b6020815191012003613ae25761396561396a9161419b565b61381b565b61397f825160408501516139478451826137fc565b60208151910120906020815191012003613ad9577f0100000000000000000000000000000000000000000000000000000000000000806139e86139c285516138ab565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613ad9575f613a026020925160405191828092613809565b039060025afa15612f915760205f613a378151613a2b8551611ec36040519384928884016138bb565b60405191828092613809565b039060025afa15612f915760805f519101935f80865185613a888551611ec38a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa94613a9861262e565b80519680613ad0575b613ab457506102ff955051905191614202565b600196612a6696508101602090810195500192506138cf915050565b50861515613aa1565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d15613b0257565bfe5b93929190613b15848484848961435c565b90959015613b2557505050505090565b6102ff9550614417565b604080515f95949093918114613b7a57604114613b4b57505050565b604080929395508101355f1a60205281375b5f526020604060805f60015afa505f6060523d6060185191604052565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929450602081013590601b8260ff1c016020523560405216606052613b5d565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610e3957565b905f1982019182116126ce57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182116126ce57565b9082101561261c570190565b80156126ce575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613c93575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000613d11613ceb613ce485613be8565b8587613c42565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613db7575f5b818110613d2c575b5050505b5f80613c87565b613d3a613ceb828486613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613da257508015613d9d57613d95908284613c5a565b939093929190565b613d21565b613dab906146bb565b613d9d57600101613d19565b9081805b613dc8575b505050613d25565b613de2613ceb613ddb8396949596613be8565b8686613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613e4b575080613e3c85613e44938187613c68565b959094613c5a565b9293929091565b613e5890949392946146bb565b613e6b57613e6590613c4e565b80613dbb565b613dc0565b60a01c64ffffffffff16908115613e88574282109190565b5f91508190565b8060401c5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f208054915f1983146126ce5767ffffffffffffffff9160018401905516036113d557565b909163ffffffff82351682019063ffffffff8235169060208084019383010184860110610e3957613f15604093958395613bbd565b9390939210612b6c57565b60c1610100613f326040519182610956565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061287b61404f8251614a51565b611ec36020840151936040810151906080614081606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b92909192600181166140e35750505050565b6141359373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f6257501603612f3a575f808080612e7b565b6040516102ff916141ad606083610956565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614cec565b93919092938315801561431d575b8015614315575b80156142eb575b613ad95761422c8386614d93565b15613ad95760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551946142e593866142df945181818909940991614e5f565b91613bf6565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182101561421e565b508115614217565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015614210565b9081602091031261026a57516102ff81610f68565b91909361436c6114af83876156fe565b8015614404575b6143f8575f94611ec36143b29287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa6143c161262e565b90806143ed575b156143e657806020806143e093518301019101614347565b90600190565b505f905f90565b5060208151146143c8565b50505050505f90600190565b506144126114af8286615775565b614373565b909392919261442684866156fe565b15801561464f575b613ad9577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161461c612a669561461161462896614469615804565b95614472610988565b5f81525f60208201525f6040820152875261448b610988565b9182526020820152600160408201526144a48660200190565b9081526144af610988565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5602082015260016040820152608087019081526146076145138351615ac2565b604089019081526145f86145e961452a8551615ac2565b6101008c0190815261453f8751855190615aff565b9560608d019687528c61455f6145588a51845190615aff565b9160a00190565b528c6145786145718751845190615aff565b9160c00190565b528c61459161458a8951845190615aff565b9160e00190565b528c6145ab6145a38a51855190615aff565b916101200190565b528c6145c56145bd8751855190615aff565b916101400190565b528c6145df6145d78951855190615aff565b916101600190565b5251905190615aff565b6101808b018181529551615aff565b6101a08a015251835190615aff565b6101c088016145df565b6101e0850152615b1e565b8181880993099061584a565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b5061465a8184615775565b1561442e565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061468857565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061468857565b7fff0000000000000000000000000000000000000000000000000000000000000016801590811561477a575b8115614750575b8115614726575b81156146ff575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f2800000000000000000000000000000000000000000000000000000000000000811491506146f5565b7f2c00000000000000000000000000000000000000000000000000000000000000811491506146ee565b7f2000000000000000000000000000000000000000000000000000000000000000811491506146e7565b91909160408184031261026a576147ba81612e06565b92602082015167ffffffffffffffff811161026a576102ff9201611a76565b6060959490929190600884166147f0575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff8094939261486087936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612f91575f925f916148c9575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612f3a575f8080808061345b565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061492a903d805f833e6149228183610956565b8101906147a4565b9390939150614874565b926102ff9492614958928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b90929160108216614978575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff6020956149ca604051988997889687947fc82b175900000000000000000000000000000000000000000000000000000000865260048601614934565b0393165af1908115612f91577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91614a32575b501603612f3a575f8080808061345b565b614a4b915060203d602011612f8a57612f7c8183610956565b5f614a21565b60806057604051614a63608082610956565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f19614b05614aef88610e7e565b97614afd604051998a610956565b808952610e7e565b013660208801376060935f5b8351811015614bee5780614b276001928661265d565b516029604051614b378a82610956565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a83015288820152878152614bda60a082610956565b519020614be7828b61265d565b5201614b11565b509493509461287b9250614c1f9150602090604051614c1481611ec3858201809561595b565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611ec3565b805160609493929083811115614cb3575b81811115614cab575b50828110614c6957505050565b6040519450918290039101601f19601f830181165b8083015181870152018015614c9657601f1990614c7e565b505060408184015f6020820152016040528252565b90505f614c5c565b925082614c53565b90614cc5826109a1565b614cd26040519182610956565b828152601f19614ce282946109a1565b0190602036910137565b90815115614d895790614d19614d14614d0d614d08845161269e565b6137ee565b6003900490565b614cbb565b916020830190828051019060208201928351945f85525b838110614d3f57505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c16880101516002850153168501015160038201530190614d30565b50506102ff611e41565b6ffffffffeffffffffffffffffffffffff60601b198110801590614e41575b8015614e30575b614e2a576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614db957508115614db9565b506ffffffffeffffffffffffffffffffffff60601b19821015614db2565b90915f925f9160ff958115806156f6575b6156eb57614e7e8386615988565b9490978815806156e3575b615695575b83811c60028460fe1c16015b1561567d57600184821c16600284831c60011b160160018114615632575b60028114615625575b60031461561a575b5f1990969493929196019460019889975b875f1911614f715750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b6002160180156155f557600181146155aa575b6002811461559f575b600314615596575b8c15615581578c916ffffffffeffffffffffffffffffffffff60601b198085818d819609089388820392090894811561536c575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614eda565b8c861561537957506151ce565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f199061535f565b60019c50909a8c98509094505f19915061535f565b5050818361519a565b8b92508a9150615192565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150615189565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a039361535f565b889750859150614ec9565b9697508796859250614ec1565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614eb8565b5f1901600184821c16600284831c60011b1601614e9a565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f918315806156db575b15614e8e575050505050505050505f90565b5060016156c9565b508515614e89565b505050505050505f90565b508015614e70565b90811515918261574b575b5081615741575b81615719575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615710565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f615709565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b604051906157f38261093a565b5f6040838281528260208201520152565b604051906102006158158184610956565b825f5b82811061582457505050565b60209061582f6157e6565b8184015201615818565b90601081101561261c5760051b0190565b5f9392849283929183915b6080831061586b575050505061038f9293615db4565b85615939575b600c61587d8260fc1c90565b16600361588a8460fe1c90565b161760406158988287615839565b5101516158c0575b506158b76158b060019260021b90565b9260021b90565b92019190615855565b959194909782155f1461590f575050506158da8483615839565b51519260016158b76158b0604061590060206158f68b8a615839565b5101519988615839565b5101519796995b9250506158a0565b6158b0959260019261592e926159286158b79a89615839565b51615c0b565b979196909699615907565b969461594a91946159509396615b84565b91615b84565b949193909396615871565b80516020909101905f5b8181106159725750505090565b8251845260209384019390920191600101615965565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615abc578461038f9495831480615ab3575b15615a9e5750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615ed1565b909192615aaa93615e33565b92909190615ed1565b508184146159e1565b50925090565b615ae290615ace6157e6565b508051906040602082015191015191615b84565b9060405192615af08461093a565b83526020830152604082015290565b615ae291615b0b6157e6565b5080516040602083015192015192615c0b565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f615b6992615f67565b9015615b725790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f14615d4f575050505050600114615cbd5750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612e7b565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612e7b565b92918015615e29576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615dfb92615f67565b919015615b72576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615ec4576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615fa2576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a", - "nonce": "0x4d", - "chainId": "0x1237" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e", - "transactionType": "CREATE2", - "contractName": "ERC7914Detector", - "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e", + "contractName": "UniversalRouter", + "contractAddress": "0x8876789976decbfcbbbe364623c63652db8c0904", "function": null, "arguments": [ - "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00" + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73, 0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f, 0x1f7d7550B1b028f7571E69A784071F0205FD2EfA, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x8366a39CC670B4001A1121B8F6A443A643e40951, 0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3, 0x58daec3116aae6D93017bAAea7749052E8a04fA7, 0x7332D11BD10d18A04B119Cd4671a96f3148002c4)" ], "transaction": { "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x4e71f", + "gas": "0x70f79b", "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00", - "nonce": "0x4e", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a0806040523461041d57610140816167248038038091610021828561043c565b83398101031261041d576040519061014082016001600160401b03811183821017610409576040526100528161045f565b82526100606020820161045f565b602083019081526100736040830161045f565b90604084019182526100876060840161045f565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c0870161045f565b9660c083019788526100c960e0880161045f565b958660e08501526100f16101206100e36101008b0161045f565b998a6101008801520161045f565b98896101208601526040519761010689610421565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610421565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040957604052815260208101928352604081019182526060810193845260405161019d60408261043c565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca60408461043c565b600183526020830191601960f91b83526101e381610473565b610120526101f084610609565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c08261043c565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e09190915290518116610200529051811661022052905181166102405290518116610260521661028052604051615fe29081610742823960805181614755015260a05181614812015260c05181614726015260e051816147a4015261010051816147ca0152610120518161055f0152610140518161058b01526101605181818161329e0152818161346a01526142c70152610180518181816132c00152818161344901526142a601526101a0518161204f01526101c051816120a201526101e0518181816106760152818161088d0152818161142b01528181611add01528181612ce101528181614ffa015281816150710152818161516b015281816152bb01528181615c350152615da4015261020051818181611a7b01528181612fd90152613129015261022051818181610f5a01528181612eab015261387e0152610240518181816104cb0152818161136c01526129b9015261026051818181610805015261148a015261028051818181610488015281816125dd01526127280152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040957604052565b601f909101601f19168101906001600160401b0382119082101761040957604052565b51906001600160a01b038216820361041d57565b908151602081105f146104ed575090601f8151116104ad57602081519101516020821061049e571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610409575f54600181811c911680156105ff575b60208210146105eb57601f81116105b9575b50602092601f821160011461055a57928192935f9261054f575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610537565b601f198216935f8052805f20915f5b8681106105a15750836001959610610589575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061057c565b91926020600181928685015181550194019201610569565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105e0575061051d565b5f81556001016105d3565b634e487b7160e01b5f52602260045260245ffd5b90607f169061050b565b908151602081105f14610634575090601f8151116104ad57602081519101516020821061049e571790565b6001600160401b03811161040957600154600181811c91168015610737575b60208210146105eb57601f8111610704575b50602092601f82116001146106a357928192935f92610698575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061067f565b601f1982169360015f52805f20915f5b8681106106ec57508360019596106106d4575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106c6565b919260206001819286850151815501940192016106b3565b60015f52601f60205f20910160051c810190601f830160051c015b81811061072c5750610665565b5f815560010161071f565b90607f169061065356fe60806040526004361015610022575b3615610018575f80fd5b610020611a71565b005b5f3560e01c80631a27b201146100f157806324856bc3146100ec5780633593564c146100e757806344684dc3146100e25780638021fef7146100dd578063817122dc146100d857806384b0196e146100d357806391dd7346146100ce578063d04d79a2146100c9578063d0c9f6cb146100c4578063d737d0c7146100bf578063dc4c90d3146100ba5763fa461e330361000e576108b1565b61086e565b610829565b6107e6565b610752565b61063b565b610547565b6104ac565b610469565b6103cd565b6102cb565b6101c6565b610118565b6001600160a01b0381160361010757565b5f80fd5b3590610116826100f6565b565b3461010757604060031936011261010757600435610135816100f6565b6001600160a01b0360243591165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f840112156101075782359167ffffffffffffffff8311610107576020838186019501011161010757565b9181601f840112156101075782359167ffffffffffffffff8311610107576020808501948460051b01011161010757565b60406003193601126101075760043567ffffffffffffffff8111610107576101f2903690600401610167565b60243567ffffffffffffffff811161010757610212903690600401610195565b913330146102c2576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a5761027593337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61002093610cc9565b60606003193601126101075760043567ffffffffffffffff8111610107576102f7903690600401610167565b60243567ffffffffffffffff811161010757610317903690600401610195565b916044354211610383573330146102c2576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a5761027593337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b8015150361010757565b60843590610116826103ab565b3590610116826103ab565b6101006003193601126101075760043567ffffffffffffffff8111610107576103fa903690600401610167565b9060243567ffffffffffffffff81116101075761041b903690600401610195565b9260443560643561042a6103b5565b9060a4359260c4359767ffffffffffffffff891161010757610453610020993690600401610167565b97909660e4359961156f565b5f91031261010757565b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106105315750505090565b8251845260209384019390920191600101610524565b34610107575f600319360112610107576105f56105837f0000000000000000000000000000000000000000000000000000000000000000613c6a565b6106236105af7f0000000000000000000000000000000000000000000000000000000000000000613d6b565b6106036105ba611872565b916040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e08701906104ef565b9085820360408701526104ef565b904660608501523060808501525f60a085015283820360c0850152610514565b0390f35b9060206106389281815201906104ef565b90565b346101075760206003193601126101075760043567ffffffffffffffff81116101075761066c903690600401610167565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361072a576106a591613e23565b90818303610702575f5b8381106106d6576106236040516106c7602082611809565b5f815260405191829182610627565b806106fc6106e76001938789610c53565b3560f81c6106f6838787610c97565b916149ae565b016106af565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610107575f6003193601126101075760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610107575f6003193601126101075760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b34610107575f6003193601126101075760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101075760606003193601126101075760243560043560443567ffffffffffffffff8111610107576108e8903690600401610167565b91905f821392831580610ba2575b610b7a576001600160a01b03946109399361092161091684860186611946565b969250991695611f12565b92909161092e8484613ebb565b999198908a8a611fc8565b6001600160a01b0333911603610b52578015610b35576001600160a01b0389166001600160a01b038916109882995b15610980575050505050505061002093503391612104565b90919293949598999750610995866042111590565b15610a5f575086516109e7575b505050946109c66109b96109c1936100209861218a565b9390926121be565b6119ca565b9480156109df576109d690611a56565b945b3390612256565b505f946109d8565b610a00610a0a938a93610a05935f14610a5857506119ca565b6119df565b611a24565b610a148686611a42565b51808210610a2257806109a2565b7f382ec7a2000000000000000000000000000000000000000000000000000000005f52600487905260245260445260645ffd5b5ffd5b90506119ca565b969450909192507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929796975c8711610b0d578351610aa8575b5050505061002093503391612104565b86610a05610a00610acb958b95610ac5955f14610a5857506119ca565b92611a42565b51808210610ada578080610a98565b7f382ec7a2000000000000000000000000000000000000000000000000000000005f52600486905260245260445260645ffd5b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b0388166001600160a01b038a1610988399610968565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f8513156108f6565b929190333014610c36576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c1661029a57610c1193337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610cc9565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d565b61011693610cc9565b634e487b7160e01b5f52603260045260245ffd5b90821015610c5f570190565b610c3f565b903590601e1981360301821215610107570180359067ffffffffffffffff82116101075760200191813603831361010757565b90821015610c5f57610cae9160051b810190610c64565b9091565b6040906106389392815281602082015201906104ef565b909392848103611547575f5b858110610ce457505050509050565b610cef818785610c53565b35610cfb828487610c97565b6060929160019160f884901c607f1660218110156114b557601081101561131c57600881101561105e5780610df75750610d4582610d3c83610d9195611f9d565b92909382612dbf565b92909360808301355f14610df0577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b604081013590610d8c60208201359135612f75565b613a20565b159081610de1575b50610da75750600101610cd5565b90610ddd6040519283927f2c4029e900000000000000000000000000000000000000000000000000000000845260048401610cb2565b0390fd5b600160ff1b161590505f610d99565b3092610d77565b60018103610e695750610e1182610d3c83610e5d95611f9d565b92909360808301355f14610e62577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b604081013590610e5860208201359135612f75565b61391f565b610d91565b3092610e43565b60028103610eba575050610e5d90610e9f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b90604081013591610eb36020830135612f75565b9135613872565b9192909160038103610f8b5750505f92935090610f4d610edb849383611f72565b909190610f3f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9160405194859360208501977f2a2d80d10000000000000000000000000000000000000000000000000000000089528035019060248601611d84565b03601f198101835282611809565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b91610d91565b9092915060048103610fbe575080610fa96020610e5d930135612f75565b6001600160a01b0360408301351691356137be565b60058103610fe55750806040610e5d92013590610fde6020820135612f75565b9035613733565b6006810361100c5750806040610e5d920135906110056020820135612f75565b90356136bd565b600781036110335750806040610e5d9201359061102c6020820135612f75565b90356135ef565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909190600881036110d85750818161107c610e5d9461108594612d9f565b93909282612dbf565b92909360808301355f146110d1577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b6040810135906110cc60208201359135612f75565b61340d565b30926110b7565b600981036111465750818161107c610e5d946110f394612d9f565b92909360808301355f1461113f577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c925b60408101359061113a60208201359135612f75565b613280565b3092611125565b909290600a81036111c65750505f92935081611166610f4d928594611f47565b929091610f3f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9460405194859360208501977f2b67b57000000000000000000000000000000000000000000000000000000000895260248601611d32565b909290600b81036111eb5750610e5d91506111e660208201359135612f75565b613106565b600c810361120d5750610e5d915061120860208201359135612f75565b612fba565b600d810361124c5750610e5d9161122391612d82565b907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c91612e94565b9092509050600e810361103357506040516370a0823160e01b81526001600160a01b03823516600482015290602082806024810103816001600160a01b0384860135165afa918215611317575f926112e4575b5060400135111580610e5d576040517fa3281672000000000000000000000000000000000000000000000000000000006020820152909250610f858160248101610f3f565b60409192506113099060203d8111611310575b6113018183611809565b810190611cac565b919061129f565b503d6112f7565b611cbb565b90919060108103611332575090610e5d91612c92565b939450929091506011810361139757505f9190816113508493612c45565b61135f60405180938193611bfc565b0390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b601281036113d057505f918291906113507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c8261294f565b601381036114565750505f809160405161141e81610f3f60208201947f6276cbbe00000000000000000000000000000000000000000000000000000000865260a08101359060248401611c21565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b6014810361103357505f91829161146d81836127dd565b479161147e60405180938193611bfc565b03916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190610f85611bcd565b939490939192604083101561152d57505060218103611033575061151e610f3f6114e15f948594613e23565b60409593959491945194859360208501977f24856bc300000000000000000000000000000000000000000000000000000000895260248601611b25565b519082305af190610f85611bcd565b9290949391604081145f14611033575090610e5d916125a5565b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b95909698929a999791978042116103835761158c8c9a9b9c611e49565b5f5b8b81106117a35750868661164e61165e958f611664999896610f3f918f8f6115dc906116569a6040516115c981610f3f602082018095611e7a565b519020961561179c5733925b36916118a9565b6020815191012097604051978896602088019a8b9360e09591989796936001600160a01b039361010087019a7f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c885260208801526040870152606086015260808501521660a083015260c08201520152565b519020613c13565b9236916118a9565b90613c54565b5f1988036116e5575b6116dd97507fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d610bac565b610116611ea7565b61171b61171489611707846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b5460ff1690565b6117745761176f6117446116dd99611707846001600160a01b03165f52600260205260405f2090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b61166d565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f926115d5565b806117b88d9f9e9d6001936115d5918f610c97565b602081519101206117c98285611a42565b52019c9a9b9c61158e565b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761180457604052565b6117d4565b90601f601f19910116810190811067ffffffffffffffff82111761180457604052565b604051906101166101a083611809565b60405190610116606083611809565b6040519061011660a083611809565b67ffffffffffffffff81116118045760051b60200190565b60405190611881602083611809565b5f808352366020840137565b67ffffffffffffffff811161180457601f01601f191660200190565b9291926118b58261188d565b916118c36040519384611809565b829481845281830111610107578281602093845f960137010152565b9080601f8301121561010757816020610638933591016118a9565b9291906119068161185a565b936119146040519586611809565b602085838152019160051b810192831161010757905b82821061193657505050565b813581526020918201910161192a565b60808183031261010757803567ffffffffffffffff8111610107578261196d9183016118df565b92602082013561197c816100f6565b92604083013567ffffffffffffffff811161010757830181601f82011215610107576060918160206119b0933591016118fa565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146119da575f0390565b6119b6565b906ec097ce7bc90715b34b9f10000000008202918083046ec097ce7bc90715b34b9f100000000014901517156119da57565b818102929181159184041417156119da57565b8115611a2e570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610c5f5760209160051b010190565b905f1982019182116119da57565b919082039182116119da57565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141580611ad2575b611aaa57565b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016331415611aa4565b601f8260209493601f1993818652868601375f8582860101520116010190565b939190611b3a91604086526040860191611b05565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b848410611b72575050505050505090565b90919293949596601f19828203018752873583811215610107578401906020823592019167ffffffffffffffff811161010757803603831361010757611bbe6020928392600195611b05565b99019701959401929190611b61565b3d15611bf7573d90611bde8261188d565b91611bec6040519384611809565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361010757565b8060020b0361010757565b9092916001600160a01b0360a091611ca6608060c0860197848135611c45816100f6565b168752846020820135611c57816100f6565b16602088015262ffffff6040820135611c6f81611c09565b1660408801526060810135611c8381611c16565b60020b60608801520135611c96816100f6565b6001600160a01b03166080860152565b16910152565b90816020910312610107575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361010757565b65ffffffffffff611ca6606080936001600160a01b038135611cfa816100f6565b1686526001600160a01b036020820135611d13816100f6565b16602087015283611d2660408301611cc6565b16604087015201611cc6565b60a061063895936001600160a01b0361010094168352611d556020840182611cd9565b6001600160a01b036080820135611d6b816100f6565b1682840152013560c08201528160e08201520191611b05565b92906001600160a01b0390959492951683526060602084015260c08301928535601e19873603018112156101075786016020813591019467ffffffffffffffff8211610107578160071b360386136101075781906060808501525260e0820194905f5b818110611e2b57505050604086611e17611e076020610638999a0161010b565b6001600160a01b03166080850152565b013560a08201526040818503910152611b05565b90919560808082611e3e6001948b611cd9565b019701929101611de7565b90611e538261185a565b611e606040519182611809565b828152601f19611e70829461185a565b0190602036910137565b80516020909101905f5b818110611e915750505090565b8251845260209384019390920191600101611e84565b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611f3a57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611f3a57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611f3a57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611f3a57565b6120e291610638936001600160a01b0382166001600160a01b038416116120ee575b62ffffff906001600160a01b03604051938160208601961686521660408401521660608201526060815261201f608082611809565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526120d38160758101610f3f565b5190206001600160a01b031690565b6001600160a01b031690565b909190611fea565b90601482018092116119da57565b909291906001600160a01b0384163003612122576101169350613733565b91926001600160a01b038411612145576001600160a01b03610116941692613872565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b909291928360041161010757831161010757600401916003190190565b9190918260171161010757601701917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90190565b600160ff1b8110156101075790565b9594936001600160a01b036121f1606095936122059560808b5260808b0191611b05565b921660208801528682036040880152610514565b930152565b9190826040910312610107576020825192015190565b919360a09361063896956001600160a01b03809416855215156020850152604084015216606082015281608082015201906104ef565b929193959490946122678386613ebb565b97915f949194506001600160a01b0381166001600160a01b038a161094859961228f92611fc8565b6001600160a01b03166001600160a01b031694845f14604098610f3f5f96612304956122cf9461234c576401000276a49e5b8d51968795602087016121cd565b8751998a97889687957f128acb0800000000000000000000000000000000000000000000000000000000875260048701612220565b03925af18015611317575f925f9161231b57509192565b905061234091925060403d604011612345575b6123388183611809565b81019061220a565b919092565b503d61232e565b73fffd8963efd1fc6a506488495d951d5263988d259e6122c1565b919394906123758486613ebb565b96915f939193506001600160a01b0388166001600160a01b0382161093849861239d92611fc8565b6001600160a01b03166001600160a01b031693835f14966122cf5f94610f3f866123049560409c61234c576401000276a49e8d51968795602087016121cd565b63ffffffff81160361010757565b3590610116826123dd565b6020818303126101075780359067ffffffffffffffff821161010757016101a0818303126101075761242661182c565b916124308261010b565b835261243e6020830161010b565b602084015261244f6040830161010b565b60408401526124606060830161010b565b60608401526080820135608084015260a082013560a084015260c082013560c084015261248f60e0830161010b565b60e08401526124a161010083016123eb565b6101008401526124b461012083016123eb565b6101208401526124c761014083016123eb565b6101408401526101608201359167ffffffffffffffff8311610107576124f5610180926125019483016118df565b610160850152016103c2565b61018082015290565b989296612589966101809b966001600160a01b036106389f9e9a978d6040836125979f989b8161256d9b8161257b9f168652166020850152169101521660608d015260808c015260a08b015260c08a015260e08901906001600160a01b03169052565b63ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b8161016082015201906104ef565b6125b1918101906123f6565b6080810151905f600160ff1b8314612753575b61018082015115612702575081905b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169161260f82516001600160a01b031690565b60208301516001600160a01b031660408401516001600160a01b03169161264060608601516001600160a01b031690565b9460a08101519060c081015161266060e08301516001600160a01b031690565b61010083015163ffffffff169061267f61012085015163ffffffff1690565b9261016061269561014087015163ffffffff1690565b950151958c3b15610107576040517f7b9392320000000000000000000000000000000000000000000000000000000081529d8e9c8d9b8c9b6126da9b60048e0161250a565b03915a945f95f18015611317576126ee5750565b806126fc5f61011693611809565b8061045f565b9061274e8361271e6120e260408501516001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690613f06565b6125d3565b9150612763610180820151151590565b1561276f5747916125c4565b6127896120e26120e260408401516001600160a01b031690565b6040516370a0823160e01b815230600482015290602090829060249082905afa908115611317575f916127be575b50916125c4565b6127d7915060203d602011611310576113018183611809565b5f6127b7565b80357fdd46508f000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000821603612902575061283a826128409361283a9361216d565b90611f12565b5f5b81811061284e57505050565b61289461288e612888612862848688610c53565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b80159081156128f7575b81156128ec575b81156128e1575b506128b957600101612842565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f6128ac565b6001811491506128a5565b60048114915061289e565b7ff801e525000000000000000000000000000000000000000000000000000000005f527fffffffff000000000000000000000000000000000000000000000000000000001660045260245ffd5b7fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612c1c575b8015612bf3575b15612bc8575060040135906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051917f6352211e00000000000000000000000000000000000000000000000000000000835260208380612a1687600483019190602083019252565b0381855afa928315611317575f93612ba7575b506001600160a01b038116916001600160a01b0384168314928315612b1e575b508215612a89575b50501590505b612a5e5750565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6040517fe985e9c50000000000000000000000000000000000000000000000000000000081526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa801561131757612a57915f91612aef575b505f80612a51565b612b11915060203d602011612b17575b612b098183611809565b8101906130f1565b5f612ae7565b503d612aff565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526004810187905291935090602081602481875afa8015611317576001600160a01b03915f91612b78575b501614915f612a49565b612b9a915060203d602011612ba0575b612b928183611809565b81019061402c565b5f612b6e565b503d612b88565b612bc191935060203d602011612ba057612b928183611809565b915f612a29565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507f42966c680000000000000000000000000000000000000000000000000000000081146129a4565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461299d565b357fffffffff00000000000000000000000000000000000000000000000000000000167f853d0085000000000000000000000000000000000000000000000000000000008101612bc85750565b5f90612cd49260405193849283927f48c89491000000000000000000000000000000000000000000000000000000008452602060048501526024840191611b05565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561131757612d105750565b3d805f833e612d1f8183611809565b8101906020818303126101075780519067ffffffffffffffff8211610107570181601f82011215610107578051612d558161188d565b92612d636040519485611809565b81845260208284010111610107575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611f3a57565b916060830135830191602083359481850194038560051b010111611f3a57565b9160a0830135830191602083359481850194038560051b010111611f3a57565b9190811015610c5f5760071b0190565b35610638816100f6565b60208082528101839052604001915f5b818110612e165750505090565b9091926080806001926001600160a01b038735612e32816100f6565b1681526001600160a01b036020880135612e4b816100f6565b1660208201526001600160a01b036040880135612e67816100f6565b1660408201526001600160a01b036060880135612e83816100f6565b166060820152019401929101612e09565b90915f5b838110612f205750506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561010757612f0f925f92836040518096819582947f0d58b1db00000000000000000000000000000000000000000000000000000000845260048401612df9565b03925af18015611317576126ee5750565b612f33612f2e828686612ddf565b612def565b6001600160a01b03808416911603612f4d57600101612e98565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b03811660018103612fae5750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361063857503090565b6040516370a0823160e01b815230600482015290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315611317575f936130d0575b5082106130a8578161302257505050565b803b15610107575f60405180927f2e1a7d4d00000000000000000000000000000000000000000000000000000000825281838161306788600483019190602083019252565b03925af1801561131757613094575b50306001600160a01b0383160361308b575050565b61011691614041565b806126fc5f6130a293611809565b5f613076565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b6130ea91935060203d602011611310576113018183611809565b915f613011565b908160209103126101075751610638816103ab565b90600160ff1b8103613227575047905b8161311f575050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561131757613213575b50306001600160a01b038316036131a2575b505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af18015611317576131fb575b50565b6131f89060203d602011612b1757612b098183611809565b806126fc5f61322193611809565b5f61318b565b9047821115613116577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b9015610c5f5790565b9060011015610c5f5760200190565b9190811015610c5f5760051b0190565b92909391969594600283106133e557861515806133d1575b6133a9577f0000000000000000000000000000000000000000000000000000000000000000977f0000000000000000000000000000000000000000000000000000000000000000985f96995f1986018681116119da579190825b61334757505050881161331f57610116978561331a92613315612f2e8787613258565b612104565b614124565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919a97505f198b018b81116119da576133908c61337e61336c613397948b8b613270565b3591613377836100f6565b8a8a613270565b3590613389826100f6565b8486614c8c565b919a614d5c565b9a80156119da575f19019190826132f2565b7f609328e8000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f1983018381116119da57871415613298565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b92949690959196600285106133e557811515806135dd575b6133a95761348e613439612f2e8789613258565b613446612f2e888a613261565b907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006145bd565b9687816135c4575b5050506134b56120e26120e2612f2e6134ae88611a56565b888a613270565b6040516370a0823160e01b81526001600160a01b038516600482015296909290602088602481875afa9586156113175761352d985f97613596575b50908561350294939260209899614124565b60405180809681946370a0823160e01b8352600483019190916001600160a01b036020820193169052565b03915afa801561131757613548925f91613577575b50611a64565b1061354f57565b7f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b613590915060203d602011611310576113018183611809565b5f613542565b60209750613502949392916135b888928a3d8c11611310576113018183611809565b985091929394506134f0565b6135d592613315612f2e898b613258565b5f8087613496565b506135e785611a56565b821415613425565b670de0b6b3a76400008311613695576001600160a01b031680613631575061362b61361d6101169347611a11565b670de0b6b3a7640000900490565b90614041565b6040516370a0823160e01b8152306004820152909190602081602481865afa90811561131757610116946136709261361d925f91613676575b50611a11565b916145d4565b61368f915060203d602011611310576113018183611809565b5f61366a565b7f90f5ebeb000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b0316806136d9575061362b6101169247614683565b6040516370a0823160e01b8152306004820152909190602081602481865afa9384156113175761011694613670925f91613714575b50614683565b61372d915060203d602011611310576113018183611809565b5f61370e565b9091906001600160a01b03168061374e575061011691614041565b600160ff1b8214613764575b91610116926145d4565b6040516370a0823160e01b815230600482015292909150602083602481855afa801561131757610116935f9161379f575b509190925061375a565b6137b8915060203d602011611310576113018183611809565b5f613795565b9091906001600160a01b0316806137e15750479081106130a8578061308b575050565b6040516370a0823160e01b815230600482015290929091602083602481875afa928315611317575f93613851575b508210613829578161382057505050565b610116926145d4565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b61386b91935060203d602011611310576113018183611809565b915f61380f565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156113175761390a5750565b806139165f8093611809565b80031261010757565b9492909695939193861515806139f6575b6139ce5761394661394c916139709836916118fa565b946146ea565b835180156139c65761395d90611a56565b945b61396b6109c1896121be565b612256565b909190156139b75750613982906119ca565b0361398f576101166146c5565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b6139c191506119ca565b613982565b505f9461395f565b7f383ef61c000000000000000000000000000000000000000000000000000000005f5260045ffd5b50613a0a613a05601789611a11565b6120f6565b831415613930565b5f1981146119da5760010190565b97939795909192949587151596878098613bfc575b6139ce578998600160ff1b8514613b93575b909950879391965f92808b8a613a5b611872565b9e8f90613aa593613a97935b613a7b613a75836042111590565b986121be565b908815613b895750613a8f30925b8a61470e565b929091612367565b90919015610a5857506119ca565b96613b30575b5015613af6573099613abc9161218a565b9190978892809c8795613ace90613a12565b9c8d95613aa594613a8f613a97959e50509c9e509495969290919e8f90928e9a95938e613a67565b505050509350935093505010613b0857565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b613b3d90610a05886119df565b613b48858588613270565b35808210613b565750613aab565b7fb429f374000000000000000000000000000000000000000000000000000000005f52600486905260245260445260645ffd5b613a8f9092613a89565b9350976120e26120e2613ba69289614f4a565b6040516370a0823160e01b815230600482015298906020908a9060249082905afa8015611317578a995f91613bdd575b5093613a47565b613bf6915060203d602011611310576113018183611809565b5f613bd6565b50613c0b613a0560178b611a11565b8a1415613a35565b604290613c1e61471c565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b61063891613c6191614838565b90929192614890565b60ff8114613c7b5761063890614957565b506040515f80548060011c91600182168015613d61575b602084108114613d4d5783855284926020840191908115613d165750600114613cc3575b5061063892500382611809565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b848310613cff57506106389350015f613cb6565b805482840152859350602090920191600101613ceb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525061063893151560051b0190505f613cb6565b634e487b7160e01b5f52602260045260245ffd5b92607f1692613c92565b60ff8114613d7c5761063890614957565b506040515f6001548060011c91600182168015613e19575b602084108114613d4d5783855284926020840191908115613d165750600114613dc4575061063892500382611809565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310613e0257506106389350015f613cb6565b805482840152859350602090920191600101613dee565b92607f1692613d94565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613e8e575060809250010191011017611f3a57565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613e76565b90602b11613ede57803591601762ffffff8460601c9460481c1692013560601c90565b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b03841660248301526044808301959095529381529192613f8b90613f5d606485611809565b5f806001600160a01b0385169286519082855af190613f7a611bcd565b82613ffa575b5081613ff357501590565b613f9457505050565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201526001600160a01b0390931660248401525f604484015261011692613fee90613fe88160648101610f3f565b82614c07565b614c07565b3b15919050565b80519192508115918215614012575b5050905f613f80565b61402592506020809183010191016130f1565b5f80614009565b908160209103126101075751610638816100f6565b5f80809381935af11561405057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361010757565b90816060910312610107576140dd816140ae565b9160406140ec602084016140ae565b920151610638816123dd565b9061063894936080936001600160a01b03928452602084015216604082015281606082015201906104ef565b9493929361414b614138612f2e8489613258565b614145612f2e858a613261565b90614df0565b50915f198101957ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820194831515985f955b898710614191575050505050505050505050565b61419f612f2e888785613270565b936141b1612f2e60018a018886613270565b6040517f0902f1ac00000000000000000000000000000000000000000000000000000000815290956001600160a01b038316606083600481845afa928315611317575f905f9461456d575b506001600160a01b036dffffffffffffffffffffffffffff80829316951693169516851493845f1461455f576040516370a0823160e01b81526001600160a01b039091166004820152919460209083908180602481015b03915afa978815611317578f61427b8f9a978f958e9988915f91614541575b50039687614e0e565b9515614538578c8b5f97955b82101561452a576142a3612f2e6142eb9260028501908d613270565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614e69565b9890985b9b83614514575b5050505f14614493576040516370a0823160e01b81526001600160a01b038781166004830152909591169290602086602481875afa958615611317575f96614473575b50614342611872565b92803b15610107575f92838993614388604051978896879586947f022c0d9f000000000000000000000000000000000000000000000000000000008652600486016140f8565b03925af180156113175761445f575b506040516370a0823160e01b81526001600160a01b038516600482015290602090829060249082905afa928315611317576143ec936ec097ce7bc90715b34b9f1000000000925f91614441575b500302611a24565b6143f788888c613270565b3580821061440e5750506001905b9601959261417d565b7f65d564a5000000000000000000000000000000000000000000000000000000005f52600489905260245260445260645ffd5b614459915060203d8111611310576113018183611809565b5f6143e4565b806126fc5f61446d93611809565b5f614397565b61448c91965060203d8111611310576113018183611809565b945f614339565b5093929091506144a1611872565b93803b15610107575f928385936144e7604051988996879586947f022c0d9f000000000000000000000000000000000000000000000000000000008652600486016140f8565b03925af191821561131757600192614500575b50614405565b806126fc5f61450e93611809565b5f6144fa565b61451e9350613270565b3515158c8f8d906142f6565b5050955087958c8c5f6142ef565b8c8b5f95614287565b614559915060203d8111611310576113018183611809565b5f614272565b602090614253939496613502565b6dffffffffffffffffffffffffffff8095506001600160a01b0392506145aa839260603d81116145b6575b6145a28183611809565b8101906140c9565b509690935050506141fc565b503d614598565b9091610638936145cc91614df0565b929091614e7a565b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f51141617161561462557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b612710821161469d576127109161469991611a11565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d565b7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d565b90602b116101075790602b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630148061480f575b15614777577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261480960c082611809565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461474e565b8151919060418303614868576148619250602082015190606060408401519301515f1a90614f59565b9192909190565b50505f9160029190565b6004111561487c57565b634e487b7160e01b5f52602160045260245ffd5b61489981614872565b806148a2575050565b6148ab81614872565b600181036148db577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6148e481614872565b6002810361491857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80614924600392614872565b1461492c5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60ff811690601f82116149865760405191614973604084611809565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b909190600b811015614a5b57600781036149d557506149d09061011692615573565b615979565b600681036149f057506149eb9061011692615326565b6157ef565b60098103614a0b5750614a069061011692615573565b6155f7565b9160088314614a47575050610a5591505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f52600452602490565b610116925090614a5691615326565b6153cf565b600c8103614add5750614a6d916152a1565b90614a77816152b4565b91808311614aad575061011691907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9061515a565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f52600452602482905260445ffd5b600f8103614b5f5750614aef916152a1565b90614af981614ff3565b91808310614b2f575061011691907f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9061505f565b7f8b063d73000000000000000000000000000000000000000000000000000000005f52600452602482905260445ffd5b600b8103614b935750614b8d614b7b614b879261011694614fdb565b93829493929193615107565b92615135565b9161515a565b600e8103614bc55750614bb9614baf614bbf9261011694614fdb565b9282949291612f75565b926150f3565b9161505f565b9160108314614bda575050610a559150614a1c565b6101169250614bef614bf892614bbf92614fdb565b92919390612f75565b91614c0284614ff3565b614683565b5f806001600160a01b03614c3093169360208151910182865af1614c29611bcd565b9083615f49565b8051908115159182614c71575b5050614c465750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614c8492506020809183010191016130f1565b155f80614c3d565b91939290614c9d614ca59286614df0565b918194614e7a565b92604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0389165afa918215611317575f905f93614d1b575b506001600160a01b036dffffffffffffffffffffffffffff80829316941694169116145f14610cae5791565b6dffffffffffffffffffffffffffff8094506001600160a01b039250614d50839260603d6060116145b6576145a28183611809565b50959093505050614cef565b9080158015614de8575b614dc05781614d7491611a11565b916103e88302928084046103e814901517156119da57818103918183116119da576103e583029283046103e514911417156119da57614db291611a24565b600181018091116119da5790565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508215614d66565b6001600160a01b0382166001600160a01b038216105f14610cae5791565b811592838015614e61575b614dc0576103e58202918083046103e514901517156119da57614e3c9082611a11565b926103e883029283046103e81417156119da5781018091116119da5761063891611a24565b508015614e19565b92614c9d90614e7793614df0565b91565b91614f43906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614ed1604882611809565b519020610f3f604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b5190201690565b90601411613ede573560601c90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd0579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611317575f516001600160a01b03811615614fc657905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611f3a578035916040602083013592013590565b61501e81307f0000000000000000000000000000000000000000000000000000000000000000615b32565b905f821261502a575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9091801561319d576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610107575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156113175761390a5750565b9081615103576106389150614ff3565b5090565b15615131577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b3090565b90600160ff1b820361514b576106389150615bbf565b816151035761063891506152b4565b90821561319d576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b15610107576040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f8160248183885af180156113175761528d575b506001600160a01b0381166152435750506020906004604051809481937f11da60b40000000000000000000000000000000000000000000000000000000083525af180156113175761522b5750565b6131f89060203d602011611310576113018183611809565b5f936020939261525292615c25565b6004604051809481937f11da60b40000000000000000000000000000000000000000000000000000000083525af180156113175761522b5750565b806126fc5f61529b93611809565b5f6151dc565b9190604011611f3a576020823592013590565b6152df81307f0000000000000000000000000000000000000000000000000000000000000000615b32565b905f82136152f15750610638906119ca565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9061016011611f3a5780350190565b356fffffffffffffffffffffffffffffffff811681036101075790565b35610638816103ab565b91908260a091031261010757604051615374816117e8565b60808082948035615384816100f6565b84526020810135615394816100f6565b602085015260408101356153a781611c09565b604085015260608101356153ba81611c16565b60608501520135916153cb836100f6565b0152565b6153db60c08201615335565b6fffffffffffffffffffffffffffffffff811615615536575b61544c6154476109c16154416fffffffffffffffffffffffffffffffff61541d60a08801615352565b9516809561542f610120890189610c64565b92909161543c368b61535c565b615d24565b600f0b90565b615c5c565b9160e081019261547361545e85615335565b6fffffffffffffffffffffffffffffffff1690565b936fffffffffffffffffffffffffffffffff82169485116154e6575050610100013591826154a057505050565b610a056154ac926119df565b908082106154b8575050565b7fefc8d8eb000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b906154f3610a5592615335565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f526fffffffffffffffffffffffffffffffff90811660045216602452604490565b5061554360a08201615352565b156155645761555f61544761555a60208401612def565b6152b4565b6153f4565b61555f61544761555a83612def565b9060e011611f3a5780350190565b903590601e1981360301821215610107570180359067ffffffffffffffff821161010757602001918160051b3603831361010757565b9190811015610c5f5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6181360301821215610107570190565b60208101906156068282615581565b90505f9261561660608401615335565b9161562084612def565b926fffffffffffffffffffffffffffffffff8116156157dd575b60408501908261564a8388615581565b8015159586925090826157d2575b50506157aa57949093929493845b61569b5750505050505060800161567f61545e82615335565b6fffffffffffffffffffffffffffffffff8316116154e6575050565b8597506fffffffffffffffffffffffffffffffff6157076157006154415f19946156e36156dc8b6156d08f9c809e9f9d615581565b999091019889916155b7565b9788615e42565b9590911694856156f660808a018a610c64565b9390921590615d24565b5f03615c5c565b98615727575b50505f1961571b8892612def565b95019392949084615666565b615755906ec097ce7bc90715b34b9f10000000006fffffffffffffffffffffffffffffffff8b169102611a24565b9061576a81615764868b615581565b90613270565b3590818310615779575061570d565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f8af5ad98000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050815f615658565b506157ea615447846152b4565b61563a565b6157fb60c08201615335565b906fffffffffffffffffffffffffffffffff82161561593a575b6158656158606fffffffffffffffffffffffffffffffff61583860a08501615352565b941693615844856119ca565b90615853610120860186610c64565b92909161543c368861535c565b615f2a565b9060e081019161587761545e84615335565b926fffffffffffffffffffffffffffffffff82169384106158ea575050610100013591826158a457505050565b610a056158b0926119df565b908082106158bc575050565b7f4713c18b000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b906158f7610a5592615335565b7f8b063d73000000000000000000000000000000000000000000000000000000005f526fffffffffffffffffffffffffffffffff90811660045216602452604490565b905061594860a08201615352565b156159675761596161544761595c83612def565b614ff3565b90615815565b61596161544761595c60208401612def565b60208101906159888282615581565b5f9391508061599684612def565b926159a360608601615335565b6fffffffffffffffffffffffffffffffff811615615b20575b60408601916159cb8388615581565b801515958692509082615b15575b50506157aa575f9591949395945b848610615a205750505050505050608001615a0461545e82615335565b6fffffffffffffffffffffffffffffffff8316106158ea575050565b869850615a7b6158606fffffffffffffffffffffffffffffffff92615a5d615a568a615a50888f9e9c9d9e615581565b906155b7565b9687615e42565b9490911693615a6f6080880188610c64565b929091865f0391615d24565b98615a99575b506001615a8e8993612def565b9601949395916159e7565b615ac6906ec097ce7bc90715b34b9f10000000006fffffffffffffffffffffffffffffffff8b1602611a24565b615ad487615764868b615581565b35808210615ae25750615a81565b7fa9b7edf7000000000000000000000000000000000000000000000000000000005f52600488905260245260445260645ffd5b14159050855f6159d9565b50615b2d61544785614ff3565b6159bc565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611317575f91615b90575090565b90506020813d602011615bb7575b81615bab60209383611809565b81010312610107575190565b3d9150615b9e565b6001600160a01b038116615bd257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611317575f91615c0c575090565b610638915060203d602011611310576113018183611809565b61011692916001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169216612104565b906fffffffffffffffffffffffffffffffff8216809203615c7957565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b615d1661063895936001600160a01b0360806101209582815116865282602082015116602087015262ffffff6040820151166040870152606081015160020b6060870152015116608084015260a08301906001600160a01b036040809280511515855260208101516020860152015116910152565b816101008201520191611b05565b936020919394845f14615e1057615d976401000276a4925b615d63615d4761183c565b8815158152948587018890526001600160a01b03166040860152565b60405197889485947ff3cd914c00000000000000000000000000000000000000000000000000000000865260048601615ca1565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611317575f93615ded575b505f13901515145f14615de757600f0b90565b60801d90565b5f919350615e099060203d602011611310576113018183611809565b9290615dd4565b615d9773fffd8963efd1fc6a506488495d951d5263988d2592615d3c565b3561063881611c09565b3561063881611c16565b905f6080604051615e52816117e8565b8281528260208201528260408201528260608201520152615e7282612def565b906001600160a01b038083169082161015615f0e5790614e7790615efe60015b94615ef4615ea260208301615e2e565b615ee8615ebd6060615eb660408701615e38565b9501612def565b95615ed8615ec961184b565b6001600160a01b03909a168a52565b6001600160a01b03166020890152565b62ffffff166040870152565b60020b6060850152565b6001600160a01b03166080830152565b6001600160a01b0391821691614e779116615efe818414615e92565b5f81600f0b12615c79576fffffffffffffffffffffffffffffffff1690565b90615f865750805115615f5e57805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580615fcc575b615f97575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15615f8f56fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad730000000000000000000000008bceaa40b9acdfaedf85adf4ff01f5ad6517937f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000008366a39cc670b4001a1121b8f6a443a643e4095100000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d300000000000000000000000058daec3116aae6d93017baaea7749052e8a04fa70000000000000000000000007332d11bd10d18a04b119cd4671a96f3148002c4", + "nonce": "0x4c", "chainId": "0x1237" }, "additionalContracts": [], @@ -44,45 +25,27 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x55d449", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0xfc5d58bca306b47501d741bbbb88d8278f8f19d2bd44051076525b25d4b85a60", - "transactionIndex": "0x1", - "blockHash": "0x31f3f6e185fbe5f3bb7505d462fd53ca10fb6283c4128751ff58ced08b197f0a", - "blockNumber": "0x4d79", - "gasUsed": "0x55d449", - "effectiveGasPrice": "0x5f6a450", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": null, - "gasUsedForL1": "0x475ad", - "l1BlockNumber": "0x1805c8d" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x3dabe", + "cumulativeGasUsed": "0x54a68e", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x0", - "transactionHash": "0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e", + "transactionHash": "0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa", "transactionIndex": "0x1", - "blockHash": "0x421150477a43f6fbedb2cd04c65be7109ca755f096466b751d7971bda23cc688", - "blockNumber": "0x4d7a", - "gasUsed": "0x3dabe", + "blockHash": "0x7a6e0b38ef6e862cfc5f30b8ac37ca6ba60fc77fe276c128b13d5a766c31697a", + "blockNumber": "0x46cf", + "gasUsed": "0x54a68e", "effectiveGasPrice": "0x5f5e100", "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "contractAddress": null, - "gasUsedForL1": "0x4e0e", - "l1BlockNumber": "0x1805c8d" + "gasUsedForL1": "0x2dd48", + "l1BlockNumber": "0x18040f5" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1779919234534, + "timestamp": 1779834142853, "chain": 4663, - "commit": "e5b4eed" + "commit": "023196a" } \ No newline at end of file diff --git a/deployments/4663.md b/deployments/4663.md index 18071283..56181928 100644 --- a/deployments/4663.md +++ b/deployments/4663.md @@ -22,9 +22,12 @@ - [Permit2](#permit2) - [Calibur Entry](#calibur-entry) - [E R C7914 Detector](#e-r-c7914-detector) + - [Unsupported Protocol](#unsupported-protocol) + - [Universal Router](#universal-router) - [Deployment History](#deployment-history) - [Wed May 27 2026](#wed-may-27-2026) - [Fri May 22 2026](#fri-may-22-2026) + - [Tue May 26 2026](#tue-may-26-2026) ## Summary @@ -120,6 +123,13 @@ + + + + + + +
ERC7914Detector 0xc470458fc6a7e43471b31e6a2eb2612215a7102eUnsupportedProtocol0x7332D11BD10d18A04B119Cd4671a96f3148002c4N/A
UniversalRouter0x8876789976decbfcbbbe364623c63652db8c0904 N/A
@@ -441,6 +451,17 @@ Deployment Transaction: [0xfc5d58bca306b47501d741bbbb88d8278f8f19d2bd44051076525 Commit Hash: [e5b4eed](git@github.com:Uniswap/contracts/commit/e5b4eed) Wed, 27 May 2026 22:00:34 UTC +### Unsupported Protocol + +Address: [0x7332D11BD10d18A04B119Cd4671a96f3148002c4](https://8crv4vmq6tiu1yqr.blockscout.com/address/0x7332D11BD10d18A04B119Cd4671a96f3148002c4) + +Deployment Transaction: [0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24) + + + +Commit Hash: [dbef74e](git@github.com:Uniswap/contracts/commit/dbef74e) + +Tue, 26 May 2026 18:07:27 UTC @@ -457,6 +478,17 @@ Deployment Transaction: [0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697 Commit Hash: [e5b4eed](git@github.com:Uniswap/contracts/commit/e5b4eed) Wed, 27 May 2026 22:00:34 UTC +### Universal Router + +Address: [0x8876789976decbfcbbbe364623c63652db8c0904](https://8crv4vmq6tiu1yqr.blockscout.com/address/0x8876789976decbfcbbbe364623c63652db8c0904) + +Deployment Transaction: [0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa) + + + +Commit Hash: [023196a](git@github.com:Uniswap/contracts/commit/023196a) + +Tue, 26 May 2026 22:22:22 UTC @@ -728,4 +760,31 @@ Deployed contracts: + + + +### Tue May 26 2026 + + + +Deployed contracts: + +
+ + Universal Router + + + + + + + + + + + + + +
Commit hash: dbef74e
ParameterValue
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73","v2Factory":"0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f","v3Factory":"0x1f7d7550B1b028f7571E69A784071F0205FD2EfA","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x8366a39CC670B4001A1121B8F6A443A643e40951","v3NFTPositionManager":"0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3","v4PositionManager":"0x58daec3116aae6D93017bAAea7749052E8a04fA7","spokePool":"0x7332D11BD10d18A04B119Cd4671a96f3148002c4"}
+
\ No newline at end of file diff --git a/deployments/json/4663.json b/deployments/json/4663.json index 45dfead7..12cf3749 100644 --- a/deployments/json/4663.json +++ b/deployments/json/4663.json @@ -144,6 +144,38 @@ "initcodeHash": "0dd2931a3fa4f9d62cfa0c23ec94d56019086a08952ae677c3e2e79d056e770f", "timestamp": 1779919234534, "commitHash": "e5b4eed" + }, + "UnsupportedProtocol": { + "address": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4", + "proxy": false, + "deploymentTxn": "0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24", + "initcodeHash": "be71b3dccc59971adbbc194a78fa72cdcc604e5f13e5305e725620f24378ce65", + "timestamp": 1779818847000, + "commitHash": "dbef74e" + }, + "UniversalRouter": { + "address": "0x8876789976decbfcbbbe364623c63652db8c0904", + "proxy": false, + "deploymentTxn": "0x422569c99e80a452d45680fbf16cf04cd4ae79cd2b0d7a6a89cf6603009ed1fa", + "initcodeHash": "6dba80c0116a490d48657845492bb38374489ed49c296ac50614265f97221510", + "timestamp": 1779834142000, + "commitHash": "023196a", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73", + "v2Factory": "0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f", + "v3Factory": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x8366a39CC670B4001A1121B8F6A443A643e40951", + "v3NFTPositionManager": "0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3", + "v4PositionManager": "0x58daec3116aae6D93017bAAea7749052E8a04fA7", + "spokePool": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + } + } } }, "history": [ @@ -309,6 +341,37 @@ }, "timestamp": 1779473097006, "commitHash": "56928a9" + }, + { + "label": "UniversalRouter v2.1.0 (orphaned — replaced by v2.1.1; briefcase pin predated upstream v2.1.1 commit)", + "contracts": { + "UniversalRouter": { + "address": "0x248a454ac3584c2a48d1fcb28d3910a6b6ea00af", + "proxy": false, + "deploymentTxn": "0x66347de408f4f8f5de452b1f3b709c4ec4313c77ce75d69fea9924526004c8e3", + "initcodeHash": "3e5071cc21630ca46ee2c7f6b2b57447a7044de924c28fbda2d023d621461526", + "timestamp": 1779819180000, + "commitHash": "dbef74e", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73", + "v2Factory": "0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f", + "v3Factory": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x8366a39CC670B4001A1121B8F6A443A643e40951", + "v3NFTPositionManager": "0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3", + "v4PositionManager": "0x58daec3116aae6D93017bAAea7749052E8a04fA7", + "spokePool": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + } + } + } + }, + "timestamp": 1779819180000, + "commitHash": "dbef74e" } ] -} \ No newline at end of file +} diff --git a/script/deploy/tasks/4663/task-1779834129.json b/script/deploy/tasks/4663/task-1779834129.json new file mode 100644 index 00000000..8e1b2294 --- /dev/null +++ b/script/deploy/tasks/4663/task-1779834129.json @@ -0,0 +1,609 @@ +{ + "protocols": { + "unsupported-protocol": { + "name": "Unsupported Protocol", + "deploy": false, + "contracts": { + "UnsupportedProtocol": { + "deploy": false, + "address": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + } + }, + "permit2": { + "name": "Permit 2", + "deploy": false, + "contracts": { + "Permit2": { + "deploy": false, + "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "lookup": { + "latest": "Permit2", + "history": [ + "UniversalRouter.input.constructor.params.permit2" + ] + }, + "params": { + "salt": { + "type": "bytes32", + "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000" + } + } + } + } + }, + "v2": { + "name": "Uniswap v2", + "deploy": true, + "contracts": { + "UniswapV2Factory": { + "deploy": false, + "address": "0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f", + "lookup": { + "latest": "UniswapV2Factory", + "history": [ + "UniversalRouter.input.constructor.params.v2Factory" + ] + }, + "params": { + "feeToSetter": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "UniswapV2Router02": { + "deploy": false, + "address": "0x89e5DB8B5aA49aA85AC63f691524311AEB649eba", + "params": { + "factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + }, + "dependencies": [ + "weth" + ] + } + } + }, + "v3": { + "name": "Uniswap v3", + "deploy": true, + "contracts": { + "UniswapV3Factory": { + "deploy": false, + "address": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA", + "lookup": { + "latest": "UniswapV3Factory", + "history": [ + "UniversalRouter.input.constructor.params.v3Factory" + ] + }, + "params": { + "initialOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "UniswapInterfaceMulticall": { + "deploy": false, + "address": "0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3" + }, + "QuoterV2": { + "deploy": false, + "address": "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7", + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + }, + "dependencies": [ + "weth" + ] + }, + "TickLens": { + "deploy": false, + "address": "0x7dfd4f31be6814d2906bde155c3e1b146eac1468" + }, + "NonfungibleTokenPositionDescriptor": { + "deploy": false, + "address": "0x6f84dae9c064ff453e5c8af51efb819f8f610225", + "lookup": { + "latest": "NonfungibleTokenPositionDescriptor" + }, + "params": { + "nativeCurrencyLabel": { + "name": "Native token symbol", + "type": "string", + "value": "ETH" + }, + "proxyAdminOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + }, + "dependencies": [ + "weth" + ] + }, + "NonfungiblePositionManager": { + "deploy": false, + "address": "0x73991a25c818bf1f1128deaab1492d45638de0d3", + "lookup": { + "latest": "NonfungiblePositionManager" + }, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "tokenDescriptor": { + "name": "NFT Position Descriptor address", + "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor" + } + }, + "dependencies": [ + "weth" + ] + }, + "V3Migrator": { + "deploy": false, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "nonfungiblePositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + } + }, + "dependencies": [ + "weth" + ] + }, + "SwapRouter": { + "deploy": false, + "address": null, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + }, + "dependencies": [ + "weth" + ] + } + } + }, + "v4": { + "name": "Uniswap v4", + "deploy": true, + "contracts": { + "PoolManager": { + "deploy": false, + "address": "0x8366a39cc670b4001a1121b8f6a443a643e40951", + "lookup": { + "latest": "PoolManager" + }, + "params": { + "initialOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "PositionDescriptor": { + "deploy": false, + "address": "0x9639443158e8c5efa35bd45287bf2effd3d8dc06", + "lookup": { + "latest": "PositionDescriptor" + }, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "nativeCurrencyLabel": { + "name": "Native token symbol", + "type": "string", + "value": "ETH" + }, + "proxyAdminOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + }, + "dependencies": [ + "weth" + ] + }, + "PositionManager": { + "deploy": false, + "address": "0x58daec3116aae6d93017baaea7749052e8a04fa7", + "lookup": { + "latest": "PositionManager" + }, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "unsubscribeGasLimit": { + "name": "Unsubscribe gas limit", + "type": "uint256", + "value": "300000" + }, + "positionDescriptor": { + "name": "Position Descriptor address", + "pointer": "protocols.v4.contracts.PositionDescriptor" + } + }, + "dependencies": [ + "weth" + ] + }, + "V4Quoter": { + "deploy": false, + "address": "0x8dc178efb8111bb0973dd9d722ebeff267c98f94", + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + } + } + }, + "StateView": { + "deploy": false, + "address": "0xf3334192d15450cdd385c8b70e03f9a6bd9e673b", + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + } + } + } + } + }, + "hooks": { + "name": "v4 Hooks", + "deploy": false, + "contracts": { + "WETHHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "salt": { + "type": "bytes32" + } + }, + "dependencies": [ + "weth" + ] + }, + "WstETHHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "wstETH": { + "name": "WstETH address", + "type": "address" + }, + "salt": { + "type": "bytes32" + } + } + }, + "WstETHRoutingHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "wstETH": { + "name": "WstETH address", + "type": "address" + }, + "salt": { + "type": "bytes32" + } + } + } + } + }, + "view-quoter-v3": { + "name": "View Quoter v3", + "deploy": false, + "contracts": { + "Quoter": { + "deploy": false, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + } + } + } + }, + "mixed-quoter": { + "name": "Mixed Quoter", + "deploy": false, + "contracts": { + "MixedRouteQuoterV2": { + "deploy": false, + "address": null, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + } + } + } + }, + "swap-router-contracts": { + "name": "Swap Router Contracts", + "deploy": false, + "contracts": { + "SwapRouter02": { + "deploy": false, + "params": { + "factoryV2": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "factoryV3": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "positionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + } + }, + "dependencies": [ + "weth" + ], + "address": "0xcaf681a66d020601342297493863e78c959e5cb2" + } + } + }, + "universal-router": { + "name": "Universal Router (Latest)", + "tag": "v2.1", + "deploy": true, + "contracts": { + "UniversalRouter": { + "deploy": true, + "params": { + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2PairInitCodeHash": { + "name": "Uniswap v2 pair init code hash", + "type": "bytes32", + "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.pairInitCodeHash" + ] + } + }, + "v3PoolInitCodeHash": { + "name": "Uniswap v3 pool init code hash", + "type": "bytes32", + "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.poolInitCodeHash" + ] + } + }, + "v4PoolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3NFTPositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + }, + "v4PositionManager": { + "name": "Uniswap v4 position manager address", + "pointer": "protocols.v4.contracts.PositionManager" + }, + "acrossSpokePool": { + "name": "Across Spoke Pool address", + "type": "address", + "value": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + }, + "dependencies": [ + "weth" + ], + "lookup": { + "latest": "UniversalRouter" + } + } + } + }, + "universal-router-2_0": { + "name": "Universal Router (2.0)", + "tag": "v2.0", + "deploy": false, + "contracts": { + "UniversalRouter": { + "deploy": false, + "params": { + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2PairInitCodeHash": { + "name": "Uniswap v2 pair init code hash", + "type": "bytes32", + "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.pairInitCodeHash" + ] + } + }, + "v3PoolInitCodeHash": { + "name": "Uniswap v3 pool init code hash", + "type": "bytes32", + "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.poolInitCodeHash" + ] + } + }, + "v4PoolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3NFTPositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + }, + "v4PositionManager": { + "name": "Uniswap v4 position manager address", + "pointer": "protocols.v4.contracts.PositionManager" + } + }, + "dependencies": [ + "weth" + ], + "lookup": { + "latest": "UniversalRouter" + } + } + } + }, + "calibur": { + "name": "Calibur", + "deploy": false, + "contracts": { + "Calibur": { + "deploy": false, + "address": null, + "params": { + "salt": { + "type": "bytes32", + "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010" + } + } + } + } + }, + "util-contracts": { + "name": "Utils", + "deploy": false, + "contracts": { + "FeeOnTransferDetector": { + "deploy": false, + "address": null, + "params": { + "factoryV2": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + } + }, + "FeeCollector": { + "deploy": false, + "address": null, + "params": { + "owner": { + "type": "address" + }, + "universalRouter": { + "name": "Universal Router address", + "pointer": "protocols.universal-router.contracts.UniversalRouter" + }, + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "feeToken": { + "name": "Fee token address (usually USDC)", + "type": "address" + } + } + }, + "ERC7914Detector": { + "deploy": false, + "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00", + "params": { + "caliburAddress": { + "name": "Calibur address for ERC7914 detection", + "pointer": "protocols.calibur.contracts.Calibur" + } + } + } + } + } + }, + "dependencies": { + "weth": { + "type": "address", + "value": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.weth9", + "QuoterV2.input.constructor._WETH9", + "V3Migrator.input.constructor._WETH9", + "NonfungiblePositionManager.input.constructor._WETH9", + "NonFungibleTokenPositionDescriptor.input.constructor._WETH9", + "SwapRouter.input.constructor._WETH9", + "SwapRouter02.input.constructor._WETH9", + "Quoter.input.constructor._WETH9", + "QuoterV2.input.constructor._WETH9", + "UniswapV2Router02.input.constructor._WETH" + ] + } + } + }, + "rename": true +} diff --git a/script/deploy/tasks/4663/task-pending.json b/script/deploy/tasks/4663/task-pending.json new file mode 100644 index 00000000..8e1b2294 --- /dev/null +++ b/script/deploy/tasks/4663/task-pending.json @@ -0,0 +1,609 @@ +{ + "protocols": { + "unsupported-protocol": { + "name": "Unsupported Protocol", + "deploy": false, + "contracts": { + "UnsupportedProtocol": { + "deploy": false, + "address": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + } + }, + "permit2": { + "name": "Permit 2", + "deploy": false, + "contracts": { + "Permit2": { + "deploy": false, + "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "lookup": { + "latest": "Permit2", + "history": [ + "UniversalRouter.input.constructor.params.permit2" + ] + }, + "params": { + "salt": { + "type": "bytes32", + "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000" + } + } + } + } + }, + "v2": { + "name": "Uniswap v2", + "deploy": true, + "contracts": { + "UniswapV2Factory": { + "deploy": false, + "address": "0x8bcEaA40B9AcdfAedF85AdF4FF01F5Ad6517937f", + "lookup": { + "latest": "UniswapV2Factory", + "history": [ + "UniversalRouter.input.constructor.params.v2Factory" + ] + }, + "params": { + "feeToSetter": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "UniswapV2Router02": { + "deploy": false, + "address": "0x89e5DB8B5aA49aA85AC63f691524311AEB649eba", + "params": { + "factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + }, + "dependencies": [ + "weth" + ] + } + } + }, + "v3": { + "name": "Uniswap v3", + "deploy": true, + "contracts": { + "UniswapV3Factory": { + "deploy": false, + "address": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA", + "lookup": { + "latest": "UniswapV3Factory", + "history": [ + "UniversalRouter.input.constructor.params.v3Factory" + ] + }, + "params": { + "initialOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "UniswapInterfaceMulticall": { + "deploy": false, + "address": "0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3" + }, + "QuoterV2": { + "deploy": false, + "address": "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7", + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + }, + "dependencies": [ + "weth" + ] + }, + "TickLens": { + "deploy": false, + "address": "0x7dfd4f31be6814d2906bde155c3e1b146eac1468" + }, + "NonfungibleTokenPositionDescriptor": { + "deploy": false, + "address": "0x6f84dae9c064ff453e5c8af51efb819f8f610225", + "lookup": { + "latest": "NonfungibleTokenPositionDescriptor" + }, + "params": { + "nativeCurrencyLabel": { + "name": "Native token symbol", + "type": "string", + "value": "ETH" + }, + "proxyAdminOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + }, + "dependencies": [ + "weth" + ] + }, + "NonfungiblePositionManager": { + "deploy": false, + "address": "0x73991a25c818bf1f1128deaab1492d45638de0d3", + "lookup": { + "latest": "NonfungiblePositionManager" + }, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "tokenDescriptor": { + "name": "NFT Position Descriptor address", + "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor" + } + }, + "dependencies": [ + "weth" + ] + }, + "V3Migrator": { + "deploy": false, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "nonfungiblePositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + } + }, + "dependencies": [ + "weth" + ] + }, + "SwapRouter": { + "deploy": false, + "address": null, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + }, + "dependencies": [ + "weth" + ] + } + } + }, + "v4": { + "name": "Uniswap v4", + "deploy": true, + "contracts": { + "PoolManager": { + "deploy": false, + "address": "0x8366a39cc670b4001a1121b8f6a443a643e40951", + "lookup": { + "latest": "PoolManager" + }, + "params": { + "initialOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + } + }, + "PositionDescriptor": { + "deploy": false, + "address": "0x9639443158e8c5efa35bd45287bf2effd3d8dc06", + "lookup": { + "latest": "PositionDescriptor" + }, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "nativeCurrencyLabel": { + "name": "Native token symbol", + "type": "string", + "value": "ETH" + }, + "proxyAdminOwner": { + "type": "address", + "value": "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52" + } + }, + "dependencies": [ + "weth" + ] + }, + "PositionManager": { + "deploy": false, + "address": "0x58daec3116aae6d93017baaea7749052e8a04fa7", + "lookup": { + "latest": "PositionManager" + }, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "unsubscribeGasLimit": { + "name": "Unsubscribe gas limit", + "type": "uint256", + "value": "300000" + }, + "positionDescriptor": { + "name": "Position Descriptor address", + "pointer": "protocols.v4.contracts.PositionDescriptor" + } + }, + "dependencies": [ + "weth" + ] + }, + "V4Quoter": { + "deploy": false, + "address": "0x8dc178efb8111bb0973dd9d722ebeff267c98f94", + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + } + } + }, + "StateView": { + "deploy": false, + "address": "0xf3334192d15450cdd385c8b70e03f9a6bd9e673b", + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + } + } + } + } + }, + "hooks": { + "name": "v4 Hooks", + "deploy": false, + "contracts": { + "WETHHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "salt": { + "type": "bytes32" + } + }, + "dependencies": [ + "weth" + ] + }, + "WstETHHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "wstETH": { + "name": "WstETH address", + "type": "address" + }, + "salt": { + "type": "bytes32" + } + } + }, + "WstETHRoutingHook": { + "deploy": false, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "wstETH": { + "name": "WstETH address", + "type": "address" + }, + "salt": { + "type": "bytes32" + } + } + } + } + }, + "view-quoter-v3": { + "name": "View Quoter v3", + "deploy": false, + "contracts": { + "Quoter": { + "deploy": false, + "params": { + "factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + } + } + } + } + }, + "mixed-quoter": { + "name": "Mixed Quoter", + "deploy": false, + "contracts": { + "MixedRouteQuoterV2": { + "deploy": false, + "address": null, + "params": { + "poolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + } + } + } + }, + "swap-router-contracts": { + "name": "Swap Router Contracts", + "deploy": false, + "contracts": { + "SwapRouter02": { + "deploy": false, + "params": { + "factoryV2": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "factoryV3": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "positionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + } + }, + "dependencies": [ + "weth" + ], + "address": "0xcaf681a66d020601342297493863e78c959e5cb2" + } + } + }, + "universal-router": { + "name": "Universal Router (Latest)", + "tag": "v2.1", + "deploy": true, + "contracts": { + "UniversalRouter": { + "deploy": true, + "params": { + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2PairInitCodeHash": { + "name": "Uniswap v2 pair init code hash", + "type": "bytes32", + "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.pairInitCodeHash" + ] + } + }, + "v3PoolInitCodeHash": { + "name": "Uniswap v3 pool init code hash", + "type": "bytes32", + "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.poolInitCodeHash" + ] + } + }, + "v4PoolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3NFTPositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + }, + "v4PositionManager": { + "name": "Uniswap v4 position manager address", + "pointer": "protocols.v4.contracts.PositionManager" + }, + "acrossSpokePool": { + "name": "Across Spoke Pool address", + "type": "address", + "value": "0x7332D11BD10d18A04B119Cd4671a96f3148002c4" + } + }, + "dependencies": [ + "weth" + ], + "lookup": { + "latest": "UniversalRouter" + } + } + } + }, + "universal-router-2_0": { + "name": "Universal Router (2.0)", + "tag": "v2.0", + "deploy": false, + "contracts": { + "UniversalRouter": { + "deploy": false, + "params": { + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "v2Factory": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + }, + "v3Factory": { + "name": "Uniswap v3 factory address", + "pointer": "protocols.v3.contracts.UniswapV3Factory" + }, + "v2PairInitCodeHash": { + "name": "Uniswap v2 pair init code hash", + "type": "bytes32", + "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.pairInitCodeHash" + ] + } + }, + "v3PoolInitCodeHash": { + "name": "Uniswap v3 pool init code hash", + "type": "bytes32", + "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.poolInitCodeHash" + ] + } + }, + "v4PoolManager": { + "name": "Pool Manager", + "pointer": "protocols.v4.contracts.PoolManager" + }, + "v3NFTPositionManager": { + "name": "Uniswap v3 position manager address", + "pointer": "protocols.v3.contracts.NonfungiblePositionManager" + }, + "v4PositionManager": { + "name": "Uniswap v4 position manager address", + "pointer": "protocols.v4.contracts.PositionManager" + } + }, + "dependencies": [ + "weth" + ], + "lookup": { + "latest": "UniversalRouter" + } + } + } + }, + "calibur": { + "name": "Calibur", + "deploy": false, + "contracts": { + "Calibur": { + "deploy": false, + "address": null, + "params": { + "salt": { + "type": "bytes32", + "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010" + } + } + } + } + }, + "util-contracts": { + "name": "Utils", + "deploy": false, + "contracts": { + "FeeOnTransferDetector": { + "deploy": false, + "address": null, + "params": { + "factoryV2": { + "name": "Uniswap v2 factory address", + "pointer": "protocols.v2.contracts.UniswapV2Factory" + } + } + }, + "FeeCollector": { + "deploy": false, + "address": null, + "params": { + "owner": { + "type": "address" + }, + "universalRouter": { + "name": "Universal Router address", + "pointer": "protocols.universal-router.contracts.UniversalRouter" + }, + "permit2": { + "name": "Permit 2 address", + "pointer": "protocols.permit2.contracts.Permit2" + }, + "feeToken": { + "name": "Fee token address (usually USDC)", + "type": "address" + } + } + }, + "ERC7914Detector": { + "deploy": false, + "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00", + "params": { + "caliburAddress": { + "name": "Calibur address for ERC7914 detection", + "pointer": "protocols.calibur.contracts.Calibur" + } + } + } + } + } + }, + "dependencies": { + "weth": { + "type": "address", + "value": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73", + "lookup": { + "history": [ + "UniversalRouter.input.constructor.params.weth9", + "QuoterV2.input.constructor._WETH9", + "V3Migrator.input.constructor._WETH9", + "NonfungiblePositionManager.input.constructor._WETH9", + "NonFungibleTokenPositionDescriptor.input.constructor._WETH9", + "SwapRouter.input.constructor._WETH9", + "SwapRouter02.input.constructor._WETH9", + "Quoter.input.constructor._WETH9", + "QuoterV2.input.constructor._WETH9", + "UniswapV2Router02.input.constructor._WETH" + ] + } + } + }, + "rename": true +} From 4c4e1b90932adf26703a6193437ced5fa5017744 Mon Sep 17 00:00:00 2001 From: david-uniswap <274080779+david-uniswap@users.noreply.github.com> Date: Tue, 26 May 2026 15:52:17 -0700 Subject: [PATCH 2/2] restore Tempo Mainnet / Robinhood Mainnet labels in deployments index forge-chronicles' index regen overwrites named chain labels with "Chain N" fallbacks for chains not in its bundled chains.json. Restore "Tempo Mainnet" (4217) and set "Robinhood Mainnet" (4663) explicitly. --- deployments/4663.md | 33 +++++++++++++++++++++++---------- deployments/index.md | 2 +- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/deployments/4663.md b/deployments/4663.md index 56181928..d753a00c 100644 --- a/deployments/4663.md +++ b/deployments/4663.md @@ -123,6 +123,9 @@ ERC7914Detector 0xc470458fc6a7e43471b31e6a2eb2612215a7102e + N/A + + UnsupportedProtocol 0x7332D11BD10d18A04B119Cd4671a96f3148002c4 N/A @@ -451,33 +454,43 @@ Deployment Transaction: [0xfc5d58bca306b47501d741bbbb88d8278f8f19d2bd44051076525 Commit Hash: [e5b4eed](git@github.com:Uniswap/contracts/commit/e5b4eed) Wed, 27 May 2026 22:00:34 UTC -### Unsupported Protocol -Address: [0x7332D11BD10d18A04B119Cd4671a96f3148002c4](https://8crv4vmq6tiu1yqr.blockscout.com/address/0x7332D11BD10d18A04B119Cd4671a96f3148002c4) -Deployment Transaction: [0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24) +--- +### E R C7914 Detector -Commit Hash: [dbef74e](git@github.com:Uniswap/contracts/commit/dbef74e) +Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://8crv4vmq6tiu1yqr.blockscout.com/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e) + +Deployment Transaction: [0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e) -Tue, 26 May 2026 18:07:27 UTC + + +Commit Hash: [e5b4eed](git@github.com:Uniswap/contracts/commit/e5b4eed) + +Wed, 27 May 2026 22:00:34 UTC --- -### E R C7914 Detector +### Unsupported Protocol -Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://8crv4vmq6tiu1yqr.blockscout.com/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e) +Address: [0x7332D11BD10d18A04B119Cd4671a96f3148002c4](https://8crv4vmq6tiu1yqr.blockscout.com/address/0x7332D11BD10d18A04B119Cd4671a96f3148002c4) -Deployment Transaction: [0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0xd25a20ee2c22a20620ab0b73846ca31282be387a0ca618f180697f44fe778d0e) +Deployment Transaction: [0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24](https://8crv4vmq6tiu1yqr.blockscout.com/tx/0x029d23d957e6d9f39b2bd655a10d01e764999b32344c2ccdcb9667259cd80f24) -Commit Hash: [e5b4eed](git@github.com:Uniswap/contracts/commit/e5b4eed) +Commit Hash: [dbef74e](git@github.com:Uniswap/contracts/commit/dbef74e) + +Tue, 26 May 2026 18:07:27 UTC + + + +--- -Wed, 27 May 2026 22:00:34 UTC ### Universal Router Address: [0x8876789976decbfcbbbe364623c63652db8c0904](https://8crv4vmq6tiu1yqr.blockscout.com/address/0x8876789976decbfcbbbe364623c63652db8c0904) diff --git a/deployments/index.md b/deployments/index.md index b0fbffe4..1a189fcb 100644 --- a/deployments/index.md +++ b/deployments/index.md @@ -17,7 +17,7 @@ This repository contains deployment information for the following networks: | 1868 | Soneium | [View Deployment](./1868.md) | | 4217 | Tempo Mainnet | [View Deployment](./4217.md) | | 4326 | Chain 4326 | [View Deployment](./4326.md) | -| 4663 | Robinhood Chain | [View Deployment](./4663.md) | +| 4663 | Robinhood Mainnet | [View Deployment](./4663.md) | | 8453 | Base | [View Deployment](./8453.md) | | 10143 | Monad Testnet | [View Deployment](./10143.md) | | 42161 | Arbitrum One | [View Deployment](./42161.md) |