/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { Plasma } from "../Plasma"; export class Plasma__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( name_: string, symbol_: string, predicate: string, admin: string, overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy( name_, symbol_, predicate, admin, overrides || {} ) as Promise; } getDeployTransaction( name_: string, symbol_: string, predicate: string, admin: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction( name_, symbol_, predicate, admin, overrides || {} ); } attach(address: string): Plasma { return super.attach(address) as Plasma; } connect(signer: Signer): Plasma__factory { return super.connect(signer) as Plasma__factory; } static connect(address: string, signerOrProvider: Signer | Provider): Plasma { return new Contract(address, _abi, signerOrProvider) as Plasma; } } const _abi = [ { inputs: [ { internalType: "string", name: "name_", type: "string", }, { internalType: "string", name: "symbol_", type: "string", }, { internalType: "address", name: "predicate", type: "address", }, { internalType: "address", name: "admin", type: "address", }, ], stateMutability: "nonpayable", type: "constructor", }, { 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: false, internalType: "address", name: "userAddress", type: "address", }, { indexed: false, internalType: "address payable", name: "relayerAddress", type: "address", }, { indexed: false, internalType: "bytes", name: "functionSignature", type: "bytes", }, ], name: "MetaTransactionExecuted", 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: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Transfer", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "ERC712_VERSION", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "MINTER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "PREDICATE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "minter", type: "address", }, ], name: "addMinterRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address[]", name: "newMinters", type: "address[]", }, ], name: "addMultipleMinters", 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: [], 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: "userAddress", type: "address", }, { internalType: "bytes", name: "functionSignature", type: "bytes", }, { internalType: "bytes32", name: "sigR", type: "bytes32", }, { internalType: "bytes32", name: "sigS", type: "bytes32", }, { internalType: "uint8", name: "sigV", type: "uint8", }, ], name: "executeMetaTransaction", outputs: [ { internalType: "bytes", name: "", type: "bytes", }, ], stateMutability: "payable", type: "function", }, { inputs: [], name: "getChainId", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getDomainSeperator", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "user", type: "address", }, ], name: "getNonce", outputs: [ { internalType: "uint256", name: "nonce", type: "uint256", }, ], 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: "uint256", name: "index", type: "uint256", }, ], name: "getRoleMember", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleMemberCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], 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: "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: "user", 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: [ { internalType: "address", name: "user", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "publicMint", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "minter", type: "address", }, ], name: "removeMinterRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address[]", name: "mintersToRemove", type: "address[]", }, ], name: "removeMultipleMinters", outputs: [], stateMutability: "nonpayable", 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: [], 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: "recipient", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "transfer", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "sender", type: "address", }, { internalType: "address", name: "recipient", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "transferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60806040526008805460ff191690553480156200001b57600080fd5b5060405162002582380380620025828339810160408190526200003e916200052a565b83518490849062000057906003906020850190620003d6565b5080516200006d906004906020840190620003d6565b50506005805460ff1916601217905550604080518082019091526006815265506c61736d6160d01b6020820152620000a5906200011f565b620000b26000826200015c565b620000de7f12ff340d0cd9c652c747ca35727e68c547d0f0bfa7758d2e77f75acef481b4f2836200015c565b6200010a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826200015c565b620001158462000168565b5050505062000682565b80604051602001620001329190620005b9565b6040516020818303038152906040526007908051906020019062000158929190620003d6565b5050565b620001588282620001cc565b60085460ff1615620001b15760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b604482015260640160405180910390fd5b620001bc8162000247565b506008805460ff19166001179055565b6000828152600660209081526040909120620001f391839062000f4b620002e9821b17901c565b1562000158576200020362000309565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6040518060800160405280604f815260200162002533604f9139805160209182012082519282019290922060408051808201825260018152603160f81b90840152805180840194909452838101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401523060808401524660a0808501919091528151808503909101815260c090930190528151910120600955565b600062000300836001600160a01b03841662000325565b90505b92915050565b6000620003206200037760201b62000f601760201c565b905090565b60008181526001830160205260408120546200036e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000303565b50600062000303565b600033301415620003d057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150620003d39050565b50335b90565b828054620003e4906200062f565b90600052602060002090601f01602090048101928262000408576000855562000453565b82601f106200042357805160ff191683800117855562000453565b8280016001018555821562000453579182015b828111156200045357825182559160200191906001019062000436565b506200046192915062000465565b5090565b5b8082111562000461576000815560010162000466565b80516001600160a01b03811681146200049457600080fd5b919050565b600082601f830112620004ab57600080fd5b81516001600160401b0380821115620004c857620004c86200066c565b604051601f8301601f19908116603f01168101908282118183101715620004f357620004f36200066c565b816040528381528660208588010111156200050d57600080fd5b62000520846020830160208901620005fc565b9695505050505050565b600080600080608085870312156200054157600080fd5b84516001600160401b03808211156200055957600080fd5b620005678883890162000499565b955060208701519150808211156200057e57600080fd5b506200058d8782880162000499565b9350506200059e604086016200047c565b9150620005ae606086016200047c565b905092959194509250565b60008251620005cd818460208701620005fc565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b60005b8381101562000619578181015183820152602001620005ff565b8381111562000629576000848401525b50505050565b600181811c908216806200064457607f821691505b602082108114156200066657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611ea180620006926000396000f3fe6080604052600436106101e35760003560e01c8063514ec56c11610102578063a9059cbb11610095578063d539139311610064578063d5391393146105c8578063d547741f146105fc578063dd62ed3e1461061c578063e72db5fd1461066257600080fd5b8063a9059cbb14610548578063adbf377614610568578063ca15c87314610588578063ce6df2b9146105a857600080fd5b806391d14854116100d157806391d14854146104de57806395d89b41146104fe578063a217fddf14610513578063a457c2d71461052857600080fd5b8063514ec56c1461043057806354f1e1261461045057806370a08231146104705780639010d07c146104a657600080fd5b80632d0335ab1161017a57806336568abe1161014957806336568abe146103b057806339509351146103d057806340c10f19146103f057806344db1baf1461041057600080fd5b80632d0335ab146103235780632f2ff15d14610359578063313ce5671461037b5780633408e4701461039d57600080fd5b806318160ddd116101b657806318160ddd1461029f57806320379ee5146102be57806323b872dd146102d3578063248a9ca3146102f357600080fd5b806306fdde03146101e8578063095ea7b3146102135780630c53c51c146102435780630f7e597014610256575b600080fd5b3480156101f457600080fd5b506101fd610696565b60405161020a9190611bf1565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611a49565b610728565b604051901515815260200161020a565b6101fd610251366004611963565b610746565b34801561026257600080fd5b506101fd6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b3480156102ab57600080fd5b506002545b60405190815260200161020a565b3480156102ca57600080fd5b506009546102b0565b3480156102df57600080fd5b506102336102ee366004611927565b610951565b3480156102ff57600080fd5b506102b061030e366004611ae8565b60009081526006602052604090206002015490565b34801561032f57600080fd5b506102b061033e3660046118d9565b6001600160a01b03166000908152600a602052604090205490565b34801561036557600080fd5b50610379610374366004611b01565b6109d8565b005b34801561038757600080fd5b5060055460405160ff909116815260200161020a565b3480156103a957600080fd5b50466102b0565b3480156103bc57600080fd5b506103796103cb366004611b01565b610a76565b3480156103dc57600080fd5b506102336103eb366004611a49565b610b0e565b3480156103fc57600080fd5b5061037961040b366004611a49565b610b5c565b34801561041c57600080fd5b5061037961042b366004611a73565b610bb9565b34801561043c57600080fd5b5061037961044b366004611a73565b610c61565b34801561045c57600080fd5b5061037961046b3660046118d9565b610d03565b34801561047c57600080fd5b506102b061048b3660046118d9565b6001600160a01b031660009081526020819052604090205490565b3480156104b257600080fd5b506104c66104c1366004611b24565b610d5c565b6040516001600160a01b03909116815260200161020a565b3480156104ea57600080fd5b506102336104f9366004611b01565b610d7b565b34801561050a57600080fd5b506101fd610d93565b34801561051f57600080fd5b506102b0600081565b34801561053457600080fd5b50610233610543366004611a49565b610da2565b34801561055457600080fd5b50610233610563366004611a49565b610e0a565b34801561057457600080fd5b506103796105833660046118d9565b610e1e565b34801561059457600080fd5b506102b06105a3366004611ae8565b610e77565b3480156105b457600080fd5b506103796105c3366004611a49565b610e8e565b3480156105d457600080fd5b506102b07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b34801561060857600080fd5b50610379610617366004611b01565b610ebb565b34801561062857600080fd5b506102b06106373660046118f4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561066e57600080fd5b506102b07f12ff340d0cd9c652c747ca35727e68c547d0f0bfa7758d2e77f75acef481b4f281565b6060600380546106a590611d07565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190611d07565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b600061073c610735610fbd565b8484610fcc565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107848782878787611125565b6107fb5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461081f90600161122d565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061086f90899033908a90611bc5565b60405180910390a1600080306001600160a01b0316888a604051602001610897929190611b8e565b60408051601f19818403018152908290526108b191611b72565b6000604051808303816000865af19150503d80600081146108ee576040519150601f19603f3d011682016040523d82523d6000602084013e6108f3565b606091505b5091509150816109455760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016107f2565b98975050505050505050565b600061095e84848461128c565b6109ce8461096a610fbd565b6109c985604051806060016040528060288152602001611e1f602891396001600160a01b038a166000908152600160205260408120906109a8610fbd565b6001600160a01b031681526020810191909152604001600020549190611441565b610fcc565b5060019392505050565b6000828152600660205260409020600201546109f6906104f9610fbd565b610a685760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201527f2061646d696e20746f206772616e74000000000000000000000000000000000060648201526084016107f2565b610a72828261147b565b5050565b610a7e610fbd565b6001600160a01b0316816001600160a01b031614610b045760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016107f2565b610a7282826114e4565b600061073c610b1b610fbd565b846109c98560016000610b2c610fbd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061122d565b7f12ff340d0cd9c652c747ca35727e68c547d0f0bfa7758d2e77f75acef481b4f2610b89816104f9610fbd565b600790610ba95760405162461bcd60e51b81526004016107f29190611c04565b50610bb4838361154d565b505050565b6000610bc7816104f9610fbd565b600790610be75760405162461bcd60e51b81526004016107f29190611c04565b5060005b82811015610c5b576000848483818110610c0757610c07611d89565b9050602002016020810190610c1c91906118d9565b9050610c487f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826109d8565b5080610c5381611d42565b915050610beb565b50505050565b6000610c6f816104f9610fbd565b600790610c8f5760405162461bcd60e51b81526004016107f29190611c04565b5060005b82811015610c5b576000848483818110610caf57610caf611d89565b9050602002016020810190610cc491906118d9565b9050610cf07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682610ebb565b5080610cfb81611d42565b915050610c93565b6000610d11816104f9610fbd565b600790610d315760405162461bcd60e51b81526004016107f29190611c04565b50610a727f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683610ebb565b6000828152600660205260408120610d74908361162b565b9392505050565b6000828152600660205260408120610d749083611637565b6060600480546106a590611d07565b600061073c610daf610fbd565b846109c985604051806060016040528060258152602001611e476025913960016000610dd9610fbd565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611441565b600061073c610e17610fbd565b848461128c565b6000610e2c816104f9610fbd565b600790610e4c5760405162461bcd60e51b81526004016107f29190611c04565b50610a727f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6836109d8565b600081815260066020526040812061074090611659565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b89816104f9610fbd565b600082815260066020526040902060020154610ed9906104f9610fbd565b610b045760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201527f2061646d696e20746f207265766f6b650000000000000000000000000000000060648201526084016107f2565b6000610d74836001600160a01b038416611663565b600033301415610fb757600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150610fba9050565b50335b90565b6000610fc7610f60565b905090565b6001600160a01b0383166110475760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107f2565b6001600160a01b0382166110c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107f2565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166111a35760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201527f49474e455200000000000000000000000000000000000000000000000000000060648201526084016107f2565b60016111b66111b1876116b2565b61172f565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611204573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061123a8385611cac565b905083811015610d745760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f2565b6001600160a01b0383166113085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107f2565b6001600160a01b0382166113845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016107f2565b6113c181604051806060016040528060268152602001611df9602691396001600160a01b0386166000908152602081905260409020549190611441565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546113f0908261122d565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611118565b600081848411156114655760405162461bcd60e51b81526004016107f29190611bf1565b5060006114728486611cc4565b95945050505050565b60008281526006602052604090206114939082610f4b565b15610a72576114a0610fbd565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206114fc908261177a565b15610a7257611509610fbd565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b0382166115a35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107f2565b6002546115b0908261122d565b6002556001600160a01b0382166000908152602081905260409020546115d6908261122d565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000610d74838361178f565b6001600160a01b03811660009081526001830160205260408120541515610d74565b6000610740825490565b60008181526001830160205260408120546116aa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610740565b506000610740565b6000604051806080016040528060438152602001611db66043913980516020918201208351848301516040808701518051908601209051611712950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061173a60095490565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201611712565b6000610d74836001600160a01b0384166117b9565b60008260000182815481106117a6576117a6611d89565b9060005260206000200154905092915050565b600081815260018301602052604081205480156118a25760006117dd600183611cc4565b85549091506000906117f190600190611cc4565b905081811461185657600086600001828154811061181157611811611d89565b906000526020600020015490508087600001848154811061183457611834611d89565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061186757611867611d73565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610740565b6000915050610740565b80356001600160a01b03811681146118c357600080fd5b919050565b803560ff811681146118c357600080fd5b6000602082840312156118eb57600080fd5b610d74826118ac565b6000806040838503121561190757600080fd5b611910836118ac565b915061191e602084016118ac565b90509250929050565b60008060006060848603121561193c57600080fd5b611945846118ac565b9250611953602085016118ac565b9150604084013590509250925092565b600080600080600060a0868803121561197b57600080fd5b611984866118ac565b9450602086013567ffffffffffffffff808211156119a157600080fd5b818801915088601f8301126119b557600080fd5b8135818111156119c7576119c7611d9f565b604051601f8201601f19908116603f011681019083821181831017156119ef576119ef611d9f565b816040528281528b6020848701011115611a0857600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611a3d608087016118c8565b90509295509295909350565b60008060408385031215611a5c57600080fd5b611a65836118ac565b946020939093013593505050565b60008060208385031215611a8657600080fd5b823567ffffffffffffffff80821115611a9e57600080fd5b818501915085601f830112611ab257600080fd5b813581811115611ac157600080fd5b8660208260051b8501011115611ad657600080fd5b60209290920196919550909350505050565b600060208284031215611afa57600080fd5b5035919050565b60008060408385031215611b1457600080fd5b8235915061191e602084016118ac565b60008060408385031215611b3757600080fd5b50508035926020909101359150565b60008151808452611b5e816020860160208601611cdb565b601f01601f19169290920160200192915050565b60008251611b84818460208701611cdb565b9190910192915050565b60008351611ba0818460208801611cdb565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160a01b038086168352808516602084015250606060408301526114726060830184611b46565b602081526000610d746020830184611b46565b600060208083526000845481600182811c915080831680611c2657607f831692505b858310811415611c4457634e487b7160e01b85526022600452602485fd5b878601838152602001818015611c615760018114611c7257611c9d565b60ff19861682528782019650611c9d565b60008b81526020902060005b86811015611c9757815484820152908501908901611c7e565b83019750505b50949998505050505050505050565b60008219821115611cbf57611cbf611d5d565b500190565b600082821015611cd657611cd6611d5d565b500390565b60005b83811015611cf6578181015183820152602001611cde565b83811115610c5b5750506000910152565b600181811c90821680611d1b57607f821691505b60208210811415611d3c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d5657611d56611d5d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e61747572652945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220447ef94721847e337e7a9fb191061d9bf3dd5066925f7dc0aa6714e92ea2bfc964736f6c63430008070033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429";