[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "maxSupply_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "supplyAfterMint", "type": "uint256" } ], "name": "MaxSupplyExceeded", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "SenderNotBurner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "SenderNotMinter", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "burner", "type": "address" } ], "name": "BurnAccessGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "burner", "type": "address" } ], "name": "BurnAccessRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "ccipAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "CCIPAdminSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" } ], "name": "MintAccessGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" } ], "name": "MintAccessRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "OwnershipTransferRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseApproval", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getBurners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCCIPAdmin", "outputs": [ { "internalType": "address", "name": "ccipAdmin", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMinters", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burner", "type": "address" } ], "name": "grantBurnRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burnAndMinter", "type": "address" } ], "name": "grantMintAndBurnRoles", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "grantMintRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseApproval", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burner", "type": "address" } ], "name": "isBurner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burner", "type": "address" } ], "name": "revokeBurnRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "revokeMintRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ccipAdmin", "type": "address" } ], "name": "setCCIPAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "transferAndCall", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040523480156200001157600080fd5b5060405162001cd038038062001cd0833981016040819052620000349162000282565b83838383338060008686818160036200004e83826200039e565b5060046200005d82826200039e565b5050506001600160a01b0384169150620000c090505760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384811691909117909155811615620000f357620000f3816200010e565b50505060ff90911660805260a052506200046a945050505050565b336001600160a01b03821603620001685760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620000b7565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001e257600080fd5b81516001600160401b0380821115620001ff57620001ff620001ba565b604051601f8301601f19908116603f011681019082821181831017156200022a576200022a620001ba565b81604052838152602092508660208588010111156200024857600080fd5b600091505b838210156200026c57858201830151818301840152908201906200024d565b6000602085830101528094505050505092915050565b600080600080608085870312156200029957600080fd5b84516001600160401b0380821115620002b157600080fd5b620002bf88838901620001d0565b95506020870151915080821115620002d657600080fd5b50620002e587828801620001d0565b935050604085015160ff81168114620002fd57600080fd5b6060959095015193969295505050565b600181811c908216806200032257607f821691505b6020821081036200034357634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000399576000816000526020600020601f850160051c81016020861015620003745750805b601f850160051c820191505b81811015620003955782815560010162000380565b5050505b505050565b81516001600160401b03811115620003ba57620003ba620001ba565b620003d281620003cb84546200030d565b8462000349565b602080601f8311600181146200040a5760008415620003f15750858301515b600019600386901b1c1916600185901b17855562000395565b600085815260208120601f198616915b828110156200043b578886015182559484019460019091019084016200041a565b50858210156200045a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516118326200049e600039600081816104710152818161075901526107830152600061028701526118326000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806386fe8b431161011a578063aa271e1a116100ad578063d5abeb011161007c578063d5abeb011461046f578063d73dd62314610495578063dd62ed3e146104a8578063f2fde38b146104bb578063f81094f3146104ce57600080fd5b8063aa271e1a14610423578063c2e3273d14610436578063c630948d14610449578063c64d0ebc1461045c57600080fd5b80639dc29fac116100e95780639dc29fac146103d7578063a457c2d7146103ea578063a8fa343c146103fd578063a9059cbb1461041057600080fd5b806386fe8b43146103915780638da5cb5b146103995780638fd6a6ac146103be57806395d89b41146103cf57600080fd5b806340c10f191161019d578063661884631161016c57806366188463146103255780636b32810b1461033857806370a082311461034d57806379ba50971461037657806379cc67901461037e57600080fd5b806340c10f19146102d757806342966c68146102ec5780634334614a146102ff5780634f5632f81461031257600080fd5b806323b872dd116101d957806323b872dd1461026d578063313ce5671461028057806339509351146102b15780634000aea0146102c457600080fd5b806301ffc9a71461020b57806306fdde0314610233578063095ea7b31461024857806318160ddd1461025b575b600080fd5b61021e61021936600461146f565b6104e1565b60405190151581526020015b60405180910390f35b61023b61054e565b60405161022a91906114df565b61021e61025636600461150e565b6105e0565b6002545b60405190815260200161022a565b61021e61027b366004611538565b6105f8565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161022a565b61021e6102bf36600461150e565b61061c565b61021e6102d236600461158a565b61063e565b6102ea6102e536600461150e565b610714565b005b6102ea6102fa366004611655565b6107fc565b61021e61030d36600461166e565b610830565b6102ea61032036600461166e565b61083d565b61021e61033336600461150e565b61088c565b61034061089f565b60405161022a9190611689565b61025f61035b36600461166e565b6001600160a01b031660009081526020819052604090205490565b6102ea6108b0565b6102ea61038c36600461150e565b61095e565b610340610994565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161022a565b600b546001600160a01b03166103a6565b61023b6109a0565b6102ea6103e536600461150e565b6109af565b61021e6103f836600461150e565b6109b9565b6102ea61040b36600461166e565b610a34565b61021e61041e36600461150e565b610a89565b61021e61043136600461166e565b610a97565b6102ea61044436600461166e565b610aa4565b6102ea61045736600461166e565b610af3565b6102ea61046a36600461166e565b610b01565b7f000000000000000000000000000000000000000000000000000000000000000061025f565b6102ea6104a336600461150e565b610b50565b61025f6104b63660046116d6565b610b5a565b6102ea6104c936600461166e565b610b85565b6102ea6104dc36600461166e565b610b96565b60006001600160e01b031982166336372b0760e01b148061051257506001600160e01b03198216630200057560e51b145b8061052d57506001600160e01b0319821663e6599b4d60e01b145b8061054857506001600160e01b031982166301ffc9a760e01b145b92915050565b60606003805461055d90611709565b80601f016020809104026020016040519081016040528092919081815260200182805461058990611709565b80156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b6000336105ee818585610be5565b5060019392505050565b600033610606858285610c0c565b610611858585610c80565b506001949350505050565b6000336105ee81858561062f8383610b5a565b6106399190611759565b610be5565b600061064a8484610a89565b50836001600160a01b0316336001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16858560405161069092919061176c565b60405180910390a36001600160a01b0384163b156105ee57604051635260769b60e11b81526001600160a01b0385169063a4c0ed36906106d89033908790879060040161178d565b600060405180830381600087803b1580156106f257600080fd5b505af1158015610706573d6000803e3d6000fd5b505050505060019392505050565b61071d33610a97565b6107415760405163e2c8c9d560e01b81523360048201526024015b60405180910390fd5b81306001600160a01b0382160361075757600080fd5b7f0000000000000000000000000000000000000000000000000000000000000000158015906107b857507f0000000000000000000000000000000000000000000000000000000000000000826107ac60025490565b6107b69190611759565b115b156107ed57816107c760025490565b6107d19190611759565b60405163cbbf111360e01b815260040161073891815260200190565b6107f78383610ca1565b505050565b61080533610830565b6108245760405163c820b10b60e01b8152336004820152602401610738565b61082d81610d60565b50565b6000610548600983610d6a565b610845610d8c565b610850600982610de1565b1561082d576040516001600160a01b038216907f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c90600090a250565b600061089883836109b9565b9392505050565b60606108ab6007610df6565b905090565b6006546001600160a01b031633146109035760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b6044820152606401610738565b600580546001600160a01b0319808216339081179093556006805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b61096733610830565b6109865760405163c820b10b60e01b8152336004820152602401610738565b6109908282610e03565b5050565b60606108ab6009610df6565b60606004805461055d90611709565b610990828261095e565b600033816109c78286610b5a565b905083811015610a275760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610738565b6106118286868403610be5565b610a3c610d8c565b600b80546001600160a01b0319166001600160a01b0383169081179091556040513391907f829d282ca41cc72804244ab936c9b012d0be38f30f14248be0a71bdf0af71c9190600090a350565b6000336105ee818585610c80565b6000610548600783610d6a565b610aac610d8c565b610ab7600782610e18565b1561082d576040516001600160a01b038216907fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea90600090a250565b610afc81610aa4565b61082d815b610b09610d8c565b610b14600982610e18565b1561082d576040516001600160a01b038216907f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad90600090a250565b6107f7828261061c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b8d610d8c565b61082d81610e2d565b610b9e610d8c565b610ba9600782610de1565b1561082d576040516001600160a01b038216907fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e990600090a250565b81306001600160a01b03821603610bfb57600080fd5b610c06848484610ed7565b50505050565b6000610c188484610b5a565b90506000198114610c065781811015610c735760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610738565b610c068484848403610be5565b81306001600160a01b03821603610c9657600080fd5b610c06848484610ffb565b6001600160a01b038216610cf75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610738565b8060026000828254610d099190611759565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b61082d338261119f565b6001600160a01b03811660009081526001830160205260408120541515610898565b6005546001600160a01b03163314610ddf5760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606401610738565b565b6000610898836001600160a01b0384166112d1565b60606000610898836113c4565b610e0e823383610c0c565b610990828261119f565b6000610898836001600160a01b038416611420565b336001600160a01b03821603610e855760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610738565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b6001600160a01b038316610f395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610738565b6001600160a01b038216610f9a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610738565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661105f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610738565b6001600160a01b0382166110c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610738565b6001600160a01b038316600090815260208190526040902054818110156111395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610738565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c06565b6001600160a01b0382166111ff5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610738565b6001600160a01b038216600090815260208190526040902054818110156112735760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610738565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600081815260018301602052604081205480156113ba5760006112f56001836117bd565b8554909150600090611309906001906117bd565b905081811461136e576000866000018281548110611329576113296117d0565b906000526020600020015490508087600001848154811061134c5761134c6117d0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061137f5761137f6117e6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610548565b6000915050610548565b60608160000180548060200260200160405190810160405280929190818152602001828054801561141457602002820191906000526020600020905b815481526020019060010190808311611400575b50505050509050919050565b600081815260018301602052604081205461146757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610548565b506000610548565b60006020828403121561148157600080fd5b81356001600160e01b03198116811461089857600080fd5b6000815180845260005b818110156114bf576020818501810151868301820152016114a3565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108986020830184611499565b80356001600160a01b038116811461150957600080fd5b919050565b6000806040838503121561152157600080fd5b61152a836114f2565b946020939093013593505050565b60008060006060848603121561154d57600080fd5b611556846114f2565b9250611564602085016114f2565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561159f57600080fd5b6115a8846114f2565b925060208401359150604084013567ffffffffffffffff808211156115cc57600080fd5b818601915086601f8301126115e057600080fd5b8135818111156115f2576115f2611574565b604051601f8201601f19908116603f0116810190838211818310171561161a5761161a611574565b8160405282815289602084870101111561163357600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561166757600080fd5b5035919050565b60006020828403121561168057600080fd5b610898826114f2565b6020808252825182820181905260009190848201906040850190845b818110156116ca5783516001600160a01b0316835292840192918401916001016116a5565b50909695505050505050565b600080604083850312156116e957600080fd5b6116f2836114f2565b9150611700602084016114f2565b90509250929050565b600181811c9082168061171d57607f821691505b60208210810361173d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054857610548611743565b8281526040602082015260006117856040830184611499565b949350505050565b60018060a01b03841681528260208201526060604082015260006117b46060830184611499565b95945050505050565b8181038181111561054857610548611743565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea26469706673582212209ba68fbd1c7653e5d168a4747d8f44acf920244e5bd9318dd7324c5da3b918b164736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054541524e4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054541524e4d000000000000000000000000000000000000000000000000000000