diff --git a/crates/node/assets/zone-dev-genesis.json b/crates/node/assets/zone-dev-genesis.json index bd44c5ec8..52afa7637 100644 --- a/crates/node/assets/zone-dev-genesis.json +++ b/crates/node/assets/zone-dev-genesis.json @@ -138,5 +138,5 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x42", "timestamp": "0x0", - "zoneFactoryBytecode": "0x60808060405234610138575f805463ffffffff191660011781556003600755600680546001600160a01b03191633908117909155907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36101a28181016001600160401b03811183821017610124578291614c28833903905ff08015610119576001600160a01b03165f8181526003602052604090819020805460ff19166001179055600480546001600160a01b031916909217909155516105a2808201906001600160401b03821183831017610124576020918391614dca83393081520301905ff0801561011957600580546001600160a01b0319166001600160a01b0392909216919091179055604051614aeb908161013d8239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301b290d314610edc575080632b7ac3f314610eb45780632d45796a146104815780633cb747bf1461045857806374134d371461043a57806376628f83146103f85780638da5cb5b146103cf57806390b7f6fd14610174578063eee83499146101275763f2fde38b1461008c575f80fd5b34610124576020366003190112610124576004356001600160a01b03811690819003610122576006546001600160a01b0381169033829003610113578215610104576001600160a01b03191682176006557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6349e27cff60e01b8452600484fd5b6330cd747160e01b8452600484fd5b505b80fd5b50346101245780600319360112610124575f1963ffffffff825416019063ffffffff82116101605760208263ffffffff60405191168152f35b634e487b7160e01b81526011600452602490fd5b50346101245760203660031901126101245760043563ffffffff81168091036101225760606101206040516101a881610f2e565b84815284602082015284604082015284838201528460808201528460a08201528460c08201528460e0820152846101008201520152815260016020526040812090604051906101f682610f2e565b825463ffffffff811683526001600160a01b03602091821c811691840191825260018501548116604080860191825260028701548316606087019081526003880154841660808801908152600489015490941660a08801908152600589015460c0890190815260068a015460e08a0190815260078b01546001600160401b03166101008b0190815294516008909b018054989b989597919692959394919391929189918b91906102a582610fb1565b80855291600181169081156103b15750600114610377575b5050036102ca9089610f4a565b6101208a81019889526040805160208082529c5163ffffffff168d8201529c516001600160a01b03908116918e01919091529151821660608d01529151811660808c01529151821660a08b015291511660c0890152905160e0880152905161010087015290516001600160401b031690850152516101408085015280516101608501819052849390929183910161018085015e8183016101800152601f1990601f01168101036101800190f35b8c5260208c208c92505b81831061039657505081016020015f806102bd565b80602092948385600194549201015201910190918a92610381565b9150506020925060ff191682840152151560051b8201015f806102bd565b50346101245780600319360112610124576006546040516001600160a01b039091168152602090f35b5034610124576020366003190112610124576004356001600160a01b038116908190036101225760408260ff9260209452600384522054166040519015158152f35b5034610124578060031936011261012457602060405162e4e1c08152f35b50346101245780600319360112610124576005546040516001600160a01b039091168152602090f35b5034610c3c576020366003190112610c3c576001600160401b0360043511610c3c5761010060043536036003190112610c3c576006546001600160a01b03163303610ea5576104d4600435600401610f1a565b6040516335ec42c960e01b81526001600160a01b03909116600482015260208160248161083f60921b5afa908115610c31575f91610e6a575b5015610e5b576001600160a01b03610529600435602401610f1a565b1615610e4c576001600160a01b03610545600435604401610f1a565b1615610e3d576001600160a01b03610561600435606401610f1a565b165f52600360205260ff60405f20541615610e2e5762e4e1c05a10610e1f575f5463ffffffff80821614610e1057600163ffffffff82160163ffffffff8111610dfc5763ffffffff1663ffffffff198216175f5560075460018101808211610dfc57600755606081610c54575050604051606b60f91b6020820152602560fa1b60218201523060601b6022820152600160ff1b603682015260178152610608603782610f4a565b60018060a01b03906020815191012016604051613acc8082018281106001600160401b03821117610c40578291610fea833903905ff0908115610c3157610653600435600401610f1a565b6005546001600160a01b031661066d600435602401610f1a565b61067b604460043501610f1a565b610689606460043501610f1a565b9061069860c460043501610f6b565b926106ad60e460043501600435600401610f7f565b91906001600160a01b038a163b15610c3c576001600160401b0363ffffffff96610144968d9686955f9b6040519d8e9c8d9b633fd2490760e01b8d521660048c015260018060a01b031660248b015260448a015260018060a01b0316606489015260018060a01b0316608488015260018060a01b031660a48701526084600435013560c48701521660e485015261012061010485015281610124850152848401378181018301859052601f01601f19168101030181836001600160a01b0388165af18015610c3157610c1c575b506001600160a01b03821603610bc057610798600435600401610f1a565b6107a6602460043501610f1a565b6107b4604460043501610f1a565b906001600160401b036107cb606460043501610f1a565b6107d960c460043501610f6b565b906107ee60e460043501600435600401610f7f565b959094604051976107fe89610f2e565b63ffffffff8b1689526001600160a01b038a811660208b015290811660408a0152908116606089015290811660808801521660a0860152600435608481013560c087015260a4013560e0860152166101008401526001600160401b038211610ba85785906040519261087a6020601f19601f8401160185610f4a565b8084523681830111610bbc57806020928386013783010152610120820190815263ffffffff848116865260016020818152604080892086518154848901516001600160c01b031990911691909616179490921b640100000000600160c01b03169390931781559184015190820180546001600160a01b03199081166001600160a01b0393841617909155606085015160028401805483169184169190911790556080850151600384018054831691841691909117905560a0850151600484018054909216921691909117905560c0830151600582015560e083015160068201556101009092015160078301805467ffffffffffffffff19166001600160401b0392831617905590518051918211610ba8576109986008840154610fb1565b601f8111610b53575b50602090601f8311600114610ae257828793604098936008938a979592610ad7575b50508160011b915f199060031b1c1916179101555b6001600160a01b0383168152600260205220805460ff19166001179055610a026004803501610f1a565b6001600160401b03610a18602460043501610f1a565b610a26604460043501610f1a565b610a34606460043501610f1a565b90610a4360c460043501610f6b565b88516001600160a01b03968716815293861660208501529085168389015290841660608301526004356084810135608084015260a4013560a08301529190911660c08201529082169063ffffffff8416907fa0d8b561b80ba334b8b367f1fd53ab8d8719fa1c348a8de4bbfd8bbffa90b3379060e090a3825163ffffffff9290921682526001600160a01b03166020820152f35b015190505f806109c3565b9060088401875280872091875b601f1985168110610b3b57508360409894936008936001938b9896601f19811610610b23575b505050811b019101556109d8565b01515f1960f88460031b161c191690555f8080610b15565b91926020600181928685015181550194019201610aef565b828111156109a15760088401875260208720601f840160051c9060208510610ba0575b81601f9101920160051c0390875b828110610b925750506109a1565b808960019284015501610b84565b889150610b76565b634e487b7160e01b86526041600452602486fd5b8280fd5b60405162461bcd60e51b815260206004820152602e60248201527f506f7274616c2061646472657373206d69736d61746368202d206e6f6e63652060448201526d3a3930b1b5b4b7339032b93937b960911b6064820152608490fd5b610c299194505f90610f4a565b5f925f61077a565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b607f8211610ca65750604051606b60f91b6020820152602560fa1b60218201523060601b602282015260f89190911b6001600160f81b031916603682015260178152610ca1603782610f4a565b610608565b60ff8211610cfd575060405160d760f81b6020820152602560fa1b60218201523060601b6022820152608160f81b603682015260f89190911b6001600160f81b031916603782015260188152610ca1603882610f4a565b61ffff8211610d555750604051601b60fb1b6020820152602560fa1b60218201523060601b6022820152604160f91b603682015260f09190911b6001600160f01b031916603782015260198152610ca1603982610f4a565b62ffffff8211610dae575060405160d960f81b6020820152602560fa1b60218201523060601b6022820152608360f81b603682015260e89190911b6001600160e81b0319166037820152601a8152610ca1603a82610f4a565b604051606d60f91b6020820152602560fa1b60218201523090911b6022820152602160fa1b603682015260e09190911b6001600160e01b0319166037820152601b8152610ca1603b82610f4a565b634e487b7160e01b5f52601160045260245ffd5b63e558bfa360e01b5f5260045ffd5b6307099c5360e21b5f5260045ffd5b63baa3de5f60e01b5f5260045ffd5b633c9f858360e21b5f5260045ffd5b630b5eba9f60e41b5f5260045ffd5b63c1ab6dc160e01b5f5260045ffd5b90506020813d602011610e9d575b81610e8560209383610f4a565b81010312610c3c57518015158103610c3c575f61050d565b3d9150610e78565b6330cd747160e01b5f5260045ffd5b34610c3c575f366003190112610c3c576004546040516001600160a01b039091168152602090f35b34610c3c576020366003190112610c3c576004356001600160a01b0381169190829003610c3c576020915f526002825260ff60405f20541615158152f35b356001600160a01b0381168103610c3c5790565b61014081019081106001600160401b03821117610c4057604052565b90601f801991011681019081106001600160401b03821117610c4057604052565b356001600160401b0381168103610c3c5790565b903590601e1981360301821215610c3c57018035906001600160401b038211610c3c57602001918136038313610c3c57565b90600182811c92168015610fdf575b6020831014610fcb57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610fc056fe60808060405234601557613ab2908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081625d97ef146126af57508062ebfdb41461262557806309a0a234146123575780630d0c743e14611f235780630e18b68114611e945780630e86bbdc14611dff5780632678224714611dd657806327c71b5014611d505780632b7ac3f314611d275780632c37826e14611cfd5780632dfdf0b514611cd65780633488ce0d14611c6b57806337f981d814611c1657806339dc015d14611aad5780633cb747bf14611a845780633fd24907146117d05780634256ce38146117b257806345c5d2fb14611794578063580bbcfc1461176a5780635c1bba3814611743578063652ef10b14611568578063748538d91461152957806375829def146114a45780638081a8b21461148657806383a146b31461146b578063857e85f81461140f57806386f47e55146113f15780638976248d146113c557806394ce88b0146113a7578063959f47c3146112d35780639a97784b146112305780639cd709ff146111bb5780639ecd4cc014611183578063b01f22e414610b74578063b02690f214610b3c578063be2a63ee14610b12578063bf8e244014610a8e578063bffa55d5146109cf578063c690908a146108db578063cfaabb4d146108b1578063d179978a1461088d578063e09eae10146107fb578063e202d995146107d2578063e4643e8514610745578063e471784914610727578063e84abe69146106fd578063ecf79a4e146106d6578063ef10b1871461038e578063f22a195e14610370578063f490ca961461034d578063f706cfbf1461032f578063f851a44014610306578063fb2f1206146102e55763fe136c4e1461026e575f80fd5b346102e25760203660031901126102e2576040809161028b612855565b8160208451610299816129b0565b82815201526001600160a01b031681526008602052208151906102bb826129b0565b5460ff6020818316151593848152019160081c161515815282519182525115156020820152f35b80fd5b50346102e257806003193601126102e257602060065460c01c604051908152f35b50346102e257806003193601126102e2576001546040516001600160a01b039091168152602090f35b50346102e257806003193601126102e2576020604051620186a08152f35b50346102e257806003193601126102e2576020604051670de0b6b3a76400008152f35b50346102e257806003193601126102e2576020600454604051908152f35b50346102e25760a03660031901126102e25760043560243560ff8116908181036106d2576044359060ff82168092036106ce5784546001600160a01b031633036106bf576103db90613947565b156106b0576103e983613983565b156106b057836080602092604051848101903082528760408201528660608201526060815261041884826129cb565b51902090604051918252848201526064356040820152608435606082015282805260015afa156106a557825183806401000003d019600781878181800909086040516020810191602083526020604083015260206060830152608082015263400000f4600160fe1b0360a08201526401000003d01960c082015260c081526104a160e0826129cb565b519060055afa6104af6134dd565b908061069a575b15610665576104c490613961565b6002831460018216150361063b575b6040519060208201908582526040830152604082526104f36060836129cb565b905190206001600160a01b03918216801592909116908215610630575b5050610621576001600160401b0343169060405161052d81612995565b83815260208101908282526040810190848252600754600160401b81101561060d5780600161055f9201600755612ab9565b9190916105f95760ff916001915181550192511668ffffffffffffffff008354925160081b169168ffffffffffffffffff191617179055600754905f1982019182116105e557917f82b5f4090f18a082bc8156b956154bfe0319307f5e5a7e903ef33f14ad2cb17e9391608093604051938452602084015260408301526060820152a180f35b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b6392536faf60e01b8352600483fd5b141590505f80610510565b6401000003d019036401000003d0198111156104d357634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5bd9195e1c0819985a5b1959609a1b6044820152606490fd5b5060208151146104b6565b6040513d84823e3d90fd5b632f0be49b60e11b8452600484fd5b6314f8a09f60e21b8552600485fd5b8480fd5b8380fd5b50346102e257806003193601126102e25760206001600160801b0360035416604051908152f35b50346102e257806003193601126102e25760206001600160401b0360065460401c16604051908152f35b50346102e257806003193601126102e2576020600954604051908152f35b50346102e257806003193601126102e2576002546001600160a01b03811690811580156107c8575b6107b95782546001600160a01b0319808216841785559091166002556001600160a01b03167f9945af900637995146537e5ea7a7be455dfd08bbb46fdd79e9c3a2bad0c4eef88380a380f35b63d71402d960e01b8352600483fd5b508133141561076d565b50346102e257806003193601126102e2576002546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e2576108156128c1565b81546001600160a01b0316330361087e57600680546001600160c01b031660c083901b6001600160c01b0319161790556040516001600160401b0390911681527f66bcd750662bb66118e25a8e421ae73974634d9af2d44fb9e600d250917fe69090602090a180f35b6314f8a09f60e21b8252600482fd5b50346102e257806003193601126102e257602063ffffffff60115416604051908152f35b50346102e25760203660031901126102e25760406020916004358152600d83522054604051908152f35b50346102e25760203660031901126102e2576108f5612855565b6001546001600160a01b031633036109c0576001600160a01b0381168083526008602052604083205460ff166109b1576040516335ec42c960e01b8152600481019190915260208160248161083f60921b5afa9081156109a6578391610977575b50156109685761096590613630565b80f35b631fcf8c4760e11b8252600482fd5b610999915060203d60201161099f575b61099181836129cb565b810190612a10565b5f610956565b503d610987565b6040513d85823e3d90fd5b632909298f60e11b8352600483fd5b637bfa4b9f60e01b8252600482fd5b50346102e25760203660031901126102e2576109e9612855565b6001600160a01b038116808352600a60208181526040808620335f818152918452828220548689529484528288208183529093522080546001600160801b03191690556001600160801b0390911692610a439184916138d4565b15610a7f57602092506040518281527fffd3bbab073ab4b2d0792c270104924c14c285a153b9acddabae166395d2eb5c843392a3604051908152f35b63be51ced360e01b8352600483fd5b50346102e25760203660031901126102e257610aa8612855565b81546001600160a01b03169033829003610b0357600280546001600160a01b0319166001600160a01b03929092169182179055907f12cf9e4d760566fb6a3e0193406f2295fc4b53f2b60817145a61f29e470cf7d68380a380f35b6314f8a09f60e21b8352600483fd5b50346102e257806003193601126102e25760206001600160401b0360065460801c16604051908152f35b50346102e25760203660031901126102e2576020610b5b600435613256565b905460405160039290921b1c6001600160a01b03168152f35b50346102e25760a03660031901126102e257610b8e612855565b906024356001600160801b038116810361117f576001600160401b036064351161117f5760a06064353603600319011261117f57610bca612881565b906001600160a01b0382161561117057610be38461326e565b604051639c4bad2960e01b81526020816004816001600160a01b0389165afa9081156111385783610c52926020928791611143575b506040516337de09eb60e11b81526001600160401b0390911660048201526001600160a01b03909116602482015291829081906044820190565b038161100f60921b5afa908115611138578491611119575b501561110a57610c86610c8160246064350161322d565b613947565b156110fb57610c9a60643560040135613983565b156110fb576040610cb5604460643501606435600401612b7f565b9050036110d057610cc7604435613199565b501561103e57610cd790846132f9565b9060405192610ce584612966565b6001600160a01b0386811685523360208601526001600160801b03841660408087019190915290821660608601526044356080860152519360a085016001600160401b0381118682101761102a576040526064356004013585526024606435013560ff811681036110265760208601526001600160401b0360446064350135116110225736606435604481013501602301121561102257610d916064356044810135016004013561323b565b610d9e60405191826129cb565b60643560448101350160048101358083523660249190920101116110265760643560448101350160048101359060240160208301376064803560448101358101600401358301602001899052604088019290925201356001600160a01b03198116900361102257606480350135606086015260846064350135946001600160801b031986169586810361101e5792610fdb886080610f526001600160401b03968660209e99847f4debdbd2891da07eb466d2025028a25aab636034cf3c941afd1025a0c590a07a9c99015260a082019081526005549060405194602093869485019750600188526060604086015260018060a01b038151168286015260018060a01b0360208201511660a08601526001600160801b0360408201511660c086015260018060a01b0360608201511660e08601520151610100840152519060c061012084015281516101408401528f60ff9083015116610160840152610f14604083015160a06101808601526101e08501906129ec565b6060808401516001600160a01b0319166101a08601526080909301516001600160801b0319166101c08501529183015203601f1981018352826129cb565b51902098899760ff610f638a6134a7565b956001600160801b03610f7a60246064350161322d565b9181610f90604460643501606435600401612b7f565b969097506040519c60018060a01b03168d521660208c01521660408a015260443560608a01526064356004013560808a01521660a088015261016060c0880152610160870191612a28565b6064803501356001600160a01b03191660e08601526101008501979097526001600160a01b031661012084015216610140820152339381900390a3604051908152f35b8780fd5b8580fd5b8680fd5b634e487b7160e01b87526041600452602487fd5b8260075460443510156110bb57611056604435612ab9565b50906001604435019182604435116110a7576001600160401b036001818161107f606497612ab9565b5094015460081c1692015460081c169063034dff0f60e01b8352604435600452602452604452fd5b634e487b7160e01b82526011600452602482fd5b637f455d3760e11b8152604435600452602490fd5b6044836110e68260643501606435600401612b7f565b632331a96360e11b8352600452506040602452fd5b632f0be49b60e11b8352600483fd5b6354cfe65960e01b8352600483fd5b611132915060203d60201161099f5761099181836129cb565b5f610c6a565b6040513d86823e3d90fd5b6111639150833d8511611169575b61115b81836129cb565b81019061320e565b5f610c18565b503d611151565b638dc30b3960e01b8352600483fd5b5080fd5b50346102e25760203660031901126102e25760406001600160401b036111aa600435613199565b835191151582529091166020820152f35b50346102e25760403660031901126102e2576004356001600160401b03811161117f57610120600319823603011261117f5781546001600160a01b0316330361087e576010546112215761121a90600160105560243590600401612bb1565b8060105580f35b630b5c738160e01b8252600482fd5b50346102e25760203660031901126102e25760043590806040805161125481612995565b82815282602082015201526007548210156112c157606061127483612ab9565b506001600160401b0360405161128981612995565b60ff600184549485845201549183604060208301928486168452019360081c1683526040519485525116602084015251166040820152f35b602491637f455d3760e11b8252600452fd5b50346102e257806003193601126102e2576040519080600e54906112f68261292e565b80855291600181169081156113805750600114611336575b6113328461131e818603826129cb565b6040519182916020835260208301906129ec565b0390f35b600e81525f516020613a3d5f395f51905f52939250905b8082106113665750909150810160200161131e8261130e565b91926001816020925483858801015201910190929161134d565b60ff191660208087019190915292151560051b8501909201925061131e915083905061130e565b50346102e257806003193601126102e2576020600b54604051908152f35b50346102e257806003193601126102e25760206113e0612b32565b6001600160801b0360405191168152f35b50346102e257806003193601126102e2576020604051629896808152f35b50346102e25760403660031901126102e257604061142b612855565b9161143461286b565b9260018060a01b03168152600a602052209060018060a01b03165f5260205260206001600160801b0360405f205416604051908152f35b50346102e257806003193601126102e25760206113e0612ae9565b50346102e257806003193601126102e2576020600c54604051908152f35b50346102e25760203660031901126102e2576114be612855565b6001546001600160a01b0316903382900361151a57600f80546001600160a01b0319166001600160a01b03929092169182179055907fe5cd1c804f1c9cc6d7009e4c0fb532f0e2d8863524c3323a6b3790c3f80bf25c8380a380f35b637bfa4b9f60e01b8352600483fd5b50346102e25760203660031901126102e25760209060ff906040906001600160a01b03611554612855565b168152600884522054166040519015158152f35b50346102e25760203660031901126102e2576004356001600160401b03811161117f57611599903690600401612901565b8254909291906001600160a01b0316330361087e576001600160401b03831161172f576115c7600e5461292e565b601f81116116d3575b508192601f8111600114611645578083947ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc6949161163a575b508160011b905f198360031b1c191617600e555b611634604051928392602084526020840191612a28565b0390a180f35b90508201355f611609565b600e8352601f198116935f516020613a3d5f395f51905f5290845b8681106116bb5750827ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc69596106116a2575b5050600181811b01600e5561161d565b8301355f19600384901b60f8161c191690555f80611692565b90916020600181928588013581550193019101611660565b838111156115d057600e8352601f840160051c9060208510611727575b601f82910160051c0390835b82811061170a5750506115d0565b80855f516020613a3d5f395f51905f5260019385010155016116fc565b8391506116f0565b634e487b7160e01b82526041600452602482fd5b50346102e257806003193601126102e257546040516001600160a01b039091168152602090f35b50346102e257806003193601126102e25760206001600160401b0360125460a01c16604051908152f35b50346102e257806003193601126102e2576020600554604051908152f35b50346102e257806003193601126102e2576020600754604051908152f35b50346102e2576101203660031901126102e25760043563ffffffff811680910361117f576117fc61286b565b906044356001600160a01b03811681036106d2576064356001600160a01b03811692908390036106ce5761182e612881565b60a4356001600160a01b03811691908290036110265761184c6128d7565b90610104356001600160401b038111611a805761186d903690600401612901565b969095735af1ffffffffffffffffffffffffffffffffffff193301611a71576012549560ff8760e01c16611a6357601180546001600160c01b0319169190911760209290921b640100000000600160c01b0316919091179055600180546001600160a01b03199081169290921790558854166001600160a01b039190911617875560c4356004556001600160e81b03199092161760a09190911b67ffffffffffffffff60a01b1617600160e01b176012556001600160401b038211611a4f57611937600e5461292e565b601f81116119f3575b508390601f831160011461198057610965939291859183611975575b50508160011b915f199060031b1c191617600e55613630565b013590505f8061195c565b600e85525f516020613a3d5f395f51905f5291601f198416865b8181106119db5750916001939185610965979694106119c2575b505050811b01600e55613630565b01355f19600384901b60f8161c191690555f80806119b4565b9193602060018192878701358155019501920161199a565b8281111561194057600e8552601f830160051c9060208410611a47575b601f82910160051c0390855b828110611a2a575050611940565b80875f516020613a3d5f395f51905f526001938501015501611a1c565b859150611a10565b634e487b7160e01b84526041600452602484fd5b62dc149f60e41b8b5260048bfd5b631966391b60e11b8a5260048afd5b8880fd5b50346102e257806003193601126102e257601154604051602091821c6001600160a01b03168152f35b50346102e25760203660031901126102e257611ac76128c1565b906007549081158015611bbc575b611ba05780915f1981019081116110a757836001600160401b0384929116925b818310611b2657606083611b0881612ab9565b509060ff600183549301541660405192835260208301526040820152f35b9091828101808211611b8c5760018101809111611b8c5760011c90846001600160401b036001611b5585612ab9565b50015460081c1611611b6a5750915b90611af5565b92505f19810190811115611b6457634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526011600452602483fd5b63302c66ab60e21b81526001600160401b038316600452602490fd5b5060075415611c0257600781527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6895460081c6001600160401b0390811690841610611ad5565b634e487b7160e01b81526032600452602490fd5b50346102e25760203660031901126102e2576020906040906001600160a01b03611c3e612855565b16815260088352205460ff81169081611c5d575b506040519015158152f35b60ff915060081c165f611c52565b50346102e257806003193601126102e257600754908115611cc7575f198201918211611cb3576040611c9c83612ab9565b5060ff600182549201541682519182526020820152f35b634e487b7160e01b81526011600452602490fd5b630c322fb560e31b8152600490fd5b50346102e257806003193601126102e25760206001600160401b0360065416604051908152f35b50346102e257806003193601126102e25760206001600160401b0360035460801c16604051908152f35b50346102e257806003193601126102e2576012546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e257611d6a612855565b6001546001600160a01b031633036109c0576001600160a01b03168082526008602052604082205460ff161561096857808252600860205260408220805461ff00191690557feb225a736fbfee3f85ccb72bdf84ff0396ab358b7970e2cc351ab3e3fd92358d8280a280f35b50346102e257806003193601126102e257600f546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e2576004356001600160801b03811680910361117f5781546001600160a01b0316330361087e57670de0b6b3a76400008111611e85576020817fc62141e607d6fcbf7d11fd2b6d8e18e5ebef6d3fff8136ca98822801abbaea38926001600160801b03196003541617600355604051908152a180f35b630d62f21160e11b8252600482fd5b50346102e257806003193601126102e257600f546001600160a01b0381169081158015611f19575b611f0a57600180546001600160a01b031980821685179092559116600f556001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec68380a380f35b63058d9a1b60e01b8352600483fd5b5081331415611ebc565b50346102e2576101603660031901126102e257611f3e6128c1565b6024356001600160401b038116918282036106d25760403660431901126106d25760803660831901126106d2576101043591610124356001600160401b03811161102257611f90903690600401612901565b9094610144356001600160401b03811161101e57611fb2903690600401612901565b88546001600160a01b03169190338390036123485760443593600454850361233957601254906001600160401b038916976001600160401b038360a01c1689106122fa578161231857505087944388116123095761200f8861350c565b945b85156122fa5761201f612a48565b98600654996001600160401b03808c60401c169116148015906122d7575b80156122bb575b6122ac57908d96959493929163ffffffff6011541696600354996001600160401b038b60801c16995060018a01926001600160401b038411612295576001600160401b0393929184916040519b632d8a30cd60e21b8d5260048d015260248c01521660448a0152606489015216608487015260a486015260c4850152606435968760e486015260843561010486015260a4359b8c61012487015260c435916001600160401b03831680930361229157602095879561213d8f946121509489979688976101448901526001600160401b0361211c6128d7565b166101648901526101848801526101e06101a48801526101e4870191612a28565b848103600319016101c486015291612a28565b03916001600160a01b03165afa908115612286578991612267575b50156122585767ffffffffffffffff60801b9061218790612a88565b60801b16906001600160401b0360801b1916176003556004556fffffffffffffffff00000000000000006121b9612a5e565b60401b16916001600160401b0360801b9060801b169077ffffffffffffffffffffffffffffffff0000000000000000191617176006557f5a66941dc92cb865480c966eff640c02b1d00d544b74332fd67c6f1cbfccdf39608061221b8361357a565b936001600160401b03600354831c1693600454906001600160401b0360065460401c1691604051938452602084015260408301526060820152a380f35b6309bde33960e01b8852600488fd5b612280915060203d60201161099f5761099181836129cb565b5f61216b565b6040513d8b823e3d90fd5b8e80fd5b50505060248f634e487b7160e01b81526011600452fd5b633d9dffbd60e01b8e5260048efd5b506122c4612a5e565b6001600160401b03808c16911611612044565b506122e0612a5e565b6001600160401b03806122f1612a48565b1691161061203d565b632705871360e01b8d5260048dfd5b632705871360e01b8c5260048cfd5b8882979211156122fa574387116122fa57612333909661350c565b94612011565b6309bde33960e01b8b5260048bfd5b6314f8a09f60e21b8a5260048afd5b50346102e25760a03660031901126102e257612371612855565b61237961286b565b906123826128ab565b6064359061238e612881565b6001600160a01b038116959093908615612616576123ab8261326e565b604051639c4bad2960e01b81526001600160a01b03831695906020816004818a5afa9081156109a65783916125f7575b506040516337de09eb60e11b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa9081156111385784916125d8575b501561110a5760405163b389e30560e01b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa9081156111385784916125b9575b501561110a576040516337de09eb60e11b81526001600160401b039190911660048201526001600160a01b0391909116602482015260208160448161100f60921b5afa9081156106a557829161259a575b501561258b5750946001600160401b03926124e66001600160801b03936020986132f9565b939061252c82604051996124f98b612966565b898b52338c8c015260018060a01b0316968760408c015216988960608201528560808201528460a0820152600554613422565b97612536896134a7565b956040519889528a8901526040880152166060860152608085015260a08401521660c0820152817ffee50869847a4d073bfd83ec655472febff62beb46febf4ec48752f0686affd160e03393a3604051908152f35b6354cfe65960e01b8152600490fd5b6125b3915060203d60201161099f5761099181836129cb565b5f6124c1565b6125d2915060203d60201161099f5761099181836129cb565b5f612470565b6125f1915060203d60201161099f5761099181836129cb565b5f612423565b612610915060203d6020116111695761115b81836129cb565b5f6123db565b638dc30b3960e01b8152600490fd5b50346102e25760203660031901126102e25761263f612855565b6001546001600160a01b031633036109c0576001600160a01b03168082526008602052604082205460ff161561096857808252600860205260408220805461ff0019166101001790557f22ab73af03f04a21e91c7923327f99279b7f5d07d9551762c39bccdf051f1fe98280a280f35b9050346128145760c0366003190112612814576126ca612855565b6126d261286b565b916126db6128ab565b6084356001600160401b0381168091036128145760a4356001600160401b0381116128145761270e903690600401612901565b9190943033036128465760115463a9059cbb60e01b86526001600160a01b03602091821c811660048801526001600160801b0386166024880152919091169490816044815f895af1908115612809575f91612827575b501561281857601154602081901c6001600160a01b031693843b15612814575f9663ffffffff9488946001600160801b036127e9946040519c8d9b8c9a8b996311da526160e01b8b521660048a01526024890152606435604489015260018060a01b0316606488015216608486015260a485015260e060c485015260e4840191612a28565b03925af18015612809576127fb575080f35b61280791505f906129cb565b005b6040513d5f823e3d90fd5b5f80fd5b6312171d8360e31b5f5260045ffd5b612840915060203d60201161099f5761099181836129cb565b5f612764565b6314e1dbf760e11b5f5260045ffd5b600435906001600160a01b038216820361281457565b602435906001600160a01b038216820361281457565b608435906001600160a01b038216820361281457565b35906001600160a01b038216820361281457565b604435906001600160801b038216820361281457565b600435906001600160401b038216820361281457565b60e435906001600160401b038216820361281457565b35906001600160401b038216820361281457565b9181601f84011215612814578235916001600160401b038311612814576020838186019501011161281457565b90600182811c9216801561295c575b602083101461294857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161293d565b60c081019081106001600160401b0382111761298157604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761298157604052565b604081019081106001600160401b0382111761298157604052565b90601f801991011681019081106001600160401b0382111761298157604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90816020910312612814575180151581036128145790565b908060209392818452848401375f828201840152601f01601f1916010190565b60c4356001600160401b03811681036128145790565b60e4356001600160401b03811681036128145790565b356001600160401b03811681036128145790565b6001600160401b03166001600160401b038114612aa55760010190565b634e487b7160e01b5f52601160045260245ffd5b600754811015612ad55760075f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b60065460c01c48810290808204481490151715612aa55764e8d4a51000810190818111612aa55764e8d4a50fff01908111612aa55764e8d4a510006001600160801b0391041690565b6001600160801b0360035416620186a0026001600160801b038116908103612aa55790565b356001600160a01b03811681036128145790565b356001600160801b03811681036128145790565b903590601e198136030182121561281457018035906001600160401b0382116128145760200191813603831361281457565b600b54905f91600c54811461318a576064810691825f52600d60205260405f2054925f1984148015613180575b61316b578515908115613179575f19925b60408051602081019182529590926001600160a01b03612c0e84612897565b1660608801526020830135608088018190529960408401956001600160a01b03612c3788612897565b1660a08a015260608501998a356001600160801b0381168091036128145760c08b0152608086013560e08b015260a0860196612c72886128ed565b6001600160401b03166101008c015260c087019a612c8f8c6128ed565b6001600160401b03166101208201528060e089019b612cae8d8b6137e8565b61014084016101209052610180840190612cc792612a28565b612cd56101008c018c6137e8565b848303605f1901610160860152612cec9291612a28565b90604083015203601f1981018252612d0490826129cb565b5190200361316b571561315857505f52600d6020525f1960405f205560018101809111612aa557600b555b612d3881612b57565b936001600160401b03612d4a87612a74565b1615612fa957629896806001600160401b03612d6585612a74565b1611612f3c576001600160401b03612d7c84612a74565b16612e2157505050916001600160801b035f516020613a5d5f395f51905f529492612dd6612dd086612dc2612db2606099612b57565b612dbb89612b6b565b90866138d4565b159586612dfe575b50612b57565b94612b6b565b90604051975060018060a01b0316875216602086015215604085015260018060a01b031692a3565b612e1b90612e14612e0e8a612b6b565b91612a74565b9086613819565b5f612dca565b612e46612e2d85612b57565b91612e40612e3a8a612b6b565b95612a74565b93612b7f565b9092303b1561281457604051625d97ef60e01b81526001600160a01b03808916600483015290931660248401526001600160801b03949094166044830152606482018a90526001600160401b0393909316608482015260c060a4820152915f9183918291612eb89160c4840191612a28565b038183305af19081612efd575b505f516020613a5d5f395f51905f529492612dd6612dd0606096946001600160801b0394155f14612ef65789612dc2565b6001612dc2565b6001600160801b0391965092612dd6612dd060609694612f2c5f5f516020613a5d5f395f51905f529a986129cb565b5f99945094965050509294612ec5565b50505083919450612f84612f7e6001600160801b0392612f79606096612f72612e0e5f516020613a5d5f395f51905f529a612b6b565b908a613819565b612b57565b92612b6b565b604080516001600160a01b0397881681529290911660208301525f90820152931692a3565b50935050935050612fbb919350612b57565b612fc3612ae9565b926001600160801b03612fd582612b6b565b166001600160801b0385161161313d575b83612ff3612ff892612b6b565b6132d9565b906001600160801b038416613120575b61301b8261301585612b57565b836138d4565b15613091577f0f7ef08806234f85aaee43d3ba4589c3bc6d5ac3fc8edd56fc3d91cc7553bdcb9261308c906001600160a01b039061305890612b57565b1694604051938493849160409194936001600160801b038092606086019760018060a01b0316865216602085015216910152565b0390a2565b6001600160a01b0381165f908152600a602052604090207f5fea28d0adb7d877ae3259768f41ad6741aa1784c4475746dd931364f62e68a19361308c916130d782612b57565b60018060a01b03165f5260205260405f206001600160801b036130fd86828454166132b9565b82546001600160801b03191691161790556001600160a01b039061305890612b57565b5f546131379085906001600160a01b0316836138d4565b50613008565b612ff393508061314f612ff892612b6b565b94509050612fe6565b91505f52600d60205260405f2055612d2f565b626aee3160e51b5f5260045ffd5b8692612bef565b505f198614612bde565b63d7fa91d160e01b5f5260045ffd5b60075480821015613206575f198101908111612aa55781146131fe5760018101809111612aa5576001600160401b0360016131d76201518093612ab9565b50015460081c1601906001600160401b038211612aa5576001600160401b03821643109190565b506001905f90565b50505f905f90565b9081602091031261281457516001600160401b03811681036128145790565b3560ff811681036128145790565b6001600160401b03811161298157601f01601f191660200190565b600954811015612ad55760095f5260205f2001905f90565b6001600160a01b03165f9081526008602052604090205460ff8116156132aa5760081c60ff161561329b57565b63dec712ef60e01b5f5260045ffd5b631fcf8c4760e11b5f5260045ffd5b906001600160801b03809116911601906001600160801b038211612aa557565b906001600160801b03809116911603906001600160801b038211612aa557565b9091613303612b32565b926001600160801b0361331d613317612ae9565b866132b9565b16906001600160801b038116918210613413578461333a916132d9565b6040516323b872dd60e01b81523360048201523060248201526044810192909252926001600160a01b03166020826064815f855af19182156128095785926133f6575b506001600160801b038216613390575050565b5f805460405163a9059cbb60e01b81526001600160a01b0390911660048201526001600160801b0393909316602484015260209183916044918391905af18015612809576133db5750565b6133f39060203d60201161099f5761099181836129cb565b50565b61340e9060203d60201161099f5761099181836129cb565b61337d565b636ba4a1c760e01b5f5260045ffd5b6040519060a060208301935f8552600180831b038151166040850152600180831b036020820151166060850152600180831b0360408201511660808501526001600160801b0360608201511682850152600180831b0360808201511660c0850152015160e083015261010082015261010081526134a1610120826129cb565b51902090565b6005556006546134bf6001600160401b038216612a88565b67ffffffffffffffff199091166001600160401b0382161760065590565b3d15613507573d906134ee8261323b565b916134fc60405193846129cb565b82523d5f602084013e565b606090565b905f808093604051602081019182526020815261352a6040826129cb565b519071f90827f1c53a10cb7a02335b1753200029355afa6135496134dd565b908061356e575b6135575750565b909150602081805181010312612814576020015190565b50602081511015613550565b80156135c857600c5490600b548203828111612aa557606411156135b957606482065f52600d60205260405f205560018101808211612aa557600c5590565b632764e20b60e01b5f5260045ffd5b505f1990565b602081830312612814578051906001600160401b038211612814570181601f82011215612814578051906136018261323b565b9261360f60405194856129cb565b8284526020838301011161281457815f9260208093018386015e8301015290565b60405161363c816129b0565b600180825260208083019182526001600160a01b039093165f8181526008948590526040902092518354925161ffff1990931660ff911515919091161791151590931b61ff0016179055600954600160401b811015612981578060016136a59201600955613256565b81546001600160a01b0360039290921b91821b19169083901b1790556040516306fdde0360e01b81525f81600481855afa908115612809575f916137ce575b506040516395d89b4160e01b81525f81600481865afa908115612809575f916137b4575b5060405163e5a6b10f60e01b8152915f83600481875afa928315612809577f4ac4dcc08b0c26c3fb6b58c64c1392b7934b1ce6b0382a5986ea5c3de795e053936137709361308c925f9261378c575b5061377e906040519586956060875260608701906129ec565b9085820360208701526129ec565b9083820360408501526129ec565b61377e9192506137ad903d805f833e6137a581836129cb565b8101906135ce565b9190613757565b6137c891503d805f833e6137a581836129cb565b5f613708565b6137e291503d805f833e6137a581836129cb565b5f6136e4565b9035601e19823603018112156128145701602081359101916001600160401b03821161281457813603831361281457565b909160606001600160401b037fadf6f2901dd7af2f28a594f47a925894a08d4de10609dff591a80642648775c59216936138946001600160801b036040519561386187612966565b60018060a01b031692838752306020880152876040880152169485848201525f60808201525f60a0820152600554613422565b9384600555600654906001600160401b036138b0818416612a88565b1680926001600160401b0319161760065560405192835260208301526040820152a3565b60405163a9059cbb60e01b81526001600160a01b0392831660048201526001600160801b03939093166024840152602091839160449183915f91165af15f9181613926575b5061392357505f90565b90565b61394091925060203d60201161099f5761099181836129cb565b905f613919565b60ff1660028114908115613959575090565b600391501490565b602081519101519060208110613975575090565b5f199060200360031b1b1690565b80158015613a2c575b613a1b575f9081906401000003d0199060079082908181800909086040516020810191602083526020604083015260206060830152608082015263800001e9600160ff1b0360a08201526401000003d01960c082015260c081526139f160e0826129cb565b519060055afa6139ff6134dd565b90158015613a20575b613a1b57613a17600191613961565b1490565b505f90565b50602081511415613a08565b506401000003d01981101561398c56febb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd65042ea6dad60c26f055e80ec401b3437c854ed586a0704d305bb4e9ea4518cfa26469706673582212203cbcd4ef32d0730f4c6487e680e126a70b2c75d749fd18a361f6f5ce55c21af864736f6c63430008230033a2646970667358221220ed3f71ded3c1daf9dd97a7fc69e3ef6a4a0e11b49b1ce184f82487fc6e79203764736f6c6343000823003360808060405234601557610188908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c63b628c33414610025575f80fd5b346100db576101e03660031901126100db5760043563ffffffff8116036100db5761004e6100df565b506100576100f6565b5061006061010d565b5060a4356001600160a01b038116036100db5760403660c31901126100db576080366101031901126100db576101a43567ffffffffffffffff81116100db576100ad903690600401610124565b50506101c4359067ffffffffffffffff82116100db576100d36020923690600401610124565b505060018152f35b5f80fd5b6024359067ffffffffffffffff821682036100db57565b6044359067ffffffffffffffff821682036100db57565b6084359067ffffffffffffffff821682036100db57565b9181601f840112156100db5782359167ffffffffffffffff83116100db57602083818601950101116100db5756fea2646970667358221220bd6a7f0e7747bba87a2e1f48d0748c40985a96046f2251cda165062a6c7848db64736f6c6343000823003360a034606e57601f6105a238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e5760805260405161051b908161008782396080518181816047015261015e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816311da52611461007a5750637b9a730114610032575f80fd5b34610076575f366003190112610076576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100765760e0366003190112610076576004359063ffffffff8216809203610076576024356001600160a01b03811690819003610076576064356001600160a01b038116939084900361007657608435916fffffffffffffffffffffffffffffffff83168093036100765760a4359167ffffffffffffffff83168093036100765760c4359567ffffffffffffffff871161007657366023880112156100765786600401359567ffffffffffffffff871161007657366024888a010111610076575f546104a05760015f9081556390b7f6fd60e01b825260048201849052816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156102bf575f91610323575b50602001516001600160a01b031633036103145760405163a9059cbb60e01b81528160048201528560248201526020816044815f885af19081156102bf575f916102d9575b50156102ca5760e45f928760209860246040519b8c9a8b998a96630a137ff560e01b88526004880152338488015260443560448801526064870152608486015260c060a48601528260c486015201848401378181018301859052601f01601f19168101030193f19081156102bf575f9161027c575b506001600160e01b03191663f5ec800b60e01b0161026d575f8055005b63be51ced360e01b5f5260045ffd5b90506020813d6020116102b7575b81610297602093836104af565b8101031261007657516001600160e01b0319811681036100765781610250565b3d915061028a565b6040513d5f823e3d90fd5b6312171d8360e31b5f5260045ffd5b90506020813d60201161030c575b816102f4602093836104af565b810103126100765751801515810361007657886101db565b3d91506102e7565b63efc26b5760e01b5f5260045ffd5b90503d805f833e61033481836104af565b8101906020818303126100765780519067ffffffffffffffff8211610076570190610140828203126100765760405191610140830183811067ffffffffffffffff82111761048c57604052805163ffffffff8116810361007657835261039c602082016104d1565b60208401526103ad604082016104d1565b60408401526103be606082016104d1565b60608401526103cf608082016104d1565b60808401526103e060a082016104d1565b60a084015260c081015160c084015260e081015160e084015261010081015167ffffffffffffffff81168103610076576101008401526101208101519067ffffffffffffffff8211610076570181601f820112156100765780519067ffffffffffffffff821161048c5760405192610462601f8401601f1916602001856104af565b8284526020838301011161007657815f9260208093018386015e8301015261012082015288610196565b634e487b7160e01b5f52604160045260245ffd5b6336a4d21b60e11b5f5260045ffd5b90601f8019910116810190811067ffffffffffffffff82111761048c57604052565b51906001600160a01b03821682036100765756fea2646970667358221220401fc075bb34e9330cf33226c9a9666abde99e9eb07df5f330b87810dd44f12b64736f6c63430008230033" + "zoneFactoryBytecode": "0x60808060405234610138575f805463ffffffff191660011781556003600755600680546001600160a01b03191633908117909155907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36101a28181016001600160401b03811183821017610124578291614c43833903905ff08015610119576001600160a01b03165f8181526003602052604090819020805460ff19166001179055600480546001600160a01b031916909217909155516105a2808201906001600160401b03821183831017610124576020918391614de583393081520301905ff0801561011957600580546001600160a01b0319166001600160a01b0392909216919091179055604051614b06908161013d8239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301b290d314610edc575080632b7ac3f314610eb45780632d45796a146104815780633cb747bf1461045857806374134d371461043a57806376628f83146103f85780638da5cb5b146103cf57806390b7f6fd14610174578063eee83499146101275763f2fde38b1461008c575f80fd5b34610124576020366003190112610124576004356001600160a01b03811690819003610122576006546001600160a01b0381169033829003610113578215610104576001600160a01b03191682176006557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6349e27cff60e01b8452600484fd5b6330cd747160e01b8452600484fd5b505b80fd5b50346101245780600319360112610124575f1963ffffffff825416019063ffffffff82116101605760208263ffffffff60405191168152f35b634e487b7160e01b81526011600452602490fd5b50346101245760203660031901126101245760043563ffffffff81168091036101225760606101206040516101a881610f2e565b84815284602082015284604082015284838201528460808201528460a08201528460c08201528460e0820152846101008201520152815260016020526040812090604051906101f682610f2e565b825463ffffffff811683526001600160a01b03602091821c811691840191825260018501548116604080860191825260028701548316606087019081526003880154841660808801908152600489015490941660a08801908152600589015460c0890190815260068a015460e08a0190815260078b01546001600160401b03166101008b0190815294516008909b018054989b989597919692959394919391929189918b91906102a582610fb1565b80855291600181169081156103b15750600114610377575b5050036102ca9089610f4a565b6101208a81019889526040805160208082529c5163ffffffff168d8201529c516001600160a01b03908116918e01919091529151821660608d01529151811660808c01529151821660a08b015291511660c0890152905160e0880152905161010087015290516001600160401b031690850152516101408085015280516101608501819052849390929183910161018085015e8183016101800152601f1990601f01168101036101800190f35b8c5260208c208c92505b81831061039657505081016020015f806102bd565b80602092948385600194549201015201910190918a92610381565b9150506020925060ff191682840152151560051b8201015f806102bd565b50346101245780600319360112610124576006546040516001600160a01b039091168152602090f35b5034610124576020366003190112610124576004356001600160a01b038116908190036101225760408260ff9260209452600384522054166040519015158152f35b5034610124578060031936011261012457602060405162e4e1c08152f35b50346101245780600319360112610124576005546040516001600160a01b039091168152602090f35b5034610c3c576020366003190112610c3c576001600160401b0360043511610c3c5761010060043536036003190112610c3c576006546001600160a01b03163303610ea5576104d4600435600401610f1a565b6040516335ec42c960e01b81526001600160a01b03909116600482015260208160248161083f60921b5afa908115610c31575f91610e6a575b5015610e5b576001600160a01b03610529600435602401610f1a565b1615610e4c576001600160a01b03610545600435604401610f1a565b1615610e3d576001600160a01b03610561600435606401610f1a565b165f52600360205260ff60405f20541615610e2e5762e4e1c05a10610e1f575f5463ffffffff80821614610e1057600163ffffffff82160163ffffffff8111610dfc5763ffffffff1663ffffffff198216175f5560075460018101808211610dfc57600755606081610c54575050604051606b60f91b6020820152602560fa1b60218201523060601b6022820152600160ff1b603682015260178152610608603782610f4a565b60018060a01b03906020815191012016604051613ae78082018281106001600160401b03821117610c40578291610fea833903905ff0908115610c3157610653600435600401610f1a565b6005546001600160a01b031661066d600435602401610f1a565b61067b604460043501610f1a565b610689606460043501610f1a565b9061069860c460043501610f6b565b926106ad60e460043501600435600401610f7f565b91906001600160a01b038a163b15610c3c576001600160401b0363ffffffff96610144968d9686955f9b6040519d8e9c8d9b633fd2490760e01b8d521660048c015260018060a01b031660248b015260448a015260018060a01b0316606489015260018060a01b0316608488015260018060a01b031660a48701526084600435013560c48701521660e485015261012061010485015281610124850152848401378181018301859052601f01601f19168101030181836001600160a01b0388165af18015610c3157610c1c575b506001600160a01b03821603610bc057610798600435600401610f1a565b6107a6602460043501610f1a565b6107b4604460043501610f1a565b906001600160401b036107cb606460043501610f1a565b6107d960c460043501610f6b565b906107ee60e460043501600435600401610f7f565b959094604051976107fe89610f2e565b63ffffffff8b1689526001600160a01b038a811660208b015290811660408a0152908116606089015290811660808801521660a0860152600435608481013560c087015260a4013560e0860152166101008401526001600160401b038211610ba85785906040519261087a6020601f19601f8401160185610f4a565b8084523681830111610bbc57806020928386013783010152610120820190815263ffffffff848116865260016020818152604080892086518154848901516001600160c01b031990911691909616179490921b640100000000600160c01b03169390931781559184015190820180546001600160a01b03199081166001600160a01b0393841617909155606085015160028401805483169184169190911790556080850151600384018054831691841691909117905560a0850151600484018054909216921691909117905560c0830151600582015560e083015160068201556101009092015160078301805467ffffffffffffffff19166001600160401b0392831617905590518051918211610ba8576109986008840154610fb1565b601f8111610b53575b50602090601f8311600114610ae257828793604098936008938a979592610ad7575b50508160011b915f199060031b1c1916179101555b6001600160a01b0383168152600260205220805460ff19166001179055610a026004803501610f1a565b6001600160401b03610a18602460043501610f1a565b610a26604460043501610f1a565b610a34606460043501610f1a565b90610a4360c460043501610f6b565b88516001600160a01b03968716815293861660208501529085168389015290841660608301526004356084810135608084015260a4013560a08301529190911660c08201529082169063ffffffff8416907fa0d8b561b80ba334b8b367f1fd53ab8d8719fa1c348a8de4bbfd8bbffa90b3379060e090a3825163ffffffff9290921682526001600160a01b03166020820152f35b015190505f806109c3565b9060088401875280872091875b601f1985168110610b3b57508360409894936008936001938b9896601f19811610610b23575b505050811b019101556109d8565b01515f1960f88460031b161c191690555f8080610b15565b91926020600181928685015181550194019201610aef565b828111156109a15760088401875260208720601f840160051c9060208510610ba0575b81601f9101920160051c0390875b828110610b925750506109a1565b808960019284015501610b84565b889150610b76565b634e487b7160e01b86526041600452602486fd5b8280fd5b60405162461bcd60e51b815260206004820152602e60248201527f506f7274616c2061646472657373206d69736d61746368202d206e6f6e63652060448201526d3a3930b1b5b4b7339032b93937b960911b6064820152608490fd5b610c299194505f90610f4a565b5f925f61077a565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b607f8211610ca65750604051606b60f91b6020820152602560fa1b60218201523060601b602282015260f89190911b6001600160f81b031916603682015260178152610ca1603782610f4a565b610608565b60ff8211610cfd575060405160d760f81b6020820152602560fa1b60218201523060601b6022820152608160f81b603682015260f89190911b6001600160f81b031916603782015260188152610ca1603882610f4a565b61ffff8211610d555750604051601b60fb1b6020820152602560fa1b60218201523060601b6022820152604160f91b603682015260f09190911b6001600160f01b031916603782015260198152610ca1603982610f4a565b62ffffff8211610dae575060405160d960f81b6020820152602560fa1b60218201523060601b6022820152608360f81b603682015260e89190911b6001600160e81b0319166037820152601a8152610ca1603a82610f4a565b604051606d60f91b6020820152602560fa1b60218201523090911b6022820152602160fa1b603682015260e09190911b6001600160e01b0319166037820152601b8152610ca1603b82610f4a565b634e487b7160e01b5f52601160045260245ffd5b63e558bfa360e01b5f5260045ffd5b6307099c5360e21b5f5260045ffd5b63baa3de5f60e01b5f5260045ffd5b633c9f858360e21b5f5260045ffd5b630b5eba9f60e41b5f5260045ffd5b63c1ab6dc160e01b5f5260045ffd5b90506020813d602011610e9d575b81610e8560209383610f4a565b81010312610c3c57518015158103610c3c575f61050d565b3d9150610e78565b6330cd747160e01b5f5260045ffd5b34610c3c575f366003190112610c3c576004546040516001600160a01b039091168152602090f35b34610c3c576020366003190112610c3c576004356001600160a01b0381169190829003610c3c576020915f526002825260ff60405f20541615158152f35b356001600160a01b0381168103610c3c5790565b61014081019081106001600160401b03821117610c4057604052565b90601f801991011681019081106001600160401b03821117610c4057604052565b356001600160401b0381168103610c3c5790565b903590601e1981360301821215610c3c57018035906001600160401b038211610c3c57602001918136038313610c3c57565b90600182811c92168015610fdf575b6020831014610fcb57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610fc056fe60808060405234601557613acd908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081625d97ef146126ca57508062ebfdb41461264057806309a0a234146123725780630d0c743e14611f3e5780630e18b68114611eaf5780630e86bbdc14611e1a5780632678224714611df157806327c71b5014611d6b5780632b7ac3f314611d425780632c37826e14611d185780632dfdf0b514611cf15780633488ce0d14611c8657806337f981d814611c3157806339dc015d14611ac85780633cb747bf14611a9f5780633fd24907146117d05780634256ce38146117b257806345c5d2fb14611794578063580bbcfc1461176a5780635c1bba3814611743578063652ef10b14611568578063748538d91461152957806375829def146114a45780638081a8b21461148657806383a146b31461146b578063857e85f81461140f57806386f47e55146113f15780638976248d146113c557806394ce88b0146113a7578063959f47c3146112d35780639a97784b146112305780639cd709ff146111bb5780639ecd4cc014611183578063b01f22e414610b74578063b02690f214610b3c578063be2a63ee14610b12578063bf8e244014610a8e578063bffa55d5146109cf578063c690908a146108db578063cfaabb4d146108b1578063d179978a1461088d578063e09eae10146107fb578063e202d995146107d2578063e4643e8514610745578063e471784914610727578063e84abe69146106fd578063ecf79a4e146106d6578063ef10b1871461038e578063f22a195e14610370578063f490ca961461034d578063f706cfbf1461032f578063f851a44014610306578063fb2f1206146102e55763fe136c4e1461026e575f80fd5b346102e25760203660031901126102e2576040809161028b612870565b8160208451610299816129cb565b82815201526001600160a01b031681526008602052208151906102bb826129cb565b5460ff6020818316151593848152019160081c161515815282519182525115156020820152f35b80fd5b50346102e257806003193601126102e257602060065460c01c604051908152f35b50346102e257806003193601126102e2576001546040516001600160a01b039091168152602090f35b50346102e257806003193601126102e2576020604051620186a08152f35b50346102e257806003193601126102e2576020604051670de0b6b3a76400008152f35b50346102e257806003193601126102e2576020600454604051908152f35b50346102e25760a03660031901126102e25760043560243560ff8116908181036106d2576044359060ff82168092036106ce5784546001600160a01b031633036106bf576103db90613962565b156106b0576103e98361399e565b156106b057836080602092604051848101903082528760408201528660608201526060815261041884826129e6565b51902090604051918252848201526064356040820152608435606082015282805260015afa156106a557825183806401000003d019600781878181800909086040516020810191602083526020604083015260206060830152608082015263400000f4600160fe1b0360a08201526401000003d01960c082015260c081526104a160e0826129e6565b519060055afa6104af6134f8565b908061069a575b15610665576104c49061397c565b6002831460018216150361063b575b6040519060208201908582526040830152604082526104f36060836129e6565b905190206001600160a01b03918216801592909116908215610630575b5050610621576001600160401b0343169060405161052d816129b0565b83815260208101908282526040810190848252600754600160401b81101561060d5780600161055f9201600755612ad4565b9190916105f95760ff916001915181550192511668ffffffffffffffff008354925160081b169168ffffffffffffffffff191617179055600754905f1982019182116105e557917f82b5f4090f18a082bc8156b956154bfe0319307f5e5a7e903ef33f14ad2cb17e9391608093604051938452602084015260408301526060820152a180f35b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b6392536faf60e01b8352600483fd5b141590505f80610510565b6401000003d019036401000003d0198111156104d357634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5bd9195e1c0819985a5b1959609a1b6044820152606490fd5b5060208151146104b6565b6040513d84823e3d90fd5b632f0be49b60e11b8452600484fd5b6314f8a09f60e21b8552600485fd5b8480fd5b8380fd5b50346102e257806003193601126102e25760206001600160801b0360035416604051908152f35b50346102e257806003193601126102e25760206001600160401b0360065460401c16604051908152f35b50346102e257806003193601126102e2576020600954604051908152f35b50346102e257806003193601126102e2576002546001600160a01b03811690811580156107c8575b6107b95782546001600160a01b0319808216841785559091166002556001600160a01b03167f9945af900637995146537e5ea7a7be455dfd08bbb46fdd79e9c3a2bad0c4eef88380a380f35b63d71402d960e01b8352600483fd5b508133141561076d565b50346102e257806003193601126102e2576002546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e2576108156128dc565b81546001600160a01b0316330361087e57600680546001600160c01b031660c083901b6001600160c01b0319161790556040516001600160401b0390911681527f66bcd750662bb66118e25a8e421ae73974634d9af2d44fb9e600d250917fe69090602090a180f35b6314f8a09f60e21b8252600482fd5b50346102e257806003193601126102e257602063ffffffff60115416604051908152f35b50346102e25760203660031901126102e25760406020916004358152600d83522054604051908152f35b50346102e25760203660031901126102e2576108f5612870565b6001546001600160a01b031633036109c0576001600160a01b0381168083526008602052604083205460ff166109b1576040516335ec42c960e01b8152600481019190915260208160248161083f60921b5afa9081156109a6578391610977575b5015610968576109659061364b565b80f35b631fcf8c4760e11b8252600482fd5b610999915060203d60201161099f575b61099181836129e6565b810190612a2b565b5f610956565b503d610987565b6040513d85823e3d90fd5b632909298f60e11b8352600483fd5b637bfa4b9f60e01b8252600482fd5b50346102e25760203660031901126102e2576109e9612870565b6001600160a01b038116808352600a60208181526040808620335f818152918452828220548689529484528288208183529093522080546001600160801b03191690556001600160801b0390911692610a439184916138ef565b15610a7f57602092506040518281527fffd3bbab073ab4b2d0792c270104924c14c285a153b9acddabae166395d2eb5c843392a3604051908152f35b63be51ced360e01b8352600483fd5b50346102e25760203660031901126102e257610aa8612870565b81546001600160a01b03169033829003610b0357600280546001600160a01b0319166001600160a01b03929092169182179055907f12cf9e4d760566fb6a3e0193406f2295fc4b53f2b60817145a61f29e470cf7d68380a380f35b6314f8a09f60e21b8352600483fd5b50346102e257806003193601126102e25760206001600160401b0360065460801c16604051908152f35b50346102e25760203660031901126102e2576020610b5b600435613271565b905460405160039290921b1c6001600160a01b03168152f35b50346102e25760a03660031901126102e257610b8e612870565b906024356001600160801b038116810361117f576001600160401b036064351161117f5760a06064353603600319011261117f57610bca61289c565b906001600160a01b0382161561117057610be384613289565b604051639c4bad2960e01b81526020816004816001600160a01b0389165afa9081156111385783610c52926020928791611143575b506040516337de09eb60e11b81526001600160401b0390911660048201526001600160a01b03909116602482015291829081906044820190565b038161100f60921b5afa908115611138578491611119575b501561110a57610c86610c81602460643501613248565b613962565b156110fb57610c9a6064356004013561399e565b156110fb576040610cb5604460643501606435600401612b9a565b9050036110d057610cc76044356131b4565b501561103e57610cd79084613314565b9060405192610ce584612981565b6001600160a01b0386811685523360208601526001600160801b03841660408087019190915290821660608601526044356080860152519360a085016001600160401b0381118682101761102a576040526064356004013585526024606435013560ff811681036110265760208601526001600160401b0360446064350135116110225736606435604481013501602301121561102257610d9160643560448101350160040135613256565b610d9e60405191826129e6565b60643560448101350160048101358083523660249190920101116110265760643560448101350160048101359060240160208301376064803560448101358101600401358301602001899052604088019290925201356001600160a01b03198116900361102257606480350135606086015260846064350135946001600160801b031986169586810361101e5792610fdb886080610f526001600160401b03968660209e99847f4debdbd2891da07eb466d2025028a25aab636034cf3c941afd1025a0c590a07a9c99015260a082019081526005549060405194602093869485019750600188526060604086015260018060a01b038151168286015260018060a01b0360208201511660a08601526001600160801b0360408201511660c086015260018060a01b0360608201511660e08601520151610100840152519060c061012084015281516101408401528f60ff9083015116610160840152610f14604083015160a06101808601526101e0850190612a07565b6060808401516001600160a01b0319166101a08601526080909301516001600160801b0319166101c08501529183015203601f1981018352826129e6565b51902098899760ff610f638a6134c2565b956001600160801b03610f7a602460643501613248565b9181610f90604460643501606435600401612b9a565b969097506040519c60018060a01b03168d521660208c01521660408a015260443560608a01526064356004013560808a01521660a088015261016060c0880152610160870191612a43565b6064803501356001600160a01b03191660e08601526101008501979097526001600160a01b031661012084015216610140820152339381900390a3604051908152f35b8780fd5b8580fd5b8680fd5b634e487b7160e01b87526041600452602487fd5b8260075460443510156110bb57611056604435612ad4565b50906001604435019182604435116110a7576001600160401b036001818161107f606497612ad4565b5094015460081c1692015460081c169063034dff0f60e01b8352604435600452602452604452fd5b634e487b7160e01b82526011600452602482fd5b637f455d3760e11b8152604435600452602490fd5b6044836110e68260643501606435600401612b9a565b632331a96360e11b8352600452506040602452fd5b632f0be49b60e11b8352600483fd5b6354cfe65960e01b8352600483fd5b611132915060203d60201161099f5761099181836129e6565b5f610c6a565b6040513d86823e3d90fd5b6111639150833d8511611169575b61115b81836129e6565b810190613229565b5f610c18565b503d611151565b638dc30b3960e01b8352600483fd5b5080fd5b50346102e25760203660031901126102e25760406001600160401b036111aa6004356131b4565b835191151582529091166020820152f35b50346102e25760403660031901126102e2576004356001600160401b03811161117f57610120600319823603011261117f5781546001600160a01b0316330361087e576010546112215761121a90600160105560243590600401612bcc565b8060105580f35b630b5c738160e01b8252600482fd5b50346102e25760203660031901126102e257600435908060408051611254816129b0565b82815282602082015201526007548210156112c157606061127483612ad4565b506001600160401b03604051611289816129b0565b60ff600184549485845201549183604060208301928486168452019360081c1683526040519485525116602084015251166040820152f35b602491637f455d3760e11b8252600452fd5b50346102e257806003193601126102e2576040519080600e54906112f682612949565b80855291600181169081156113805750600114611336575b6113328461131e818603826129e6565b604051918291602083526020830190612a07565b0390f35b600e81525f516020613a585f395f51905f52939250905b8082106113665750909150810160200161131e8261130e565b91926001816020925483858801015201910190929161134d565b60ff191660208087019190915292151560051b8501909201925061131e915083905061130e565b50346102e257806003193601126102e2576020600b54604051908152f35b50346102e257806003193601126102e25760206113e0612b4d565b6001600160801b0360405191168152f35b50346102e257806003193601126102e2576020604051629896808152f35b50346102e25760403660031901126102e257604061142b612870565b91611434612886565b9260018060a01b03168152600a602052209060018060a01b03165f5260205260206001600160801b0360405f205416604051908152f35b50346102e257806003193601126102e25760206113e0612b04565b50346102e257806003193601126102e2576020600c54604051908152f35b50346102e25760203660031901126102e2576114be612870565b6001546001600160a01b0316903382900361151a57600f80546001600160a01b0319166001600160a01b03929092169182179055907fe5cd1c804f1c9cc6d7009e4c0fb532f0e2d8863524c3323a6b3790c3f80bf25c8380a380f35b637bfa4b9f60e01b8352600483fd5b50346102e25760203660031901126102e25760209060ff906040906001600160a01b03611554612870565b168152600884522054166040519015158152f35b50346102e25760203660031901126102e2576004356001600160401b03811161117f5761159990369060040161291c565b8254909291906001600160a01b0316330361087e576001600160401b03831161172f576115c7600e54612949565b601f81116116d3575b508192601f8111600114611645578083947ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc6949161163a575b508160011b905f198360031b1c191617600e555b611634604051928392602084526020840191612a43565b0390a180f35b90508201355f611609565b600e8352601f198116935f516020613a585f395f51905f5290845b8681106116bb5750827ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc69596106116a2575b5050600181811b01600e5561161d565b8301355f19600384901b60f8161c191690555f80611692565b90916020600181928588013581550193019101611660565b838111156115d057600e8352601f840160051c9060208510611727575b601f82910160051c0390835b82811061170a5750506115d0565b80855f516020613a585f395f51905f5260019385010155016116fc565b8391506116f0565b634e487b7160e01b82526041600452602482fd5b50346102e257806003193601126102e257546040516001600160a01b039091168152602090f35b50346102e257806003193601126102e25760206001600160401b0360125460a01c16604051908152f35b50346102e257806003193601126102e2576020600554604051908152f35b50346102e257806003193601126102e2576020600754604051908152f35b50346102e2576101203660031901126102e25760043563ffffffff811680910361117f576117fc612886565b906044356001600160a01b03811681036106d2576064356001600160a01b03811692908390036106ce5761182e61289c565b60a4356001600160a01b03811691908290036110265761184c6128f2565b90610104356001600160401b038111611a9b5761186d90369060040161291c565b96909530615ad160901b14611a8c57735af1ffffffffffffffffffffffffffffffffffff193301611a7d576012549560ff8760e01c16611a6f57601180546001600160c01b0319169190911760209290921b640100000000600160c01b0316919091179055600180546001600160a01b03199081169290921790558854166001600160a01b039190911617875560c4356004556001600160e81b03199092161760a09190911b67ffffffffffffffff60a01b1617600160e01b176012556001600160401b038211611a5b57611943600e54612949565b601f81116119ff575b508390601f831160011461198c57610965939291859183611981575b50508160011b915f199060031b1c191617600e5561364b565b013590505f80611968565b600e85525f516020613a585f395f51905f5291601f198416865b8181106119e75750916001939185610965979694106119ce575b505050811b01600e5561364b565b01355f19600384901b60f8161c191690555f80806119c0565b919360206001819287870135815501950192016119a6565b8281111561194c57600e8552601f830160051c9060208410611a53575b601f82910160051c0390855b828110611a3657505061194c565b80875f516020613a585f395f51905f526001938501015501611a28565b859150611a1c565b634e487b7160e01b84526041600452602484fd5b62dc149f60e41b8b5260048bfd5b631966391b60e11b8a5260048afd5b63b25caa5160e01b8a5260048afd5b8880fd5b50346102e257806003193601126102e257601154604051602091821c6001600160a01b03168152f35b50346102e25760203660031901126102e257611ae26128dc565b906007549081158015611bd7575b611bbb5780915f1981019081116110a757836001600160401b0384929116925b818310611b4157606083611b2381612ad4565b509060ff600183549301541660405192835260208301526040820152f35b9091828101808211611ba75760018101809111611ba75760011c90846001600160401b036001611b7085612ad4565b50015460081c1611611b855750915b90611b10565b92505f19810190811115611b7f57634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526011600452602483fd5b63302c66ab60e21b81526001600160401b038316600452602490fd5b5060075415611c1d57600781527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6895460081c6001600160401b0390811690841610611af0565b634e487b7160e01b81526032600452602490fd5b50346102e25760203660031901126102e2576020906040906001600160a01b03611c59612870565b16815260088352205460ff81169081611c78575b506040519015158152f35b60ff915060081c165f611c6d565b50346102e257806003193601126102e257600754908115611ce2575f198201918211611cce576040611cb783612ad4565b5060ff600182549201541682519182526020820152f35b634e487b7160e01b81526011600452602490fd5b630c322fb560e31b8152600490fd5b50346102e257806003193601126102e25760206001600160401b0360065416604051908152f35b50346102e257806003193601126102e25760206001600160401b0360035460801c16604051908152f35b50346102e257806003193601126102e2576012546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e257611d85612870565b6001546001600160a01b031633036109c0576001600160a01b03168082526008602052604082205460ff161561096857808252600860205260408220805461ff00191690557feb225a736fbfee3f85ccb72bdf84ff0396ab358b7970e2cc351ab3e3fd92358d8280a280f35b50346102e257806003193601126102e257600f546040516001600160a01b039091168152602090f35b50346102e25760203660031901126102e2576004356001600160801b03811680910361117f5781546001600160a01b0316330361087e57670de0b6b3a76400008111611ea0576020817fc62141e607d6fcbf7d11fd2b6d8e18e5ebef6d3fff8136ca98822801abbaea38926001600160801b03196003541617600355604051908152a180f35b630d62f21160e11b8252600482fd5b50346102e257806003193601126102e257600f546001600160a01b0381169081158015611f34575b611f2557600180546001600160a01b031980821685179092559116600f556001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec68380a380f35b63058d9a1b60e01b8352600483fd5b5081331415611ed7565b50346102e2576101603660031901126102e257611f596128dc565b6024356001600160401b038116918282036106d25760403660431901126106d25760803660831901126106d2576101043591610124356001600160401b03811161102257611fab90369060040161291c565b9094610144356001600160401b03811161101e57611fcd90369060040161291c565b88546001600160a01b03169190338390036123635760443593600454850361235457601254906001600160401b038916976001600160401b038360a01c168910612315578161233357505087944388116123245761202a88613527565b945b85156123155761203a612a63565b98600654996001600160401b03808c60401c169116148015906122f2575b80156122d6575b6122c757908d96959493929163ffffffff6011541696600354996001600160401b038b60801c16995060018a01926001600160401b0384116122b0576001600160401b0393929184916040519b632d8a30cd60e21b8d5260048d015260248c01521660448a0152606489015216608487015260a486015260c4850152606435968760e486015260843561010486015260a4359b8c61012487015260c435916001600160401b0383168093036122ac5760209587956121588f9461216b9489979688976101448901526001600160401b036121376128f2565b166101648901526101848801526101e06101a48801526101e4870191612a43565b848103600319016101c486015291612a43565b03916001600160a01b03165afa9081156122a1578991612282575b50156122735767ffffffffffffffff60801b906121a290612aa3565b60801b16906001600160401b0360801b1916176003556004556fffffffffffffffff00000000000000006121d4612a79565b60401b16916001600160401b0360801b9060801b169077ffffffffffffffffffffffffffffffff0000000000000000191617176006557f5a66941dc92cb865480c966eff640c02b1d00d544b74332fd67c6f1cbfccdf39608061223683613595565b936001600160401b03600354831c1693600454906001600160401b0360065460401c1691604051938452602084015260408301526060820152a380f35b6309bde33960e01b8852600488fd5b61229b915060203d60201161099f5761099181836129e6565b5f612186565b6040513d8b823e3d90fd5b8e80fd5b50505060248f634e487b7160e01b81526011600452fd5b633d9dffbd60e01b8e5260048efd5b506122df612a79565b6001600160401b03808c1691161161205f565b506122fb612a79565b6001600160401b038061230c612a63565b16911610612058565b632705871360e01b8d5260048dfd5b632705871360e01b8c5260048cfd5b888297921115612315574387116123155761234e9096613527565b9461202c565b6309bde33960e01b8b5260048bfd5b6314f8a09f60e21b8a5260048afd5b50346102e25760a03660031901126102e25761238c612870565b612394612886565b9061239d6128c6565b606435906123a961289c565b6001600160a01b038116959093908615612631576123c682613289565b604051639c4bad2960e01b81526001600160a01b03831695906020816004818a5afa9081156109a6578391612612575b506040516337de09eb60e11b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa9081156111385784916125f3575b501561110a5760405163b389e30560e01b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa9081156111385784916125d4575b501561110a576040516337de09eb60e11b81526001600160401b039190911660048201526001600160a01b0391909116602482015260208160448161100f60921b5afa9081156106a55782916125b5575b50156125a65750946001600160401b03926125016001600160801b0393602098613314565b939061254782604051996125148b612981565b898b52338c8c015260018060a01b0316968760408c015216988960608201528560808201528460a082015260055461343d565b97612551896134c2565b956040519889528a8901526040880152166060860152608085015260a08401521660c0820152817ffee50869847a4d073bfd83ec655472febff62beb46febf4ec48752f0686affd160e03393a3604051908152f35b6354cfe65960e01b8152600490fd5b6125ce915060203d60201161099f5761099181836129e6565b5f6124dc565b6125ed915060203d60201161099f5761099181836129e6565b5f61248b565b61260c915060203d60201161099f5761099181836129e6565b5f61243e565b61262b915060203d6020116111695761115b81836129e6565b5f6123f6565b638dc30b3960e01b8152600490fd5b50346102e25760203660031901126102e25761265a612870565b6001546001600160a01b031633036109c0576001600160a01b03168082526008602052604082205460ff161561096857808252600860205260408220805461ff0019166101001790557f22ab73af03f04a21e91c7923327f99279b7f5d07d9551762c39bccdf051f1fe98280a280f35b90503461282f5760c036600319011261282f576126e5612870565b6126ed612886565b916126f66128c6565b6084356001600160401b03811680910361282f5760a4356001600160401b03811161282f5761272990369060040161291c565b9190943033036128615760115463a9059cbb60e01b86526001600160a01b03602091821c811660048801526001600160801b0386166024880152919091169490816044815f895af1908115612824575f91612842575b501561283357601154602081901c6001600160a01b031693843b1561282f575f9663ffffffff9488946001600160801b03612804946040519c8d9b8c9a8b996311da526160e01b8b521660048a01526024890152606435604489015260018060a01b0316606488015216608486015260a485015260e060c485015260e4840191612a43565b03925af1801561282457612816575080f35b61282291505f906129e6565b005b6040513d5f823e3d90fd5b5f80fd5b6312171d8360e31b5f5260045ffd5b61285b915060203d60201161099f5761099181836129e6565b5f61277f565b6314e1dbf760e11b5f5260045ffd5b600435906001600160a01b038216820361282f57565b602435906001600160a01b038216820361282f57565b608435906001600160a01b038216820361282f57565b35906001600160a01b038216820361282f57565b604435906001600160801b038216820361282f57565b600435906001600160401b038216820361282f57565b60e435906001600160401b038216820361282f57565b35906001600160401b038216820361282f57565b9181601f8401121561282f578235916001600160401b03831161282f576020838186019501011161282f57565b90600182811c92168015612977575b602083101461296357565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612958565b60c081019081106001600160401b0382111761299c57604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761299c57604052565b604081019081106001600160401b0382111761299c57604052565b90601f801991011681019081106001600160401b0382111761299c57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081602091031261282f5751801515810361282f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b60c4356001600160401b038116810361282f5790565b60e4356001600160401b038116810361282f5790565b356001600160401b038116810361282f5790565b6001600160401b03166001600160401b038114612ac05760010190565b634e487b7160e01b5f52601160045260245ffd5b600754811015612af05760075f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b60065460c01c48810290808204481490151715612ac05764e8d4a51000810190818111612ac05764e8d4a50fff01908111612ac05764e8d4a510006001600160801b0391041690565b6001600160801b0360035416620186a0026001600160801b038116908103612ac05790565b356001600160a01b038116810361282f5790565b356001600160801b038116810361282f5790565b903590601e198136030182121561282f57018035906001600160401b03821161282f5760200191813603831361282f57565b600b54905f91600c5481146131a5576064810691825f52600d60205260405f2054925f198414801561319b575b613186578515908115613194575f19925b60408051602081019182529590926001600160a01b03612c29846128b2565b1660608801526020830135608088018190529960408401956001600160a01b03612c52886128b2565b1660a08a015260608501998a356001600160801b03811680910361282f5760c08b0152608086013560e08b015260a0860196612c8d88612908565b6001600160401b03166101008c015260c087019a612caa8c612908565b6001600160401b03166101208201528060e089019b612cc98d8b613803565b61014084016101209052610180840190612ce292612a43565b612cf06101008c018c613803565b848303605f1901610160860152612d079291612a43565b90604083015203601f1981018252612d1f90826129e6565b51902003613186571561317357505f52600d6020525f1960405f205560018101809111612ac057600b555b612d5381612b72565b936001600160401b03612d6587612a8f565b1615612fc457629896806001600160401b03612d8085612a8f565b1611612f57576001600160401b03612d9784612a8f565b16612e3c57505050916001600160801b035f516020613a785f395f51905f529492612df1612deb86612ddd612dcd606099612b72565b612dd689612b86565b90866138ef565b159586612e19575b50612b72565b94612b86565b90604051975060018060a01b0316875216602086015215604085015260018060a01b031692a3565b612e3690612e2f612e298a612b86565b91612a8f565b9086613834565b5f612de5565b612e61612e4885612b72565b91612e5b612e558a612b86565b95612a8f565b93612b9a565b9092303b1561282f57604051625d97ef60e01b81526001600160a01b03808916600483015290931660248401526001600160801b03949094166044830152606482018a90526001600160401b0393909316608482015260c060a4820152915f9183918291612ed39160c4840191612a43565b038183305af19081612f18575b505f516020613a785f395f51905f529492612df1612deb606096946001600160801b0394155f14612f115789612ddd565b6001612ddd565b6001600160801b0391965092612df1612deb60609694612f475f5f516020613a785f395f51905f529a986129e6565b5f99945094965050509294612ee0565b50505083919450612f9f612f996001600160801b0392612f94606096612f8d612e295f516020613a785f395f51905f529a612b86565b908a613834565b612b72565b92612b86565b604080516001600160a01b0397881681529290911660208301525f90820152931692a3565b50935050935050612fd6919350612b72565b612fde612b04565b926001600160801b03612ff082612b86565b166001600160801b03851611613158575b8361300e61301392612b86565b6132f4565b906001600160801b03841661313b575b6130368261303085612b72565b836138ef565b156130ac577f0f7ef08806234f85aaee43d3ba4589c3bc6d5ac3fc8edd56fc3d91cc7553bdcb926130a7906001600160a01b039061307390612b72565b1694604051938493849160409194936001600160801b038092606086019760018060a01b0316865216602085015216910152565b0390a2565b6001600160a01b0381165f908152600a602052604090207f5fea28d0adb7d877ae3259768f41ad6741aa1784c4475746dd931364f62e68a1936130a7916130f282612b72565b60018060a01b03165f5260205260405f206001600160801b0361311886828454166132d4565b82546001600160801b03191691161790556001600160a01b039061307390612b72565b5f546131529085906001600160a01b0316836138ef565b50613023565b61300e93508061316a61301392612b86565b94509050613001565b91505f52600d60205260405f2055612d4a565b626aee3160e51b5f5260045ffd5b8692612c0a565b505f198614612bf9565b63d7fa91d160e01b5f5260045ffd5b60075480821015613221575f198101908111612ac05781146132195760018101809111612ac0576001600160401b0360016131f26201518093612ad4565b50015460081c1601906001600160401b038211612ac0576001600160401b03821643109190565b506001905f90565b50505f905f90565b9081602091031261282f57516001600160401b038116810361282f5790565b3560ff8116810361282f5790565b6001600160401b03811161299c57601f01601f191660200190565b600954811015612af05760095f5260205f2001905f90565b6001600160a01b03165f9081526008602052604090205460ff8116156132c55760081c60ff16156132b657565b63dec712ef60e01b5f5260045ffd5b631fcf8c4760e11b5f5260045ffd5b906001600160801b03809116911601906001600160801b038211612ac057565b906001600160801b03809116911603906001600160801b038211612ac057565b909161331e612b4d565b926001600160801b03613338613332612b04565b866132d4565b16906001600160801b03811691821061342e5784613355916132f4565b6040516323b872dd60e01b81523360048201523060248201526044810192909252926001600160a01b03166020826064815f855af1918215612824578592613411575b506001600160801b0382166133ab575050565b5f805460405163a9059cbb60e01b81526001600160a01b0390911660048201526001600160801b0393909316602484015260209183916044918391905af18015612824576133f65750565b61340e9060203d60201161099f5761099181836129e6565b50565b6134299060203d60201161099f5761099181836129e6565b613398565b636ba4a1c760e01b5f5260045ffd5b6040519060a060208301935f8552600180831b038151166040850152600180831b036020820151166060850152600180831b0360408201511660808501526001600160801b0360608201511682850152600180831b0360808201511660c0850152015160e083015261010082015261010081526134bc610120826129e6565b51902090565b6005556006546134da6001600160401b038216612aa3565b67ffffffffffffffff199091166001600160401b0382161760065590565b3d15613522573d9061350982613256565b9161351760405193846129e6565b82523d5f602084013e565b606090565b905f80809360405160208101918252602081526135456040826129e6565b519071f90827f1c53a10cb7a02335b1753200029355afa6135646134f8565b9080613589575b6135725750565b90915060208180518101031261282f576020015190565b5060208151101561356b565b80156135e357600c5490600b548203828111612ac057606411156135d457606482065f52600d60205260405f205560018101808211612ac057600c5590565b632764e20b60e01b5f5260045ffd5b505f1990565b60208183031261282f578051906001600160401b03821161282f570181601f8201121561282f5780519061361c82613256565b9261362a60405194856129e6565b8284526020838301011161282f57815f9260208093018386015e8301015290565b604051613657816129cb565b600180825260208083019182526001600160a01b039093165f8181526008948590526040902092518354925161ffff1990931660ff911515919091161791151590931b61ff0016179055600954600160401b81101561299c578060016136c09201600955613271565b81546001600160a01b0360039290921b91821b19169083901b1790556040516306fdde0360e01b81525f81600481855afa908115612824575f916137e9575b506040516395d89b4160e01b81525f81600481865afa908115612824575f916137cf575b5060405163e5a6b10f60e01b8152915f83600481875afa928315612824577f4ac4dcc08b0c26c3fb6b58c64c1392b7934b1ce6b0382a5986ea5c3de795e0539361378b936130a7925f926137a7575b5061379990604051958695606087526060870190612a07565b908582036020870152612a07565b908382036040850152612a07565b6137999192506137c8903d805f833e6137c081836129e6565b8101906135e9565b9190613772565b6137e391503d805f833e6137c081836129e6565b5f613723565b6137fd91503d805f833e6137c081836129e6565b5f6136ff565b9035601e198236030181121561282f5701602081359101916001600160401b03821161282f57813603831361282f57565b909160606001600160401b037fadf6f2901dd7af2f28a594f47a925894a08d4de10609dff591a80642648775c59216936138af6001600160801b036040519561387c87612981565b60018060a01b031692838752306020880152876040880152169485848201525f60808201525f60a082015260055461343d565b9384600555600654906001600160401b036138cb818416612aa3565b1680926001600160401b0319161760065560405192835260208301526040820152a3565b60405163a9059cbb60e01b81526001600160a01b0392831660048201526001600160801b03939093166024840152602091839160449183915f91165af15f9181613941575b5061393e57505f90565b90565b61395b91925060203d60201161099f5761099181836129e6565b905f613934565b60ff1660028114908115613974575090565b600391501490565b602081519101519060208110613990575090565b5f199060200360031b1b1690565b80158015613a47575b613a36575f9081906401000003d0199060079082908181800909086040516020810191602083526020604083015260206060830152608082015263800001e9600160ff1b0360a08201526401000003d01960c082015260c08152613a0c60e0826129e6565b519060055afa613a1a6134f8565b90158015613a3b575b613a3657613a3260019161397c565b1490565b505f90565b50602081511415613a23565b506401000003d0198110156139a756febb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd65042ea6dad60c26f055e80ec401b3437c854ed586a0704d305bb4e9ea4518cfa2646970667358221220922207490627f499bf0fa880b56367f0b988b9410db2c64bf060dcced3d0435464736f6c63430008230033a26469706673582212206fe5621c7a80d0eabfe64bdba837779bc1c672cac045f232b019e9d0fcb9e03564736f6c6343000823003360808060405234601557610188908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c63b628c33414610025575f80fd5b346100db576101e03660031901126100db5760043563ffffffff8116036100db5761004e6100df565b506100576100f6565b5061006061010d565b5060a4356001600160a01b038116036100db5760403660c31901126100db576080366101031901126100db576101a43567ffffffffffffffff81116100db576100ad903690600401610124565b50506101c4359067ffffffffffffffff82116100db576100d36020923690600401610124565b505060018152f35b5f80fd5b6024359067ffffffffffffffff821682036100db57565b6044359067ffffffffffffffff821682036100db57565b6084359067ffffffffffffffff821682036100db57565b9181601f840112156100db5782359167ffffffffffffffff83116100db57602083818601950101116100db5756fea26469706673582212200c036b01d948832941121a643d43a98539d98be88403f06db05d0e96d58723d364736f6c6343000823003360a034606e57601f6105a238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e5760805260405161051b908161008782396080518181816047015261015e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816311da52611461007a5750637b9a730114610032575f80fd5b34610076575f366003190112610076576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100765760e0366003190112610076576004359063ffffffff8216809203610076576024356001600160a01b03811690819003610076576064356001600160a01b038116939084900361007657608435916fffffffffffffffffffffffffffffffff83168093036100765760a4359167ffffffffffffffff83168093036100765760c4359567ffffffffffffffff871161007657366023880112156100765786600401359567ffffffffffffffff871161007657366024888a010111610076575f546104a05760015f9081556390b7f6fd60e01b825260048201849052816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156102bf575f91610323575b50602001516001600160a01b031633036103145760405163a9059cbb60e01b81528160048201528560248201526020816044815f885af19081156102bf575f916102d9575b50156102ca5760e45f928760209860246040519b8c9a8b998a96630a137ff560e01b88526004880152338488015260443560448801526064870152608486015260c060a48601528260c486015201848401378181018301859052601f01601f19168101030193f19081156102bf575f9161027c575b506001600160e01b03191663f5ec800b60e01b0161026d575f8055005b63be51ced360e01b5f5260045ffd5b90506020813d6020116102b7575b81610297602093836104af565b8101031261007657516001600160e01b0319811681036100765781610250565b3d915061028a565b6040513d5f823e3d90fd5b6312171d8360e31b5f5260045ffd5b90506020813d60201161030c575b816102f4602093836104af565b810103126100765751801515810361007657886101db565b3d91506102e7565b63efc26b5760e01b5f5260045ffd5b90503d805f833e61033481836104af565b8101906020818303126100765780519067ffffffffffffffff8211610076570190610140828203126100765760405191610140830183811067ffffffffffffffff82111761048c57604052805163ffffffff8116810361007657835261039c602082016104d1565b60208401526103ad604082016104d1565b60408401526103be606082016104d1565b60608401526103cf608082016104d1565b60808401526103e060a082016104d1565b60a084015260c081015160c084015260e081015160e084015261010081015167ffffffffffffffff81168103610076576101008401526101208101519067ffffffffffffffff8211610076570181601f820112156100765780519067ffffffffffffffff821161048c5760405192610462601f8401601f1916602001856104af565b8284526020838301011161007657815f9260208093018386015e8301015261012082015288610196565b634e487b7160e01b5f52604160045260245ffd5b6336a4d21b60e11b5f5260045ffd5b90601f8019910116810190811067ffffffffffffffff82111761048c57604052565b51906001600160a01b03821682036100765756fea2646970667358221220a5c6c7712e8ddacf93b8f8ca7f2a46e5d9795acbc381f420ab71c2c3860881c064736f6c63430008230033" } diff --git a/specs/ref-impls/src/interfaces/IZone.sol b/specs/ref-impls/src/interfaces/IZone.sol index 2ceafbb7f..7aaa40aaa 100644 --- a/specs/ref-impls/src/interfaces/IZone.sol +++ b/specs/ref-impls/src/interfaces/IZone.sol @@ -610,6 +610,7 @@ interface IZonePortal { error NotAdmin(); error NotFactory(); error AlreadyInitialized(); + error MustDelegateCall(); error NotPendingSequencer(); error NotPendingAdmin(); error InvalidProof(); diff --git a/specs/ref-impls/src/tempo/ZonePortal.sol b/specs/ref-impls/src/tempo/ZonePortal.sol index 7b4233c8d..c704f8073 100644 --- a/specs/ref-impls/src/tempo/ZonePortal.sol +++ b/specs/ref-impls/src/tempo/ZonePortal.sol @@ -59,6 +59,9 @@ contract ZonePortal is IZonePortal { /// @notice Maximum allowed gas fee rate to prevent overflows uint128 public constant MAX_GAS_FEE_RATE = 1e18; + /// @dev The fixed account holding the shared portal logic contract runtime. + address internal constant ZONE_PORTAL_LOGIC_ADDRESS = + 0x5AD1000000000000000000000000000000000000; /*////////////////////////////////////////////////////////////// STORAGE //////////////////////////////////////////////////////////////*/ @@ -152,6 +155,7 @@ contract ZonePortal is IZonePortal { string calldata _rpcUrl ) external + onlyDelegateCall { if (msg.sender != ZONE_FACTORY_ADDRESS) revert NotFactory(); if (_initialized) revert AlreadyInitialized(); @@ -174,6 +178,12 @@ contract ZonePortal is IZonePortal { MODIFIERS //////////////////////////////////////////////////////////////*/ + /// @dev Initialization is valid only in a portal proxy's storage context. + modifier onlyDelegateCall() { + if (address(this) == ZONE_PORTAL_LOGIC_ADDRESS) revert MustDelegateCall(); + _; + } + modifier onlySequencer() { if (msg.sender != sequencer) revert NotSequencer(); _; diff --git a/specs/ref-impls/storage-layouts/ZonePortal.json b/specs/ref-impls/storage-layouts/ZonePortal.json index 2acbfd763..415385e11 100644 --- a/specs/ref-impls/storage-layouts/ZonePortal.json +++ b/specs/ref-impls/storage-layouts/ZonePortal.json @@ -1,7 +1,7 @@ { "storage": [ { - "astId": 4978, + "astId": 4984, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "sequencer", "offset": 0, @@ -9,7 +9,7 @@ "type": "t_address" }, { - "astId": 4981, + "astId": 4987, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "admin", "offset": 0, @@ -17,7 +17,7 @@ "type": "t_address" }, { - "astId": 4984, + "astId": 4990, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "pendingSequencer", "offset": 0, @@ -25,7 +25,7 @@ "type": "t_address" }, { - "astId": 4987, + "astId": 4993, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "zoneGasRate", "offset": 0, @@ -33,7 +33,7 @@ "type": "t_uint128" }, { - "astId": 4989, + "astId": 4995, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "withdrawalBatchIndex", "offset": 16, @@ -41,7 +41,7 @@ "type": "t_uint64" }, { - "astId": 4991, + "astId": 4997, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "blockHash", "offset": 0, @@ -49,7 +49,7 @@ "type": "t_bytes32" }, { - "astId": 4994, + "astId": 5000, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "currentDepositQueueHash", "offset": 0, @@ -57,7 +57,7 @@ "type": "t_bytes32" }, { - "astId": 4997, + "astId": 5003, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "depositCount", "offset": 0, @@ -65,7 +65,7 @@ "type": "t_uint64" }, { - "astId": 5000, + "astId": 5006, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "lastProcessedDepositNumber", "offset": 8, @@ -73,7 +73,7 @@ "type": "t_uint64" }, { - "astId": 5003, + "astId": 5009, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "lastSyncedTempoBlockNumber", "offset": 16, @@ -81,7 +81,7 @@ "type": "t_uint64" }, { - "astId": 5006, + "astId": 5012, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "bouncebackGas", "offset": 24, @@ -89,7 +89,7 @@ "type": "t_uint64" }, { - "astId": 5011, + "astId": 5017, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_encryptionKeys", "offset": 0, @@ -97,7 +97,7 @@ "type": "t_array(t_struct(EncryptionKeyEntry)2600_storage)dyn_storage" }, { - "astId": 5017, + "astId": 5023, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_tokenConfigs", "offset": 0, @@ -105,7 +105,7 @@ "type": "t_mapping(t_address,t_struct(TokenConfig)3005_storage)" }, { - "astId": 5021, + "astId": 5027, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_enabledTokens", "offset": 0, @@ -113,7 +113,7 @@ "type": "t_array(t_address)dyn_storage" }, { - "astId": 5028, + "astId": 5034, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "refunds", "offset": 0, @@ -121,15 +121,15 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint128))" }, { - "astId": 5032, + "astId": 5038, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_withdrawalQueue", "offset": 0, "slot": "11", - "type": "t_struct(WithdrawalQueue)4679_storage" + "type": "t_struct(WithdrawalQueue)4681_storage" }, { - "astId": 5035, + "astId": 5041, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "rpcUrl", "offset": 0, @@ -137,7 +137,7 @@ "type": "t_string_storage" }, { - "astId": 5038, + "astId": 5044, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "pendingAdmin", "offset": 0, @@ -145,7 +145,7 @@ "type": "t_address" }, { - "astId": 5041, + "astId": 5047, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_withdrawalReentrancyStatus", "offset": 0, @@ -153,7 +153,7 @@ "type": "t_uint256" }, { - "astId": 5044, + "astId": 5050, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "zoneId", "offset": 0, @@ -161,7 +161,7 @@ "type": "t_uint32" }, { - "astId": 5046, + "astId": 5052, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "messenger", "offset": 4, @@ -169,7 +169,7 @@ "type": "t_address" }, { - "astId": 5048, + "astId": 5054, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "verifier", "offset": 0, @@ -177,7 +177,7 @@ "type": "t_address" }, { - "astId": 5050, + "astId": 5056, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "genesisTempoBlockNumber", "offset": 20, @@ -185,7 +185,7 @@ "type": "t_uint64" }, { - "astId": 5052, + "astId": 5058, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_initialized", "offset": 28, @@ -308,13 +308,13 @@ } ] }, - "t_struct(WithdrawalQueue)4679_storage": { + "t_struct(WithdrawalQueue)4681_storage": { "encoding": "inplace", "label": "struct WithdrawalQueue", "numberOfBytes": "96", "members": [ { - "astId": 4672, + "astId": 4674, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "head", "offset": 0, @@ -322,7 +322,7 @@ "type": "t_uint256" }, { - "astId": 4674, + "astId": 4676, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "tail", "offset": 0, @@ -330,7 +330,7 @@ "type": "t_uint256" }, { - "astId": 4678, + "astId": 4680, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "slots", "offset": 0,