diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631714.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631714.json new file mode 100644 index 00000000..7a302c9e --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631714.json @@ -0,0 +1,64 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "gas": "0x9ffb58", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x215eb7291a76b87ef61d43bd0b614babed7366ad", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x99c85202d2815ef0ed3fdab20d12c2c37c772050", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b00000000000000000000000042000000000000000000000000000000000000060000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f100000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + }, + { + "transactionType": "CREATE", + "address": "0x1fae91cc1130316a013b617859848c653cb0f7d1", + "initCode": "0x60e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x29ab5f9979cde2b166a8f6fc13e385bf2fe47996", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x2a34bd6c6d2b415e13c6bf21d886d956dbc0e532", + "initCode": "0x6101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340" + }, + { + "transactionType": "CREATE", + "address": "0xa6cedb1b01942f9bdd7f51fc3e9e77c00b23fb90", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f22400000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734631714, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631896.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631896.json new file mode 100644 index 00000000..e4c17d0e --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734631896.json @@ -0,0 +1,64 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "gas": "0x9ffb58", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x215eb7291a76b87ef61d43bd0b614babed7366ad", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x99c85202d2815ef0ed3fdab20d12c2c37c772050", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b00000000000000000000000042000000000000000000000000000000000000060000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f100000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + }, + { + "transactionType": "CREATE", + "address": "0x1fae91cc1130316a013b617859848c653cb0f7d1", + "initCode": "0x60e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x29ab5f9979cde2b166a8f6fc13e385bf2fe47996", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x2a34bd6c6d2b415e13c6bf21d886d956dbc0e532", + "initCode": "0x6101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340" + }, + { + "transactionType": "CREATE", + "address": "0xa6cedb1b01942f9bdd7f51fc3e9e77c00b23fb90", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f22400000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734631896, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632195.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632195.json new file mode 100644 index 00000000..aa3e64c2 --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632195.json @@ -0,0 +1,64 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "gas": "0x9ffb58", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x215eb7291a76b87ef61d43bd0b614babed7366ad", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x99c85202d2815ef0ed3fdab20d12c2c37c772050", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b00000000000000000000000042000000000000000000000000000000000000060000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f100000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + }, + { + "transactionType": "CREATE", + "address": "0x1fae91cc1130316a013b617859848c653cb0f7d1", + "initCode": "0x60e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x29ab5f9979cde2b166a8f6fc13e385bf2fe47996", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x2a34bd6c6d2b415e13c6bf21d886d956dbc0e532", + "initCode": "0x6101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340" + }, + { + "transactionType": "CREATE", + "address": "0xa6cedb1b01942f9bdd7f51fc3e9e77c00b23fb90", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f22400000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734632195, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632379.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632379.json new file mode 100644 index 00000000..d63266be --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632379.json @@ -0,0 +1,32 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734632379, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632817.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632817.json new file mode 100644 index 00000000..df4e2811 --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734632817.json @@ -0,0 +1,32 @@ +{ + "transactions": [ + { + "hash": "0xcaa1684cfc57e446650194f09f0cc8f38043c5712b1142fae64332dd963fc577", + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734632817, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734633175.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734633175.json new file mode 100644 index 00000000..9c8c8a60 --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-1734633175.json @@ -0,0 +1,102 @@ +{ + "transactions": [ + { + "hash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "gas": "0x9ffb58", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x215eb7291a76b87ef61d43bd0b614babed7366ad", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x99c85202d2815ef0ed3fdab20d12c2c37c772050", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b00000000000000000000000042000000000000000000000000000000000000060000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f100000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + }, + { + "transactionType": "CREATE", + "address": "0x1fae91cc1130316a013b617859848c653cb0f7d1", + "initCode": "0x60e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x29ab5f9979cde2b166a8f6fc13e385bf2fe47996", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x2a34bd6c6d2b415e13c6bf21d886d956dbc0e532", + "initCode": "0x6101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340" + }, + { + "transactionType": "CREATE", + "address": "0xa6cedb1b01942f9bdd7f51fc3e9e77c00b23fb90", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f22400000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c1e317", + "logs": [ + { + "address": "0x1d4dab3f27c7f656b6323c1d6ef713b48a8f72f1", + "topics": [ + "0xac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000012d", + "blockHash": "0x2d77636a8baab8fd52a49c4ceefc3dd97e1ef3963531de093caa78fcf07f3dd4", + "blockNumber": "0x16d0479", + "blockTimestamp": "0x676465d5", + "transactionHash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionIndex": "0x58", + "logIndex": "0x20f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000002000000000800000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionIndex": "0x58", + "blockHash": "0x2d77636a8baab8fd52a49c4ceefc3dd97e1ef3963531de093caa78fcf07f3dd4", + "blockNumber": "0x16d0479", + "gasUsed": "0x7b101d", + "effectiveGasPrice": "0xaa51ec", + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "to": null, + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "l1BaseFeeScalar": "0x8dd", + "l1BlobBaseFee": "0xb26f1877d6", + "l1BlobBaseFeeScalar": "0x101c12", + "l1Fee": "0x1c043d386748a3", + "l1GasPrice": "0x12ff2e6fdf", + "l1GasUsed": "0x25ef0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734633175, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-latest.json b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-latest.json new file mode 100644 index 00000000..9c8c8a60 --- /dev/null +++ b/broadcast/DeployPriceFeedUniswapV3TWAPChainlink.s.sol/8453/run-latest.json @@ -0,0 +1,102 @@ +{ + "transactions": [ + { + "hash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionType": "CREATE", + "contractName": "PriceFeedUniswapV3TWAPChainlink", + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "function": null, + "arguments": [ + "0xBCF85224fc0756B9Fa45aA7892530B47e10b6433", + "(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1, 600, 2, 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b, 0x4200000000000000000000000000000000000006, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0, 0, 0x0000000000000000000000000000000000000000)", + "(0xd0b53D9277642d899DF5C87A3966A349A798F224, 600, 2, 0x4200000000000000000000000000000000000006, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, 0x7e860098F58bBFC8648a4311b374B1D669a2bc6B, 1320, 95040, 0xBCF85224fc0756B9Fa45aA7892530B47e10b6433)" + ], + "transaction": { + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "gas": "0x9ffb58", + "value": "0x0", + "input": "0x60e060405234801562000010575f80fd5b5060405162004fe438038062004fe48339810160408190526200003391620002c5565b8260405162000042906200015a565b6001600160a01b039091168152602001604051809103905ff0801580156200006c573d5f803e3d5ffd5b506001600160a01b03166080816001600160a01b031681525050601282606001518360800151845f015185602001518660400151604051620000ae9062000168565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff08015801562000100573d5f803e3d5ffd5b506001600160a01b031660a05260405181906200011d9062000176565b62000129919062000312565b604051809103905ff08015801562000143573d5f803e3d5ffd5b506001600160a01b031660c05250620003f6915050565b6102ed8062000e7783390190565b61148d806200116483390190565b6129f380620025f183390190565b6001600160a01b038116811462000199575f80fd5b50565b8051620001a98162000184565b919050565b60405161014081016001600160401b0381118282101715620001de57634e487b7160e01b5f52604160045260245ffd5b60405290565b805163ffffffff81168114620001a9575f80fd5b5f61014082840312156200020a575f80fd5b62000214620001ae565b905062000221826200019c565b81526200023160208301620001e4565b60208201526200024460408301620001e4565b604082015262000257606083016200019c565b60608201526200026a608083016200019c565b60808201526200027d60a083016200019c565b60a08201526200029060c083016200019c565b60c082015260e082015160e0820152610100808301518183015250610120620002bb8184016200019c565b9082015292915050565b5f805f6102a08486031215620002d9575f80fd5b8351620002e68162000184565b9250620002f78560208601620001f8565b915062000309856101608601620001f8565b90509250925092565b81516001600160a01b03168152610140810160208301516200033c602084018263ffffffff169052565b50604083015162000355604084018263ffffffff169052565b5060608301516200037160608401826001600160a01b03169052565b5060808301516200038d60808401826001600160a01b03169052565b5060a0830151620003a960a08401826001600160a01b03169052565b5060c0830151620003c560c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b60805160a05160c051610a27620004505f395f818160e0015281816102ef015281816103d001526105ca01525f81816101070152818161012d0152818161020e015261054701525f818160a101526104d90152610a275ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063313ce567146100645780637284e4161461007f57806398d5fdca14610094578063a6601cf21461009c578063b09295f8146100db578063e41e751214610102575b5f80fd5b61006c601281565b6040519081526020015b60405180910390f35b610087610129565b60405161007691906106c1565b61006c6104d6565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610076565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b6100c37f000000000000000000000000000000000000000000000000000000000000000081565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c55dae636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ab919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261020c9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663217a4b706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061070a565b6001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102ed9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103ce9190810190610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e919061070a565b6001600160a01b0316637284e4166040518163ffffffff1660e01b81526004015f60405180830381865afa158015610488573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104af9190810190610740565b6040516020016104c294939291906107e8565b604051602081830303815290604052905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b15801561052e575f80fd5b505afa158015610540573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906108d9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064891906108d9565b9050610660828261065b6012600a6109e6565b610667565b9250505090565b5f61067384848461067b565b949350505050565b5f825f1904841183021582026106985763ad251c275f526004601cfd5b5091020490565b5f5b838110156106b95781810151838201526020016106a1565b50505f910152565b602081525f82518060208401526106df81604085016020870161069f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610707575f80fd5b50565b5f6020828403121561071a575f80fd5b8151610725816106f3565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610750575f80fd5b815167ffffffffffffffff80821115610767575f80fd5b818401915084601f83011261077a575f80fd5b81518181111561078c5761078c61072c565b604051601f8201601f19908116603f011681019083821181831017156107b4576107b461072c565b816040528281528760208487010111156107cc575f80fd5b6107dd83602083016020880161069f565b979650505050505050565b7f507269636546656564556e6973776170563354574150436861696e6c696e6b208152620f840560eb1b60208201525f855161082b816023850160208a0161069f565b602f60f81b602391840191820152855161084c816024840160208a0161069f565b7f292028556e6973776170207633205457415029202a202828000000000000000060249290910191820152845161088a81603c84016020890161069f565b64052405e40560db1b603c929091019182015283516108b081604184016020880161069f565b6d292920285072696365466565642960901b60419290910191820152604f019695505050505050565b5f602082840312156108e9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016109e0565b8161096057505f6109e0565b816001811461097657600281146109805761099c565b60019150506109e0565b60ff841115610991576109916108f0565b50506001821b6109e0565b5060208310610133831016604e8410600b84101617156109bf575081810a6109e0565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b0290505b92915050565b5f610725838361094656fea2646970667358221220f413fa17c9f529dd81d5a6bf1e69b8555de2bb7b495b5b93c78d763d6896efbd64736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003360e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b64330000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f1000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433", + "nonce": "0x98", + "chainId": "0x2105" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x215eb7291a76b87ef61d43bd0b614babed7366ad", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x99c85202d2815ef0ed3fdab20d12c2c37c772050", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b00000000000000000000000042000000000000000000000000000000000000060000000000000000000000001d4dab3f27c7f656b6323c1d6ef713b48a8f72f100000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + }, + { + "transactionType": "CREATE", + "address": "0x1fae91cc1130316a013b617859848c653cb0f7d1", + "initCode": "0x60e060405234801561000f575f80fd5b506040516129f33803806129f383398101604081905261002e91610205565b8061012001516040516100409061017b565b6001600160a01b039091168152602001604051809103905ff080158015610069573d5f803e3d5ffd5b506001600160a01b031660805260a081015160c082015160e08301516101008401516040516012949392919061009e90610188565b9485526001600160a01b0393841660208601529290911660408401526060830152608082015260a001604051809103905ff0801580156100e0573d5f803e3d5ffd5b506001600160a01b031660a05260608101516080820151825160208401516040808601519051601295949392919061011790610195565b9586526001600160a01b03948516602087015292841660408601529216606084015263ffffffff91821660808401521660a082015260c001604051809103905ff080158015610168573d5f803e3d5ffd5b506001600160a01b031660c052506102be565b6102ed8061080483390190565b610a7580610af183390190565b61148d8061156683390190565b60405161014081016001600160401b03811182821017156101d157634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b03811681146101ed575f80fd5b919050565b805163ffffffff811681146101ed575f80fd5b5f6101408284031215610216575f80fd5b61021e6101a2565b610227836101d7565b8152610235602084016101f2565b6020820152610246604084016101f2565b6040820152610257606084016101d7565b6060820152610268608084016101d7565b608082015261027960a084016101d7565b60a082015261028a60c084016101d7565b60c082015260e083015160e08201526101008084015181830152506101206102b38185016101d7565b908201529392505050565b60805160a05160c0516104ec6103185f395f818160dc015261035901525f818161014201528181610167015281816101ed015281816102db015281816103bb015261041801525f8181610113015261026e01526104ec5ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806398d5fdca1161006357806398d5fdca146100fe578063999b93af14610106578063a6601cf21461010e578063ce52a6b414610135578063d8a2b7f01461013d575f80fd5b80630b08424914610094578063313ce567146100af5780635001f3b5146100b757806395679855146100d7575b5f80fd5b61009c610164565b6040519081526020015b60405180910390f35b61009c601281565b6100bf6101ea565b6040516001600160a01b0390911681526020016100a6565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c61026b565b6100bf6103b8565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b61009c610415565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0842496040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610472565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9692bd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610489565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec73052b6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156102c3575f80fd5b505afa1580156102d5573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610353575060408051601f3d908101601f1916820190925261035091810190610472565b60015b6103b3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166351f482df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ce52a6b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b5f60208284031215610482575f80fd5b5051919050565b5f60208284031215610499575f80fd5b81516001600160a01b03811681146104af575f80fd5b939250505056fea264697066735822122021206a6792f6a36105867f601c05e49b16482df45188cac0be6b10123043cde564736f6c6343000817003360a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c634300081700336101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c6343000817003361014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c63430008170033000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f224000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000000020000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x29ab5f9979cde2b166a8f6fc13e385bf2fe47996", + "initCode": "0x60a060405234801561000f575f80fd5b506040516102ed3803806102ed83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161025e61008f5f395f8181603d015281816087015260b8015261025e5ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a726470514610038578063ec73052b1461007b575b5f80fd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b610083610085565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615610197575f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906101b7565b50509250925050805f148061014b5750816001145b1561016957604051634a3b18b560e01b815260040160405180910390fd5b610e106101768242610203565b1161019457604051631e71412560e01b815260040160405180910390fd5b50505b565b805169ffffffffffffffffffff811681146101b2575f80fd5b919050565b5f805f805f60a086880312156101cb575f80fd5b6101d486610199565b94506020860151935060408601519250606086015191506101f760808701610199565b90509295509295909350565b8181038181111561022257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220ce11f27f71fede47ebcc8f053580b792985e67a8b7425106231a5d1b7f6169b064736f6c63430008170033000000000000000000000000bcf85224fc0756b9fa45aa7892530b47e10b6433" + }, + { + "transactionType": "CREATE", + "address": "0x2a34bd6c6d2b415e13c6bf21d886d956dbc0e532", + "initCode": "0x6101206040526012608052348015610015575f80fd5b50604051610a75380380610a7583398101604081905261003491610279565b6001600160a01b038416158061005157506001600160a01b038316155b1561006f5760405163de0ce17d60e01b815260040160405180910390fd5b81158061007a575080155b15610098576040516373f9226b60e11b815260040160405180910390fd5b60808590526001600160a01b0380851660a052831660c081905260e08390526101008290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906102c4565b60ff1660a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561015b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017f91906102c4565b60ff161461020d5760c0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906102c4565b60405163b094f61d60e01b815260ff90911660048201526024015b60405180910390fd5b60c0516001600160a01b031660a0516001600160a01b031603610254578082146102545760405163b2dd8c5960e01b81526004810183905260248101829052604401610204565b50505050506102eb565b80516001600160a01b0381168114610274575f80fd5b919050565b5f805f805f60a0868803121561028d575f80fd5b8551945061029d6020870161025e565b93506102ab6040870161025e565b6060870151608090970151959894975095949392505050565b5f602082840312156102d4575f80fd5b815160ff811681146102e4575f80fd5b9392505050565b60805160a05160c05160e051610100516107036103725f395f8181610138015261036b01525f818160690152818161029001526102f601525f818160ca0152818161015d015261034a01525f818161011101528181610187015281816101b60152818161026f01526102d501525f818160a301528181610244015261031f01526107035ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80630b08424914610064578063313ce5671461009e57806351f482df146100c557806398d5fdca14610104578063b9692bd21461010c578063ce52a6b414610133575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61015a565b6100ec7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023491906104e6565b61023f90600a610601565b61026a7f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b6102b47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6102be919061061a565b6102c89190610631565b905090565b6102c861031a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b6103457f0000000000000000000000000000000000000000000000000000000000000000600a61060f565b61038f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610394565b610485565b5f805f846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f7919061066e565b509350509250505f821361043557604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b8361044082426106ba565b111561047157604051632c4f4f3160e21b81526001600160a01b03861660048201526024810182905260440161042c565b61047a82610499565b925050505b92915050565b5f6104918484846104c2565b949350505050565b5f808212156104be57604051635467221960e11b81526004810183905260240161042c565b5090565b5f825f1904841183021582026104df5763ad251c275f526004601cfd5b5091020490565b5f602082840312156104f6575f80fd5b815160ff81168114610506575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561055b57815f19048211156105415761054161050d565b8085161561054e57918102915b93841c9390800290610526565b509250929050565b5f826105715750600161047f565b8161057d57505f61047f565b8160018114610593576002811461059d576105b9565b600191505061047f565b60ff8411156105ae576105ae61050d565b50506001821b61047f565b5060208310610133831016604e8410600b84101617156105dc575081810a61047f565b6105e68383610521565b805f19048211156105f9576105f961050d565b029392505050565b5f61050660ff841683610563565b5f6105068383610563565b808202811582820484141761047f5761047f61050d565b5f8261064b57634e487b7160e01b5f52601260045260245ffd5b500490565b805169ffffffffffffffffffff81168114610669575f80fd5b919050565b5f805f805f60a08688031215610682575f80fd5b61068b86610650565b94506020860151935060408601519250606086015191506106ae60808701610650565b90509295509295909350565b8181038181111561047f5761047f61050d56fea26469706673582212200e37a22716937023f4575e9c024000dd1abcae02418479387bc997479964f8dc64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000071041dddad3595f9ced3dccfbe3d1f4b0a16bb700000000000000000000000007e860098f58bbfc8648a4311b374b1d669a2bc6b00000000000000000000000000000000000000000000000000000000000005280000000000000000000000000000000000000000000000000000000000017340" + }, + { + "transactionType": "CREATE", + "address": "0xa6cedb1b01942f9bdd7f51fc3e9e77c00b23fb90", + "initCode": "0x61014060405234801562000011575f80fd5b506040516200148d3803806200148d8339810160408190526200003491620002e8565b6001600160a01b03851615806200005257506001600160a01b038416155b806200006557506001600160a01b038316155b15620000845760405163de0ce17d60e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b031603620000c75760405163276b4fc160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b8163ffffffff165f03620000ee57604051631202386d60e21b815260040160405180910390fd5b8063ffffffff165f036200011557604051633afaae6560e11b815260040160405180910390fd5b60808690526001600160a01b0380861660a05284811660c052831660e081815263ffffffff8085166101005283166101205260408051633850c7bd60e01b815290515f9392633850c7bd92600480820193918290030181865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000376565b50505093505050505f620001e3620001d08563ffffffff168563ffffffff166200026360201b60201c565b620001dd9060016200041e565b62000283565b90508061ffff168261ffff161015620002555760e0516040516332148f6760e01b815261ffff831660048201526001600160a01b03909116906332148f67906024015f604051808303815f87803b1580156200023d575f80fd5b505af115801562000250573d5f803e3d5ffd5b505050505b505050505050505062000444565b5f8162000277576365244e4e5f526004601cfd5b50808206151591040190565b5f61ffff821115620002b3576040516306dfcc6560e41b81526010600482015260248101839052604401620000be565b5090565b6001600160a01b0381168114620002cc575f80fd5b50565b805163ffffffff81168114620002e3575f80fd5b919050565b5f805f805f8060c08789031215620002fe575f80fd5b8651955060208701516200031281620002b7565b60408801519095506200032581620002b7565b60608801519094506200033881620002b7565b92506200034860808801620002cf565b91506200035860a08801620002cf565b90509295509295509295565b805161ffff81168114620002e3575f80fd5b5f805f805f805f60e0888a0312156200038d575f80fd5b87516200039a81620002b7565b8097505060208801518060020b8114620003b2575f80fd5b9550620003c26040890162000364565b9450620003d26060890162000364565b9350620003e26080890162000364565b925060a088015160ff81168114620003f8575f80fd5b60c089015190925080151581146200040e575f80fd5b8091505092959891949750929550565b808201808211156200043e57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e0516101005161012051610fd2620004bb5f395f60c701525f818161013801526101d801525f818161018e01526101b701525f81816083015281816102be01526102e601525f818161016701528181610205015261029d01525f818161010301526103740152610fd25ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c80638107e133116100585780638107e1331461013357806398d5fdca1461015a578063c55dae6314610162578063f55ebd2a14610189575f80fd5b8063217a4b701461007e578063233dedf1146100c2578063313ce567146100fe575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100b9565b6101257f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100b9565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6101256101b0565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b5f806101fc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006103b6565b5090505f6102937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102839190610afd565b61028e90600a610c13565b6105f5565b90505f6102e283837f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061062c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103649190610afd565b61036f90600a610c13565b61039a7f0000000000000000000000000000000000000000000000000000000000000000600a610c21565b6103a49083610c2c565b6103ae9190610c57565b935050505090565b5f808263ffffffff165f036103f75760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064015b60405180910390fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061042a5761042a610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061045857610458610c7e565b602002602001019063ffffffff16908163ffffffff16815250505f80866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016104a09190610c92565b5f60405180830381865afa1580156104ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104e19190810190610daf565b915091505f825f815181106104f8576104f8610c7e565b60200260200101518360018151811061051357610513610c7e565b60200260200101516105259190610e73565b90505f825f8151811061053a5761053a610c7e565b60200260200101518360018151811061055557610555610c7e565b60200260200101516105679190610ea0565b905061057963ffffffff891683610ec7565b96505f8260060b12801561059e575061059863ffffffff891683610f03565b60060b15155b156105b157866105ad81610f24565b9750505b5f6105c96001600160a01b0363ffffffff8b16610f45565b90506105e6640100000000600160c01b03602084901b1682610f77565b96505050505050509250929050565b5f6001600160801b03821115610628576040516306dfcc6560e41b815260806004820152602481018390526044016103ee565b5090565b5f8061063786610737565b90506001600160801b036001600160a01b038216116106bc575f6106646001600160a01b03831680610c2c565b9050836001600160a01b0316856001600160a01b03161061069c57610697600160c01b876001600160801b031683610a52565b6106b4565b6106b481876001600160801b0316600160c01b610a52565b92505061072e565b5f6106da6001600160a01b0383168068010000000000000000610a52565b9050836001600160a01b0316856001600160a01b0316106107125761070d600160801b876001600160801b031683610a52565b61072a565b61072a81876001600160801b0316600160801b610a52565b9250505b50949350505050565b5f805f8360020b1261074c578260020b610753565b8260020b5f035b9050620d89e8811115610779576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361078e57600160801b6107a0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156107d4576ffff97272373d413259a46990580e213a0260801c5b60048216156107f3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610812576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610831576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610850576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561086f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561088e576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156108ae576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156108ce576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156108ee576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561090e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561092e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561094e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561096e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561098e576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156109af576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156109cf576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156109ee576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610a0b576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315610a2a57805f1981610a2657610a26610c43565b0490505b640100000000810615610a3e576001610a40565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f03610a86575f8411610a7b575f80fd5b508290049050610af6565b808411610a91575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f60208284031215610b0d575f80fd5b815160ff81168114610af6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610b6b57815f1904821115610b5157610b51610b1d565b80851615610b5e57918102915b93841c9390800290610b36565b509250929050565b5f82610b8157506001610c0d565b81610b8d57505f610c0d565b8160018114610ba35760028114610bad57610bc9565b6001915050610c0d565b60ff841115610bbe57610bbe610b1d565b50506001821b610c0d565b5060208310610133831016604e8410600b8410161715610bec575081810a610c0d565b610bf68383610b31565b805f1904821115610c0957610c09610b1d565b0290505b92915050565b5f610af660ff841683610b73565b5f610af68383610b73565b8082028115828204841417610c0d57610c0d610b1d565b634e487b7160e01b5f52601260045260245ffd5b5f82610c6557610c65610c43565b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015610ccf57835163ffffffff1683529284019291840191600101610cad565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610d0457610d04610c6a565b604052919050565b5f67ffffffffffffffff821115610d2557610d25610c6a565b5060051b60200190565b5f82601f830112610d3e575f80fd5b81516020610d53610d4e83610d0c565b610cdb565b8083825260208201915060208460051b870101935086841115610d74575f80fd5b602086015b84811015610da45780516001600160a01b0381168114610d97575f80fd5b8352918301918301610d79565b509695505050505050565b5f8060408385031215610dc0575f80fd5b825167ffffffffffffffff80821115610dd7575f80fd5b818501915085601f830112610dea575f80fd5b81516020610dfa610d4e83610d0c565b82815260059290921b84018101918181019089841115610e18575f80fd5b948201945b83861015610e445785518060060b8114610e35575f80fd5b82529482019490820190610e1d565b91880151919650909350505080821115610e5c575f80fd5b50610e6985828601610d2f565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610c0d57610c0d610b1d565b6001600160a01b03828116828216039080821115610ec057610ec0610b1d565b5092915050565b5f8160060b8360060b80610edd57610edd610c43565b667fffffffffffff1982145f1982141615610efa57610efa610b1d565b90059392505050565b5f8260060b80610f1557610f15610c43565b808360060b0791505092915050565b5f8160020b627fffff198103610f3c57610f3c610b1d565b5f190192915050565b6001600160c01b03828116828216818102831692918115828504821417610f6e57610f6e610b1d565b50505092915050565b5f6001600160c01b0383811680610f9057610f90610c43565b9216919091049291505056fea2646970667358221220115ee402a8564b5c9e83f4a5b9a3e910a0432f5334f174021d626dee8bf1adec64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000120000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000d0b53d9277642d899df5c87a3966a349a798f22400000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000002" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c1e317", + "logs": [ + { + "address": "0x1d4dab3f27c7f656b6323c1d6ef713b48a8f72f1", + "topics": [ + "0xac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000012d", + "blockHash": "0x2d77636a8baab8fd52a49c4ceefc3dd97e1ef3963531de093caa78fcf07f3dd4", + "blockNumber": "0x16d0479", + "blockTimestamp": "0x676465d5", + "transactionHash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionIndex": "0x58", + "logIndex": "0x20f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000002000000000800000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa209fbb90eefb2bb3b08cc0a8ab2a7fcac2d388135c3cd4ee5b7c121cf2f6b89", + "transactionIndex": "0x58", + "blockHash": "0x2d77636a8baab8fd52a49c4ceefc3dd97e1ef3963531de093caa78fcf07f3dd4", + "blockNumber": "0x16d0479", + "gasUsed": "0x7b101d", + "effectiveGasPrice": "0xaa51ec", + "from": "0xa5040d66a8e609fce17d115f4726a2311331bb21", + "to": null, + "contractAddress": "0x19960f5ffa579a0573bf9b9d0d3258c34f9f69a1", + "l1BaseFeeScalar": "0x8dd", + "l1BlobBaseFee": "0xb26f1877d6", + "l1BlobBaseFeeScalar": "0x101c12", + "l1Fee": "0x1c043d386748a3", + "l1GasPrice": "0x12ff2e6fdf", + "l1GasUsed": "0x25ef0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1734633175, + "chain": 8453, + "commit": "e4f76f5" +} \ No newline at end of file diff --git a/script/BaseScript.sol b/script/BaseScript.sol index 6beb19e9..96c03bac 100644 --- a/script/BaseScript.sol +++ b/script/BaseScript.sol @@ -11,6 +11,7 @@ import {ISizeV1_5} from "@src/v1.5/interfaces/ISizeV1_5.sol"; import {Script} from "forge-std/Script.sol"; import {stdJson} from "forge-std/StdJson.sol"; import {Vm} from "forge-std/Vm.sol"; +import {console2 as console} from "forge-std/console2.sol"; struct Deployment { string name; diff --git a/script/DeployPriceFeedUniswapV3TWAPChainlink.s.sol b/script/DeployPriceFeedUniswapV3TWAPChainlink.s.sol new file mode 100644 index 00000000..142e2a63 --- /dev/null +++ b/script/DeployPriceFeedUniswapV3TWAPChainlink.s.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; +import {SizeFactory} from "@src/v1.5/SizeFactory.sol"; +import {console2 as console} from "forge-std/Script.sol"; + +import {BaseScript, Deployment, Parameter} from "@script/BaseScript.sol"; +import {Deploy} from "@script/Deploy.sol"; +import {NetworkConfiguration, Networks} from "@script/Networks.sol"; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; + +import {PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; +import {PriceFeedUniswapV3TWAPChainlink} from "@src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol"; + +contract DeployPriceFeedUniswapV3TWAPChainlinkScript is BaseScript, Networks, Deploy { + address deployer; + + function setUp() public {} + + modifier parseEnv() { + deployer = vm.envOr("DEPLOYER_ADDRESS", vm.addr(vm.deriveKey(TEST_MNEMONIC, 0))); + _; + } + + function run() public parseEnv broadcast { + console.log("[PriceFeedUniswapV3TWAPChainlink] deploying..."); + + (AggregatorV3Interface sequencerUptimeFeed, PriceFeedParams memory base, PriceFeedParams memory quote) = + priceFeedVirtualUsdcBaseMainnet(); + + PriceFeedUniswapV3TWAPChainlink priceFeedUniswapV3TWAPChainlink = + new PriceFeedUniswapV3TWAPChainlink(sequencerUptimeFeed, base, quote); + + console.log("[PriceFeedUniswapV3TWAPChainlink] priceFeed", address(priceFeedUniswapV3TWAPChainlink)); + + console.log("[PriceFeedUniswapV3TWAPChainlink] done"); + } +} diff --git a/script/GetPriceFeedUniswapV3TWAPChainlinkHistoricalData.s.sol b/script/GetPriceFeedUniswapV3TWAPChainlinkHistoricalData.s.sol new file mode 100644 index 00000000..327ab472 --- /dev/null +++ b/script/GetPriceFeedUniswapV3TWAPChainlinkHistoricalData.s.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; +import {SizeFactory} from "@src/v1.5/SizeFactory.sol"; +import {console2 as console} from "forge-std/Script.sol"; + +import {BaseScript, Deployment, Parameter} from "@script/BaseScript.sol"; +import {Deploy} from "@script/Deploy.sol"; +import {NetworkConfiguration, Networks} from "@script/Networks.sol"; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; + +import {PriceFeed, PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; + +import {UniswapV3PriceFeed} from "@src/oracle/v1.5.1/adapters/UniswapV3PriceFeed.sol"; +import {PriceFeedUniswapV3TWAPChainlink} from "@src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol"; + +contract GetPriceFeedUniswapV3TWAPChainlinkHistoricalDataScript is BaseScript, Networks, Deploy { + function setUp() public {} + + function run() public broadcast { + console.log("GetPriceFeedUniswapV3TWAPChainlinkHistoricalData..."); + + uint256 toBlock = vm.getBlockNumber(); + uint256 fromBlock = 23921785; + uint256 steps = 30; + + vm.rollFork(fromBlock); + + PriceFeedUniswapV3TWAPChainlink priceFeedUniswapV3TWAPChainlink = + PriceFeedUniswapV3TWAPChainlink(0x19960f5ffa579a0573BF9b9D0D3258C34F9f69a1); + UniswapV3PriceFeed uniswapV3PriceFeed = priceFeedUniswapV3TWAPChainlink.basePriceFeed(); + PriceFeed priceFeed = priceFeedUniswapV3TWAPChainlink.quotePriceFeed(); + + console.log("timestamp,base,quote"); + for (uint256 b = fromBlock; b < toBlock; b += steps) { + vm.rollFork(b); + + uint256 base = uniswapV3PriceFeed.getPrice(); + uint256 quote = priceFeed.getPrice(); + console.log("%s,%s,%s", block.timestamp, base, quote); + } + } +} diff --git a/script/Networks.sol b/script/Networks.sol index 7b33a2df..b70eae88 100644 --- a/script/Networks.sol +++ b/script/Networks.sol @@ -248,4 +248,36 @@ abstract contract Networks { revert InvalidNetworkConfiguration(networkConfiguration); } } + + function priceFeedVirtualUsdcBaseMainnet() + public + pure + returns (AggregatorV3Interface sequencerUptimeFeed, PriceFeedParams memory base, PriceFeedParams memory quote) + { + sequencerUptimeFeed = AggregatorV3Interface(0xBCF85224fc0756B9Fa45aA7892530B47e10b6433); + base = PriceFeedParams({ + uniswapV3Pool: IUniswapV3Pool(0x1D4daB3f27C7F656b6323C1D6Ef713b48A8f72F1), // VIRTUAL/WETH Uniswap v3 0.3% pool + twapWindow: 10 minutes, + averageBlockTime: 2 seconds, + baseToken: IERC20Metadata(0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b), // VIRTUAL + quoteToken: IERC20Metadata(0x4200000000000000000000000000000000000006), // WETH + baseAggregator: AggregatorV3Interface(address(0)), + quoteAggregator: AggregatorV3Interface(address(0)), + baseStalePriceInterval: 0, + quoteStalePriceInterval: 0, + sequencerUptimeFeed: AggregatorV3Interface(address(0)) + }); + quote = PriceFeedParams({ + uniswapV3Pool: IUniswapV3Pool(0xd0b53D9277642d899DF5C87A3966A349A798F224), // WETH/USDC Uniswap v3 0.05% pool + twapWindow: 10 minutes, + averageBlockTime: 2 seconds, + baseToken: IERC20Metadata(0x4200000000000000000000000000000000000006), // WETH + quoteToken: IERC20Metadata(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913), // USDC + baseAggregator: AggregatorV3Interface(0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70), + quoteAggregator: AggregatorV3Interface(0x7e860098F58bBFC8648a4311b374B1D669a2bc6B), + baseStalePriceInterval: 1200 * 1.1e18 / 1e18, + quoteStalePriceInterval: 86400 * 1.1e18 / 1e18, + sequencerUptimeFeed: AggregatorV3Interface(0xBCF85224fc0756B9Fa45aA7892530B47e10b6433) + }); + } } diff --git a/script/UpgradeSizeFactory.s.sol b/script/UpgradeSizeFactory.s.sol index 679ca997..fafa3ef3 100644 --- a/script/UpgradeSizeFactory.s.sol +++ b/script/UpgradeSizeFactory.s.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.23; -import {SizeFactory} from "@src/v1.5/SizeFactory.sol"; -import {console} from "forge-std/Script.sol"; import {BaseScript} from "@script/BaseScript.sol"; import {Deploy} from "@script/Deploy.sol"; +import {SizeFactory} from "@src/v1.5/SizeFactory.sol"; +import {console} from "forge-std/Script.sol"; contract UpgradeSizeFactoryScript is BaseScript, Deploy { address deployer; diff --git a/src/interfaces/ISize.sol b/src/interfaces/ISize.sol index f5bb6b23..235bf2dd 100644 --- a/src/interfaces/ISize.sol +++ b/src/interfaces/ISize.sol @@ -31,7 +31,7 @@ import {SetUserConfigurationParams} from "@src/libraries/actions/SetUserConfigur import {ISizeAdmin} from "@src/interfaces/ISizeAdmin.sol"; import {ISizeV1_5} from "@src/v1.5/interfaces/ISizeV1_5.sol"; -string constant VERSION = "v1.5.1"; +string constant VERSION = "v1.5.2"; /// @title ISize /// @custom:security-contact security@size.credit diff --git a/src/oracle/v1.5.2/IPriceFeedV1_5_2.sol b/src/oracle/v1.5.2/IPriceFeedV1_5_2.sol new file mode 100644 index 00000000..9d62f714 --- /dev/null +++ b/src/oracle/v1.5.2/IPriceFeedV1_5_2.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {IPriceFeed} from "@src/oracle/IPriceFeed.sol"; + +/// @title IPriceFeedV1_5_2 +/// @custom:security-contact security@size.credit +/// @author Size (https://size.credit/) +interface IPriceFeedV1_5_2 is IPriceFeed { + /// @notice Returns the description of the price feed + function description() external view returns (string memory); +} diff --git a/src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol b/src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol new file mode 100644 index 00000000..181a546d --- /dev/null +++ b/src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; +import {Math} from "@src/libraries/Math.sol"; + +import {IPriceFeed} from "@src/oracle/IPriceFeed.sol"; + +import {PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; +import {PriceFeed} from "@src/oracle/v1.5.1/PriceFeed.sol"; +import {ChainlinkSequencerUptimeFeed} from "@src/oracle/v1.5.1/adapters/ChainlinkSequencerUptimeFeed.sol"; +import {UniswapV3PriceFeed} from "@src/oracle/v1.5.1/adapters/UniswapV3PriceFeed.sol"; +import {IPriceFeedV1_5_2} from "@src/oracle/v1.5.2/IPriceFeedV1_5_2.sol"; + +/// @title PriceFeedUniswapV3TWAPChainlink +/// @custom:security-contact security@size.credit +/// @author Size (https://size.credit/) +/// @notice A contract that provides the price of a `base` asset in terms of a `quote` asset, scaled to 18 decimals, +/// using Uniswap V3 for `base` and a IPriceFeedV1_5_1 for `quote` +/// The price is defined as `base * quote` +/// For example, this can be used to calculate the price of an ABC token for the ABC/USDC pair through +/// ABC/WETH via UniswapV3PriceFeed and WETH/USDC via IPriceFeedV1_5_1, ie, ABC/USDC = ABC/WETH * WETH/USDC +/// @dev `decimals` must be 18 to comply with Size contracts +/// `sequencerUptimeFeed` can be null for unsupported networks +/// In case the sequencer is down, `getPrice` reverts (see `ChainlinkSequencerUptimeFeed`) +/// This oracle should only be used for assets that are not supported by Chainlink +contract PriceFeedUniswapV3TWAPChainlink is IPriceFeedV1_5_2 { + /* solhint-disable */ + uint256 public constant decimals = 18; + ChainlinkSequencerUptimeFeed public immutable chainlinkSequencerUptimeFeed; + UniswapV3PriceFeed public immutable basePriceFeed; + PriceFeed public immutable quotePriceFeed; + /* solhint-enable */ + + constructor( + AggregatorV3Interface sequencerUptimeFeed, + PriceFeedParams memory basePriceFeedParams, + PriceFeedParams memory quotePriceFeedParams + ) { + chainlinkSequencerUptimeFeed = new ChainlinkSequencerUptimeFeed(sequencerUptimeFeed); + basePriceFeed = new UniswapV3PriceFeed( + decimals, + // other parameters of basePriceFeedParams are unused + basePriceFeedParams.baseToken, + basePriceFeedParams.quoteToken, + basePriceFeedParams.uniswapV3Pool, + basePriceFeedParams.twapWindow, + basePriceFeedParams.averageBlockTime + ); + + quotePriceFeed = new PriceFeed(quotePriceFeedParams); // uses 18 decimals + } + + function getPrice() external view override returns (uint256) { + chainlinkSequencerUptimeFeed.validateSequencerIsUp(); + + uint256 basePrice = basePriceFeed.getPrice(); + uint256 quotePrice = quotePriceFeed.getPrice(); + + return Math.mulDivDown(basePrice, quotePrice, 10 ** decimals); + } + + function description() external view override returns (string memory) { + return string.concat( + "PriceFeedUniswapV3TWAPChainlink | (", + basePriceFeed.baseToken().symbol(), + "/", + basePriceFeed.quoteToken().symbol(), + ") (Uniswap v3 TWAP) * ((", + quotePriceFeed.base().description(), + ") / (", + quotePriceFeed.quote().description(), + ")) (PriceFeed)" + ); + } +} diff --git a/src/v1.5/SizeFactory.sol b/src/v1.5/SizeFactory.sol index bf0cad90..1e69f229 100644 --- a/src/v1.5/SizeFactory.sol +++ b/src/v1.5/SizeFactory.sol @@ -26,6 +26,8 @@ import {NonTransferrableScaledTokenV1_5FactoryLibrary} from "@src/v1.5/libraries/NonTransferrableScaledTokenV1_5FactoryLibrary.sol"; import {PriceFeedFactoryLibrary} from "@src/v1.5/libraries/PriceFeedFactoryLibrary.sol"; +import {IPriceFeedV1_5_2} from "@src/oracle/v1.5.2/IPriceFeedV1_5_2.sol"; + import {PriceFeed, PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; import {NonTransferrableScaledTokenV1_5} from "@src/v1.5/token/NonTransferrableScaledTokenV1_5.sol"; @@ -239,8 +241,17 @@ contract SizeFactory is ISizeFactory, Ownable2StepUpgradeable, UUPSUpgradeable { // slither-disable-start calls-loop for (uint256 i = 0; i < descriptions.length; i++) { PriceFeed priceFeed = PriceFeed(priceFeeds.at(i)); - descriptions[i] = - string.concat("PriceFeed | ", priceFeed.base().description(), " | ", priceFeed.quote().description()); + (bool success, bytes memory data) = + address(priceFeed).staticcall(abi.encodeWithSelector(IPriceFeedV1_5_2.description.selector)); + if (success) { + // IPriceFeedV1_5_2 + descriptions[i] = abi.decode(data, (string)); + } else { + // IPriceFeedV1_5 + descriptions[i] = string.concat( + "PriceFeed | ", priceFeed.base().description(), " | ", priceFeed.quote().description() + ); + } } // slither-disable-end calls-loop } diff --git a/test/fork/oracle/ChainlinkGoesDownUniswapIsUsedAsFallback.t.sol b/test/fork/oracle/ForkChainlinkGoesDownUniswapIsUsedAsFallback.t.sol similarity index 93% rename from test/fork/oracle/ChainlinkGoesDownUniswapIsUsedAsFallback.t.sol rename to test/fork/oracle/ForkChainlinkGoesDownUniswapIsUsedAsFallback.t.sol index cfd3a8dd..a6bb5275 100644 --- a/test/fork/oracle/ChainlinkGoesDownUniswapIsUsedAsFallback.t.sol +++ b/test/fork/oracle/ForkChainlinkGoesDownUniswapIsUsedAsFallback.t.sol @@ -18,7 +18,7 @@ import {Test} from "forge-std/Test.sol"; import {console} from "forge-std/console.sol"; // On Oct-18-2024, Chainlink cbBTC/USD price feed went down for over 6h -contract ChainlinkGoesDownUniswapIsUsedAsFallbackTest is ForkTest { +contract ForkChainlinkGoesDownUniswapIsUsedAsFallbackTest is ForkTest { // https://basescan.org/tx/0x2797a77761aa4eda81640b54faa9fe19608c563e146eb566b3fdadea5941070e (aggregatorRoundId 397 executed at Oct-18-2024 03:37:21 PM +UTC) uint256 blockNumberChainlinkAggregatorRoundId397 = 21238247; // https://basescan.org/tx/0x5861fd0da0cdc07265494e4e7f80608f00f4e2e4211735ee06918f8330569786 (aggregatorRoundId 398 executed at Oct-18-2024 10:05:33 PM +UTC) @@ -41,7 +41,7 @@ contract ChainlinkGoesDownUniswapIsUsedAsFallbackTest is ForkTest { AggregatorV3Interface(PriceFeedV1_5(address(sizeCbBtcUsdc.oracle().priceFeed)).base()).latestRoundData(); } - function testFork_ChainlinkGoesDownUniswapIsUsedAsFallbackTest_without_fallback_wrong_stale_interval() public { + function testFork_ForkChainlinkGoesDownUniswapIsUsedAsFallbackTest_without_fallback_wrong_stale_interval() public { vm.rollFork(blockNumberChainlinkAggregatorRoundId398 - 1); // Chainlink is down uint256 baseStalePriceInterval = @@ -54,7 +54,9 @@ contract ChainlinkGoesDownUniswapIsUsedAsFallbackTest is ForkTest { assertGt(IPriceFeed(address(sizeCbBtcUsdc.oracle().priceFeed)).getPrice(), 0); } - function testFork_ChainlinkGoesDownUniswapIsUsedAsFallbackTest_without_fallback_correct_stale_interval() public { + function testFork_ForkChainlinkGoesDownUniswapIsUsedAsFallbackTest_without_fallback_correct_stale_interval() + public + { AggregatorV3Interface base = PriceFeedV1_5(address(sizeCbBtcUsdc.oracle().priceFeed)).base(); AggregatorV3Interface quote = PriceFeedV1_5(address(sizeCbBtcUsdc.oracle().priceFeed)).quote(); AggregatorV3Interface sequencerUptimeFeed = AggregatorV3Interface(address(0)); @@ -80,7 +82,7 @@ contract ChainlinkGoesDownUniswapIsUsedAsFallbackTest is ForkTest { assertGt(v1_5PriceFeedCorrectStaleInterval.getPrice(), 0); } - function testFork_ChainlinkGoesDownUniswapIsUsedAsFallbackTest_with_fallback_correct_stale_interval() public { + function testFork_ForkChainlinkGoesDownUniswapIsUsedAsFallbackTest_with_fallback_correct_stale_interval() public { AggregatorV3Interface baseAggregator = PriceFeedV1_5(address(sizeCbBtcUsdc.oracle().priceFeed)).base(); AggregatorV3Interface quoteAggregator = PriceFeedV1_5(address(sizeCbBtcUsdc.oracle().priceFeed)).quote(); AggregatorV3Interface sequencerUptimeFeed = AggregatorV3Interface(address(0)); diff --git a/test/fork/oracle/ForkPriceFeedUniswapV3TWAPChainlinkTest.t.sol b/test/fork/oracle/ForkPriceFeedUniswapV3TWAPChainlinkTest.t.sol new file mode 100644 index 00000000..13fa316b --- /dev/null +++ b/test/fork/oracle/ForkPriceFeedUniswapV3TWAPChainlinkTest.t.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; + +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {ISize} from "@src/interfaces/ISize.sol"; +import {Errors} from "@src/libraries/Errors.sol"; +import {UpdateConfigParams} from "@src/libraries/actions/UpdateConfig.sol"; +import {IPriceFeed} from "@src/oracle/IPriceFeed.sol"; +import {PriceFeedV1_5} from "@src/oracle/deprecated/PriceFeedV1_5.sol"; +import {PriceFeed, PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; +import {BaseTest} from "@test/BaseTest.sol"; +import {ForkTest} from "@test/fork/ForkTest.sol"; + +import {IUniswapV3Pool} from "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol"; +import {Test} from "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; + +import {PriceFeedUniswapV3TWAPChainlink} from "@src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol"; + +import {PriceFeedUniswapV3TWAPChainlinkTest} from "@test/local/oracle/PriceFeedUniswapV3TWAPChainlink.t.sol"; + +import {Networks} from "@script/Networks.sol"; + +contract ForkPriceFeedUniswapV3TWAPChainlinkTest is ForkTest, Networks { + PriceFeedUniswapV3TWAPChainlink public priceFeedVirtualToUsdc; + + function setUp() public override(ForkTest) { + super.setUp(); + vm.createSelectFork("base"); + + // 2024-12-19 16h20 + vm.rollFork(23917935); + + (AggregatorV3Interface sequencerUptimeFeed, PriceFeedParams memory base, PriceFeedParams memory quote) = + priceFeedVirtualUsdcBaseMainnet(); + + priceFeedVirtualToUsdc = new PriceFeedUniswapV3TWAPChainlink(sequencerUptimeFeed, base, quote); + } + + function testFork_ForkPriceFeedUniswapV3TWAPChainlink_getPrice() public view { + uint256 price = priceFeedVirtualToUsdc.getPrice(); + assertEqApprox(price, 2.359e18, 0.001e18); + } + + function testFork_PriceFeedUniswapV3TWAPChainlink_description() public view { + assertEq( + priceFeedVirtualToUsdc.description(), + "PriceFeedUniswapV3TWAPChainlink | (VIRTUAL/WETH) (Uniswap v3 TWAP) * ((ETH / USD) / (USDC / USD)) (PriceFeed)" + ); + } +} diff --git a/test/local/oracle/PriceFeed.t.sol b/test/local/oracle/PriceFeed.t.sol index 66612f4b..4c3865e7 100644 --- a/test/local/oracle/PriceFeed.t.sol +++ b/test/local/oracle/PriceFeed.t.sol @@ -117,6 +117,13 @@ contract PriceFeedTest is BaseTest { ); } + function test_PriceFeed_v1_5() public view { + assertEq(address(priceFeedEthToUsd.base()), address(ethToUsd)); + assertEq(address(priceFeedEthToUsd.quote()), address(usdcToUsd)); + assertEq(priceFeedEthToUsd.baseStalePriceInterval(), 3600); + assertEq(priceFeedEthToUsd.quoteStalePriceInterval(), 86400); + } + function test_PriceFeed_getPrice_success() public view { assertEq(priceFeedEthToUsd.getPrice(), Math.mulDivDown(uint256(2200.12e18), 1e18, uint256(0.9999e18))); assertEq(priceFeedStethToEth.getPrice(), uint256(STETH_TO_ETH)); diff --git a/test/local/oracle/PriceFeedUniswapV3TWAPChainlink.t.sol b/test/local/oracle/PriceFeedUniswapV3TWAPChainlink.t.sol new file mode 100644 index 00000000..c46dfcdb --- /dev/null +++ b/test/local/oracle/PriceFeedUniswapV3TWAPChainlink.t.sol @@ -0,0 +1,171 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.23; + +import {MockERC20} from "forge-std/mocks/MockERC20.sol"; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; +import {MockV3Aggregator} from "@chainlink/contracts/src/v0.8/tests/MockV3Aggregator.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {Errors} from "@src/libraries/Errors.sol"; +import {Math} from "@src/libraries/Math.sol"; +import {PriceFeed, PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; +import {PriceFeedUniswapV3TWAPChainlink} from "@src/oracle/v1.5.2/PriceFeedUniswapV3TWAPChainlink.sol"; +import {BaseTest} from "@test/BaseTest.sol"; +import {AssertsHelper} from "@test/helpers/AssertsHelper.sol"; +import {USDC} from "@test/mocks/USDC.sol"; +import {WETH} from "@test/mocks/WETH.sol"; +import {IUniswapV3Factory} from "@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol"; +import {IUniswapV3Pool} from "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol"; + +import {IUniswapV3PoolActions} from "@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol"; +import {IUniswapV3PoolDerivedState} from "@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol"; + +contract PriceFeedUniswapV3TWAPChainlinkTest is BaseTest { + PriceFeedUniswapV3TWAPChainlink public priceFeedVirtualToUsdc; + MockV3Aggregator public ethToUsd; + MockV3Aggregator public usdcToUsd; + MockV3Aggregator public sequencerUptimeFeed; + int256 private constant SEQUENCER_UP = 0; + int256 private constant SEQUENCER_DOWN = 1; + + // values as of 2024-12-19 16:20 UTC + int256 public constant ETH_TO_USD = 3595.95e8; + uint8 public constant ETH_TO_USD_DECIMALS = 8; + int256 public constant USDC_TO_USD = 0.99996e8; + uint8 public constant USDC_TO_USD_DECIMALS = 8; + + IUniswapV3Factory public uniswapV3Factory; + IUniswapV3Pool public poolVirtualWeth; + IUniswapV3Pool public poolWethUsdc; + uint32 constant averageBlockTime = 2; + uint32 constant twapWindow = 5 minutes; + + // in UniswapV3, the order of the tokens addresses is important, so we use the same addresses to mock call results + address _weth = 0x4200000000000000000000000000000000000006; + address _virtual = 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b; + address _usdc = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913; + + function setUp() public override { + vm.warp(block.timestamp + 365 days); + uniswapV3Factory = _deployUniswapV3Factory(); + vm.warp(block.timestamp + 13 days); + + vm.etch(_weth, address(new WETH()).code); + vm.label(_weth, "WETH"); + vm.etch(_virtual, address(new MockERC20()).code); + MockERC20(_virtual).initialize("Virtual Protocol", "VIRTUAL", 18); + vm.label(_virtual, "VIRTUAL"); + vm.etch(_usdc, address(new USDC(address(this))).code); + vm.label(_usdc, "USDC"); + + // https://github.com/foundry-rs/foundry/issues/5579 + vm.mockCall(address(_weth), abi.encodeWithSelector(IERC20Metadata.symbol.selector), abi.encode("WETH")); + vm.mockCall(address(_usdc), abi.encodeWithSelector(IERC20Metadata.symbol.selector), abi.encode("USDC")); + vm.mockCall(address(_virtual), abi.encodeWithSelector(IERC20Metadata.symbol.selector), abi.encode("VIRTUAL")); + + poolWethUsdc = IUniswapV3Pool(uniswapV3Factory.createPool(address(_weth), address(_usdc), 3000)); + poolVirtualWeth = IUniswapV3Pool(uniswapV3Factory.createPool(address(_virtual), address(_weth), 3000)); + vm.mockCall( + address(poolWethUsdc), + abi.encodeWithSelector(IUniswapV3PoolActions.increaseObservationCardinalityNext.selector), + abi.encode("") + ); + vm.mockCall( + address(poolVirtualWeth), + abi.encodeWithSelector(IUniswapV3PoolActions.increaseObservationCardinalityNext.selector), + abi.encode("") + ); + + int56[] memory tickCumulativesWethUsdc = new int56[](2); + tickCumulativesWethUsdc[0] = int56(-6810345207908); + tickCumulativesWethUsdc[1] = int56(-6810403540208); + + uint160[] memory secondsPerLiquidityCumulativeX128sWethUsdc = new uint160[](2); + secondsPerLiquidityCumulativeX128sWethUsdc[0] = uint160(136458673653206152249627071926630476655557621); + secondsPerLiquidityCumulativeX128sWethUsdc[1] = uint160(136458673653206152249988198516018087243952851); + + vm.mockCall( + address(poolWethUsdc), + abi.encodeWithSelector(IUniswapV3PoolDerivedState.observe.selector), + abi.encode(tickCumulativesWethUsdc, secondsPerLiquidityCumulativeX128sWethUsdc) + ); + + int56[] memory tickCumulativesVirtualWeth = new int56[](2); + tickCumulativesVirtualWeth[0] = int56(-387999144830); + tickCumulativesVirtualWeth[1] = int56(-388021132048); + + uint160[] memory secondsPerLiquidityCumulativeX128sVirtualWeth = new uint160[](2); + secondsPerLiquidityCumulativeX128sVirtualWeth[0] = uint160(5240348450582452778100995592353335804406477); + secondsPerLiquidityCumulativeX128sVirtualWeth[1] = uint160(5240348450582452778100996399352353438353676); + + vm.mockCall( + address(poolVirtualWeth), + abi.encodeWithSelector(IUniswapV3PoolDerivedState.observe.selector), + abi.encode(tickCumulativesVirtualWeth, secondsPerLiquidityCumulativeX128sVirtualWeth) + ); + + sequencerUptimeFeed = new MockV3Aggregator(0, SEQUENCER_UP); + vm.warp(block.timestamp + 1 days); + ethToUsd = new MockV3Aggregator(ETH_TO_USD_DECIMALS, ETH_TO_USD); + usdcToUsd = new MockV3Aggregator(USDC_TO_USD_DECIMALS, USDC_TO_USD); + + vm.mockCall( + address(ethToUsd), + abi.encodeWithSelector(AggregatorV3Interface.description.selector), + abi.encode("ETH / USD") + ); + vm.mockCall( + address(usdcToUsd), + abi.encodeWithSelector(AggregatorV3Interface.description.selector), + abi.encode("USDC / USD") + ); + + priceFeedVirtualToUsdc = new PriceFeedUniswapV3TWAPChainlink( + sequencerUptimeFeed, + PriceFeedParams({ + uniswapV3Pool: poolVirtualWeth, + twapWindow: twapWindow, + averageBlockTime: averageBlockTime, + baseToken: IERC20Metadata(_virtual), + quoteToken: IERC20Metadata(_weth), + baseAggregator: AggregatorV3Interface(address(0)), + quoteAggregator: AggregatorV3Interface(address(0)), + baseStalePriceInterval: 0, + quoteStalePriceInterval: 0, + sequencerUptimeFeed: AggregatorV3Interface(address(0)) + }), + PriceFeedParams({ + uniswapV3Pool: poolWethUsdc, + twapWindow: twapWindow, + averageBlockTime: averageBlockTime, + baseToken: IERC20Metadata(_weth), + quoteToken: IERC20Metadata(_usdc), + baseAggregator: ethToUsd, + quoteAggregator: usdcToUsd, + baseStalePriceInterval: 3600, + quoteStalePriceInterval: 86400, + sequencerUptimeFeed: sequencerUptimeFeed + }) + ); + } + + function test_PriceFeedUniswapV3TWAPChainlink_getPrice_success() public view { + // see https://coinmarketcap.com/currencies/virtual-protocol/historical-data/ at 2024-12-19 16:20 UTC + assertEqApprox(priceFeedVirtualToUsdc.getPrice(), 2.36e18, 0.01e18); + assertEq(priceFeedVirtualToUsdc.decimals(), 18); + } + + function test_PriceFeedUniswapV3TWAPChainlink_getPrice_is_consistent() public view { + uint256 price_1 = priceFeedVirtualToUsdc.getPrice(); + uint256 price_2 = priceFeedVirtualToUsdc.getPrice(); + uint256 price_3 = priceFeedVirtualToUsdc.getPrice(); + assertEq(price_1, price_2, price_3); + } + + function test_PriceFeedUniswapV3TWAPChainlink_description() public view { + assertEq( + priceFeedVirtualToUsdc.description(), + "PriceFeedUniswapV3TWAPChainlink | (VIRTUAL/WETH) (Uniswap v3 TWAP) * ((ETH / USD) / (USDC / USD)) (PriceFeed)" + ); + } +} diff --git a/test/local/v1.5/SizeFactory.t.sol b/test/local/v1.5/SizeFactory.t.sol index e7d6f49a..6908fe08 100644 --- a/test/local/v1.5/SizeFactory.t.sol +++ b/test/local/v1.5/SizeFactory.t.sol @@ -7,6 +7,8 @@ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import {MockERC20} from "@solady/../test/utils/mocks/MockERC20.sol"; import {ISize} from "@src/interfaces/ISize.sol"; + +import {VERSION} from "@src/interfaces/ISize.sol"; import {Errors} from "@src/libraries/Errors.sol"; import {PriceFeed, PriceFeedParams} from "@src/oracle/v1.5.1/PriceFeed.sol"; import {SizeFactory} from "@src/v1.5/SizeFactory.sol"; @@ -59,22 +61,22 @@ contract SizeFactoryTest is BaseTest { function test_SizeFactory_set_2_existing_markets_1() public { assertEq(address(sizeFactory.getMarket(0)), address(size)); - assertEq(sizeFactory.getMarketDescriptions()[0], "Size | WETH | USDC | 130 | v1.5.1"); + assertEq(sizeFactory.getMarketDescriptions()[0], string.concat("Size | WETH | USDC | 130 | ", VERSION)); setupLocalGenericMarket(owner, feeRecipient, 60576e18, 0.9999e18, 8, 6, false, false); assertEq(address(sizeFactory.getMarket(1)), address(size)); - assertEq(sizeFactory.getMarketDescriptions()[1], "Size | CTK | BTK | 130 | v1.5.1"); + assertEq(sizeFactory.getMarketDescriptions()[1], string.concat("Size | CTK | BTK | 130 | ", VERSION)); } function test_SizeFactory_set_2_existing_markets_add_3rd_market() public { assertEq(address(sizeFactory.getMarket(0)), address(size)); - assertEq(sizeFactory.getMarketDescriptions()[0], "Size | WETH | USDC | 130 | v1.5.1"); + assertEq(sizeFactory.getMarketDescriptions()[0], string.concat("Size | WETH | USDC | 130 | ", VERSION)); setupLocalGenericMarket(owner, feeRecipient, 60576e18, 0.9999e18, 8, 6, false, false); assertEq(address(sizeFactory.getMarket(1)), address(size)); - assertEq(sizeFactory.getMarketDescriptions()[1], "Size | CTK | BTK | 130 | v1.5.1"); + assertEq(sizeFactory.getMarketDescriptions()[1], string.concat("Size | CTK | BTK | 130 | ", VERSION)); d.underlyingCollateralToken = address(new MockERC20("Liquid staked Ether 2.0", "stETH", 18)); d.underlyingBorrowToken = address(weth); @@ -89,7 +91,7 @@ contract SizeFactoryTest is BaseTest { assertTrue(address(markets[i]) != address(0)); assertTrue(markets[i] != markets[i + 1]); } - assertEq(sizeFactory.getMarketDescriptions()[2], "Size | stETH | WETH | 125 | v1.5.1"); + assertEq(sizeFactory.getMarketDescriptions()[2], string.concat("Size | stETH | WETH | 125 | ", VERSION)); } function test_SizeFactory_set_2_existing_markets_add_3rd_market_remove_1st_market_tryRemove_unexistent_market() @@ -324,7 +326,7 @@ contract SizeFactoryTest is BaseTest { string[] memory descriptions = sizeFactory.getMarketDescriptions(); assertEq(descriptions.length, 3); - assertEq(descriptions[2], "Size | MTA | MTB | 120 | v1.5.1"); + assertEq(descriptions[2], string.concat("Size | MTA | MTB | 120 | ", VERSION)); } function test_SizeFactory_getPriceFeedDescriptions() public { @@ -369,7 +371,7 @@ contract SizeFactoryTest is BaseTest { function test_SizeFactory_version() public view { string memory version = sizeFactory.version(); - assertEq(version, "v1.5.1"); + assertEq(version, VERSION); } function test_SizeFactory_addPriceFeed_reverts_on_null_address() public {