[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "baseUri_", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTokenID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_tos", "type": "address[]" } ], "name": "ownerBatchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseURIString", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "startTokenId", "type": "uint256" } ], "name": "setBatchStartTokenId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60808060405234610016576128d9908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146118d05750806306fdde031461182b578063081812fc1461180d578063095ea7b31461169357806323b872dd1461166a578063248a9ca31461163b578063282c51f3146116125780632f2ff15d1461157157806336568abe146114df5780633e262e5a146113b957806340c10f191461131f5780634253e8a01461127657806342842e0e1461124e57806342966c681461100b57806343508b0514610f1f57806355f804b314610de05780635a570c0c14610dc25780636352211e14610d9257806370a0823114610cfb57806391d1485414610cae57806395d89b4114610be05780639abc832014610bb0578063a217fddf14610b94578063a22cb46514610ac6578063a6487c531461048f578063b88d4fde14610430578063c87b56dd1461022e578063d539139314610205578063d547741f146101c45763e985e9c51461016957600080fd5b346101bf5760403660031901126101bf5761018261199d565b61018a6119b3565b9060018060a01b03809116600052606a60205260406000209116600052602052602060ff604060002054166040519015158152f35b600080fd5b346101bf5760403660031901126101bf576102036004356101e36119b3565b908060005260976020526101fe600160406000200154611e82565b611f81565b005b346101bf5760003660031901126101bf5760206040516000805160206128648339815191528152f35b346101bf576020806003193601126101bf5760043561025461024f82612327565b611ff7565b8161025d611b01565b805190929015610417576000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8181811015610409575b508490506904ee2d6d415b85acef8160201b808310156103fd575b5050662386f26fc10000808210156103f0575b506305f5e100808210156103e3575b50612710808210156103d6575b5060648110156103c8575b600a809110156103be575b60018084019281602161031761030187611a57565b9661030f6040519889611a34565b808852611a57565b8689019790601f1901368937860101905b610388575b505050509261036e92916103629460405195836103538895518092888089019101611955565b84019151809386840190611955565b01038084520182611a34565b905b610384604051928284938452830190611978565b0390f35b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156103b957919082610328565b61032d565b91600101916102ec565b6064600291049201916102e1565b60049104920191866102d6565b60089104920191866102c9565b60109104920191866102ba565b930192900483876102a7565b60409450049050868061028c565b505050604051610426816119fe565b6000815290610370565b346101bf5760803660031901126101bf5761044961199d565b6104516119b3565b606435916001600160401b0383116101bf57366023840112156101bf57610485610203933690602481600401359101611a72565b91604435916120ea565b346101bf5760603660031901126101bf576004356001600160401b0381116101bf576104bf903690600401611aa9565b6024356001600160401b0381116101bf576104de903690600401611aa9565b906044356001600160401b0381116101bf576104fe903690600401611aa9565b6000549060ff8260081c161591828093610ab9575b8015610aa2575b15610a465760ff19811660011760005582610a34575b5061054b60ff60005460081c16610546816125ab565b6125ab565b82516001600160401b0381116107e05780610567606554611ac7565b94601f958681116109e2575b5060209086831160011461097a5760009261096f575b50508160011b916000199060031b1c1916176065555b83516001600160401b0381116107e0576105ba606654611ac7565b848111610929575b506020948482116001146108c2579481929394956000926108b7575b50508160011b916000199060031b1c1916176066555b336000908152600080516020612824833981519152602052604090205460979060ff1615610878575b600080516020612864833981519152806000528160205260406000203360005260205260ff6040600020541615610837575b506000805160206127e483398151915290816000528060205260406000203360005260205260ff60406000205416156107f6575b50508051906001600160401b0382116107e0576106a160cd54611ac7565b84811161079a575b506020938211600114610735579281929360009261072a575b50508160011b916000199060031b1c19161760cd555b600060ca55600060cc5560ff1960cb541660cb556106f257005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b0151905083806106c2565b601f1982169360cd600052806000209160005b8681106107825750836001959610610769575b505050811b0160cd556106d8565b015160001960f88460031b161c1916905583808061075b565b91926020600181928685015181550194019201610748565b60cd60005260206000208580850160051c820192602086106107d7575b0160051c01905b8181106107cb57506106a9565b600081556001016107be565b925081926107b7565b634e487b7160e01b600052604160045260246000fd5b816000526020526040600020336000526020526040600020600160ff19825416179055339033906000805160206127a4833981519152600080a48380610683565b80600052816020526040600020336000526020526040600020600160ff19825416179055339033906000805160206127a4833981519152600080a48461064f565b60008052806020526040600020336000526020526040600020600160ff19825416179055333360006000805160206127a48339815191528180a461061d565b0151905085806105de565b601f198216956066600052806000209160005b888110610911575083600195969798106108f8575b505050811b016066556105f4565b015160001960f88460031b161c191690558580806108ea565b919260206001819286850151815501940192016108d5565b606660005260206000208580840160051c82019260208510610966575b0160051c01905b81811061095a57506105c2565b6000815560010161094d565b92508192610946565b015190508680610589565b606560009081528281209350601f198516905b8181106109ca57509084600195949392106109b1575b505050811b0160655561059f565b015160001960f88460031b161c191690558680806109a3565b9293602060018192878601518155019501930161098d565b909150606560005260206000208680850160051c82019260208610610a2b575b9085949392910160051c01905b818110610a1c5750610573565b60008155849350600101610a0f565b92508192610a02565b61ffff19166101011760005584610530565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561051a5750600160ff82161461051a565b50600160ff821610610513565b346101bf5760403660031901126101bf57610adf61199d565b602435908115158092036101bf576001600160a01b031690338214610b535733600052606a602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606490fd5b346101bf5760003660031901126101bf57602060405160008152f35b346101bf5760003660031901126101bf57610384610bcc611b01565b604051918291602083526020830190611978565b346101bf5760003660031901126101bf57604051600090606654610c0381611ac7565b808352600191808316908115610c865750600114610c2c575b61038483610bcc81870382611a34565b6066600090815260209450917f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b828410610c7357505050810190910190610bcc81610c1c565b8054858501870152928501928101610c5a565b6103849550610bcc93506020915091849260ff191682840152151560051b8201019350610c1c565b346101bf5760403660031901126101bf57610cc76119b3565b600435600052609760205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101bf5760203660031901126101bf576001600160a01b03610d1c61199d565b168015610d3b5760005260686020526020604060002054604051908152f35b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b346101bf5760203660031901126101bf576020610db060043561203e565b6040516001600160a01b039091168152f35b346101bf5760003660031901126101bf57602060cc54604051908152f35b346101bf576020806003193601126101bf576001600160401b036004358181116101bf57610e12903690600401611aa9565b91610e1b611d7c565b82519182116107e057610e2f60cd54611ac7565b601f8111610ed8575b5080601f8311600114610e7457508192600092610e69575b5050600019600383901b1c191660019190911b1760cd55005b015190508280610e50565b90601f1983169360cd60005282600020926000905b868210610ec05750508360019510610ea7575b505050811b0160cd55005b015160001960f88460031b161c19169055828080610e9c565b80600185968294968601518155019501930190610e89565b60cd60005281600020601f840160051c810191838510610f15575b601f0160051c01905b818110610f095750610e38565b60008155600101610efc565b9091508190610ef3565b346101bf5760403660031901126101bf57610f3861199d565b602490813590610f46611bbe565b610f5a6001600160a01b038216151561260b565b8115610fc757610f6e6103e883111561274e565b60005b828110610f875760cb805460ff19166001179055005b60cc9081549160018301809311610fb25782610fad93610fa8925584612697565b612794565b610f71565b85634e487b7160e01b60005260116004526000fd5b60405162461bcd60e51b815260206004820152601e818501527f416d6f756e74206d7573742062652067726561746572207468616e20302e00006044820152606490fd5b346101bf576020806003193601126101bf57600435906000805160206127e48339815191528060005260978252604060002033600052825260ff60406000205416156110c6575060009061105e8361203e565b506110688361203e565b83835260698252604080842080546001600160a01b03199081169091556001600160a01b03909216808552606884528185208054861901905585855260679093528320805490911690556000805160206128848339815191528280a4005b906110d0336124af565b916040516110dd81611a19565b604281528281019160603684378151156112385760308353815160019081101561123857607860218401536041905b8082116111de5750506111ad57611179936111889260489260405196879360008051602061284483398151915288860152611150815180928a603789019101611955565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190611955565b01036028810185520183611a34565b6111a960405192839262461bcd60e51b845260048401526024830190611978565b0390fd5b6064836040519062461bcd60e51b825280600483015260248201526000805160206127c48339815191526044820152fd5b9091600f81166010811015611238576f181899199a1a9b1b9c1cb0b131b232b360811b901a61120d848661249e565b5360041c91801561122257600019019061110c565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b346101bf5761020361125f366119c9565b906040519261126d846119fe565b600084526120ea565b346101bf5760203660031901126101bf57600435611292611d7c565b60cb5460ff81166112b4578160019260ca5560cc5560ff19161760cb55600080f35b60405162461bcd60e51b815260206004820152603f60248201527f4e465420627573696e65737320686173206265656e206c61756e63686564206160448201527f6e64206d6f64696669636174696f6e206973206e6f7420616c6c6f7765642e006064820152608490fd5b346101bf5760403660031901126101bf5761133861199d565b602435611343611bbe565b6113576001600160a01b038316151561260b565b60ca5481116113785761136991612697565b60cb805460ff19166001179055005b60405162461bcd60e51b8152602060048201526019602482015278020b93930bc903632b733ba341036bab9ba1032b8bab0b6171603d1b6044820152606490fd5b346101bf5760203660031901126101bf576004356001600160401b038082116101bf57366023830112156101bf5781600401359081116101bf576024600592368284861b830101116101bf5761140d611bbe565b821561148d576114216103e884111561274e565b60005b83811061143a5760cb805460ff19166001179055005b60cc90815491600183018093116114785782905580861b83018401356001600160a01b03811681036101bf5761147392610fa891612697565b611424565b84634e487b7160e01b60005260116004526000fd5b60405162461bcd60e51b8152602060048201526025818401527f4172726179206c656e677468206d757374206265206772656174657220746861604482015264037101817160dd1b6064820152608490fd5b346101bf5760403660031901126101bf576114f86119b3565b336001600160a01b038216036115145761020390600435611f81565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b346101bf5760403660031901126101bf5760043561158d6119b3565b8160005260976020526115a7600160406000200154611e82565b81600052609760205260406000209060018060a01b0316908160005260205260ff60406000205416156115d657005b8160005260976020526040600020816000526020526040600020600160ff1982541617905533916000805160206127a4833981519152600080a4005b346101bf5760003660031901126101bf5760206040516000805160206127e48339815191528152f35b346101bf5760203660031901126101bf5760043560005260976020526020600160406000200154604051908152f35b346101bf5761020361167b366119c9565b9161168e6116898433612163565b612088565b61222b565b346101bf5760403660031901126101bf576116ac61199d565b602435906001600160a01b0380806116c38561203e565b169216918083146117be57803314908115611799575b501561172e57600083815260696020526040902080546001600160a01b031916831790556117068361203e565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052606a60205260406000203360005260205260ff60406000205416846116d9565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b346101bf5760203660031901126101bf576020610db0600435612061565b346101bf5760003660031901126101bf5760405160009060655461184e81611ac7565b808352600191808316908115610c8657506001146118765761038483610bcc81870382611a34565b6065600090815260209450917f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75b8284106118bd57505050810190910190610bcc81610c1c565b80548585018701529285019281016118a4565b346101bf5760203660031901126101bf576004359063ffffffff60e01b82168092036101bf57602091637965db0b60e01b8114908115611912575b5015158152f35b6380ac58cd60e01b811491508115611944575b8115611933575b508361190b565b6301ffc9a760e01b1490508361192c565b635b5e139f60e01b81149150611925565b60005b8381106119685750506000910152565b8181015183820152602001611958565b9060209161199181518092818552858086019101611955565b601f01601f1916010190565b600435906001600160a01b03821682036101bf57565b602435906001600160a01b03821682036101bf57565b60609060031901126101bf576001600160a01b039060043582811681036101bf579160243590811681036101bf579060443590565b602081019081106001600160401b038211176107e057604052565b608081019081106001600160401b038211176107e057604052565b601f909101601f19168101906001600160401b038211908210176107e057604052565b6001600160401b0381116107e057601f01601f191660200190565b929192611a7e82611a57565b91611a8c6040519384611a34565b8294818452818301116101bf578281602093846000960137010152565b9080601f830112156101bf57816020611ac493359101611a72565b90565b90600182811c92168015611af7575b6020831014611ae157565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ad6565b6040519060008260cd5491611b1583611ac7565b808352600193808516908115611b9d5750600114611b3d575b50611b3b92500383611a34565b565b60cd60009081527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e94602093509091905b818310611b85575050611b3b935082010138611b2e565b85548884018501529485019487945091830191611b6e565b9050611b3b94506020925060ff191682840152151560051b82010138611b2e565b3360009081527f81bcdf06b56c0ed62a68a6ae231e66722c27e6665c84ec0015693a6d86f2bb93602090815260408083205490926000805160206128648339815191529160ff1615611c105750505050565b611c19336124af565b91845190611c2682611a19565b60428252848201926060368537825115611d685760308453825190600191821015611d685790607860218501536041915b818311611cfa57505050611cca5760486111a9938693611cae93611c9f98519889936000805160206128448339815191528a860152611150815180928c603789019101611955565b01036028810187520185611a34565b5192839262461bcd60e51b845260048401526024830190611978565b60648486519062461bcd60e51b825280600483015260248201526000805160206127c48339815191526044820152fd5b909192600f81166010811015611d54576f181899199a1a9b1b9c1cb0b131b232b360811b901a611d2a858761249e565b5360041c928015611d4057600019019190611c57565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b336000908152600080516020612824833981519152602090815260408083205490929060ff1615611dac57505050565b611db5336124af565b9080845190611dc382611a19565b60428252848201926060368537825115611d685760308453825190600191821015611d685790607860218501536041915b818311611e3c57505050611cca5760486111a9938693611cae93611c9f98519889936000805160206128448339815191528a860152611150815180928c603789019101611955565b909192600f81166010811015611d54576f181899199a1a9b1b9c1cb0b131b232b360811b901a611e6c858761249e565b5360041c928015611d4057600019019190611df4565b60009080825260209060978252604092838120338252835260ff848220541615611eac5750505050565b611eb5336124af565b91845190611ec282611a19565b60428252848201926060368537825115611d685760308453825190600191821015611d685790607860218501536041915b818311611f3b57505050611cca5760486111a9938693611cae93611c9f98519889936000805160206128448339815191528a860152611150815180928c603789019101611955565b909192600f81166010811015611d54576f181899199a1a9b1b9c1cb0b131b232b360811b901a611f6b858761249e565b5360041c928015611d4057600019019190611ef3565b906000918083526097602052604083209160018060a01b03169182845260205260ff604084205416611fb257505050565b8083526097602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b15611ffe57565b60405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606490fd5b6000908152606760205260409020546001600160a01b0316611ac4811515611ff7565b61206d61024f82612327565b6000908152606960205260409020546001600160a01b031690565b1561208f57565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b9061210e9392916120fe6116898433612163565b61210983838361222b565b612344565b1561211557565b60405162461bcd60e51b8152602060048201526032602482015260008051602061280483398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b0380806121778461203e565b169316918383149384156121aa575b508315612194575b50505090565b6121a091929350612061565b161438808061218e565b909350600052606a60205260406000208260005260205260ff604060002054169238612186565b156121d857565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b90612253916122398461203e565b6001600160a01b03939184169284929091831684146121d1565b169182156122d65781612270916122698661203e565b16146121d1565b600080516020612884833981519152600084815260696020526040812060018060a01b03199081815416905583825260686020526040822060001981540190558482526040822060018154019055858252606760205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6000908152606760205260409020546001600160a01b0316151590565b9293600093909291803b156124935794849161239e9660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c976084830190611978565b0393165af184918161244f575b5061243e575050503d600014612436573d6123c581611a57565b906123d36040519283611a34565b81528091833d92013e5b805191826124335760405162461bcd60e51b8152602060048201526032602482015260008051602061280483398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b5060606123dd565b6001600160e01b0319161492509050565b9091508581813d831161248c575b6124678183611a34565b8101031261248857516001600160e01b0319811681036124885790386123ab565b8480fd5b503d61245d565b505050915050600190565b908151811015611238570160200190565b60405190606082016001600160401b038111838210176107e057604052602a82526020820160403682378251156112385760309053815160019081101561123857607860218401536029905b80821161253d57505061250b5790565b606460405162461bcd60e51b815260206004820152602060248201526000805160206127c48339815191526044820152fd5b9091600f81166010811015612596576f181899199a1a9b1b9c1cb0b131b232b360811b901a61256c848661249e565b5360041c9180156125815760001901906124fb565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b156125b257565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b1561261257565b60405162461bcd60e51b81526020600482015260126024820152717265717569726520746f206164647265737360701b6044820152606490fd5b1561265357565b60405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606490fd5b6001600160a01b0316801561270a576126b86126b283612327565b1561264c565b6126c46126b283612327565b6000818152606860209081526040808320805460010190558483526067909152812080546001600160a01b031916831790556000805160206128848339815191528180a4565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b1561275557565b60405162461bcd60e51b815260206004820152601760248201527628bab0b73a34ba3c9037bb32b9333637bb90189818181760491b6044820152606490fd5b6000198114611222576001019056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d537472696e67733a20686578206c656e67746820696e73756666696369656e743c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a8484552433732313a207472616e7366657220746f206e6f6e204552433732315265683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7416363657373436f6e74726f6c3a206163636f756e74200000000000000000009f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d16b044535ae24ea61950306abc5629498751ce8d0ca6f9f7025b5047fbc183464736f6c63430008130033