0 txs
10.5k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
buffer
viewfunction buffer(address from) view returns (uint256)
bufferCap
viewfunction bufferCap(address from) view returns (uint256)
burningCurrentLimitOf
viewfunction burningCurrentLimitOf(address bridge) view returns (uint256 limit)
burningMaxLimitOf
viewfunction burningMaxLimitOf(address bridge) view returns (uint256 limit)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
MAX_PAUSE_DURATION
viewfunction MAX_PAUSE_DURATION() view returns (uint256)
MAX_RATE_LIMIT_PER_SECOND
viewfunction MAX_RATE_LIMIT_PER_SECOND() view returns (uint128)
maxPauseDuration
purefunction maxPauseDuration() pure returns (uint256)
maxRateLimitPerSecond
purefunction maxRateLimitPerSecond() pure returns (uint128)
MIN_BUFFER_CAP
viewfunction MIN_BUFFER_CAP() view returns (uint112)
minBufferCap
purefunction minBufferCap() pure returns (uint112)
mintingCurrentLimitOf
viewfunction mintingCurrentLimitOf(address minter) view returns (uint256 limit)
mintingMaxLimitOf
viewfunction mintingMaxLimitOf(address minter) view returns (uint256 limit)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pauseDuration
viewfunction pauseDuration() view returns (uint128)
pauseGuardian
viewfunction pauseGuardian() view returns (address)
pauseStartTime
viewfunction pauseStartTime() view returns (uint128)
pauseUsed
viewfunction pauseUsed() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
rateLimitPerSecond
viewfunction rateLimitPerSecond(address from) view returns (uint256)
rateLimits
viewfunction rateLimits(address bridge) view returns (uint128 rateLimitPerSecond, uint112 bufferCap, uint32 lastBufferUsedTime, uint112 bufferStored, uint112 midPoint)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
addBridge
nonpayablefunction addBridge(tuple newBridge)
addBridges
nonpayablefunction addBridges(tuple[] newBridges)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(address user, uint256 amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
grantPauseGuardian
nonpayablefunction grantPauseGuardian(address newPauseGuardian)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(string tokenName, string tokenSymbol, address tokenOwner, tuple[] newRateLimits, uint128 newPauseDuration, address newPauseGuardian)
kickGuardian
nonpayablefunction kickGuardian()
mint
nonpayablefunction mint(address user, uint256 amount)
ownerUnpause
nonpayablefunction ownerUnpause()
pause
nonpayablefunction pause()
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
removeBridge
nonpayablefunction removeBridge(address bridge)
removeBridges
nonpayablefunction removeBridges(address[] bridges)
renounceOwnership
nonpayablefunction renounceOwnership()
setBufferCap
nonpayablefunction setBufferCap(address bridge, uint256 newBufferCap)
setPauseDuration
nonpayablefunction setPauseDuration(uint128 newPauseDuration)
setRateLimitPerSecond
nonpayablefunction setRateLimitPerSecond(address bridge, uint128 newRateLimitPerSecond)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BridgeLimitsSet
event BridgeLimitsSet(address indexed bridge, uint256 bufferCap)
ConfigurationChanged
event ConfigurationChanged(address indexed bridge, uint112 bufferCap, uint128 rateLimitPerSecond)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PauseDurationUpdated
event PauseDurationUpdated(uint256 oldPauseDuration, uint256 newPauseDuration)
PauseGuardianUpdated
event PauseGuardianUpdated(address indexed oldPauseGuardian, address indexed newPauseGuardian)
PauseTimeUpdated
event PauseTimeUpdated(uint256 indexed newPauseStartTime)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600154610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60015460ff90811614620000e1576001805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61381980620000f36000396000f3fe608060405234801561001057600080fd5b50600436106102725760003560e01c806304df017d146102775780630526679c1461028c57806306fdde03146102c4578063095ea7b3146102d95780630c05f82c146102fc5780630f861ca31461031d57806318160ddd146103255780631ec4e7b71461032d578063217f99031461034057806323b872dd1461034b57806324a3d6221461035e5780632799657d1461037f57806329bcd9fe14610389578063313ce567146103ac5780633644e515146103bb57806339509351146103c35780633f4ba83a146103d657806340c10f19146103de5780634499eb15146103f157806355703ceb146104045780635a69558d1461040c5780635c975abb1461041f57806363dbf73b1461042757806364433d2714610459578063651fd2681461046257806370a0823114610475578063715018a61461049e57806372e3ddaa146104a657806379ba5097146104b95780637a14c7d2146104c15780637ecebe00146105655780638456cb591461057857806384b0196e14610580578063891107db1461059b5780638da5cb5b146105ae5780638f7639a5146105b657806394d7eaa4146105c057806395d89b41146105d4578063998955d3146105dc5780639dc29fac146105ef578063a457c2d714610602578063a8d164ac14610615578063a9059cbb1461061d578063b916289514610630578063bae2c8491461063c578063c1eb7137146102fc578063cbda9e511461064f578063d505accf14610662578063dd62ed3e14610675578063de44472e14610688578063e30c39781461069b578063f2fde38b146106a3578063f5b7cfbf146106b6578063f6b87b72146106c9575b600080fd5b61028a610285366004612d62565b6106dc565b005b610163546102a790600160801b90046001600160801b031681565b6040516001600160801b0390911681526020015b60405180910390f35b6102cc6106f0565b6040516102bb9190612dca565b6102ec6102e7366004612ddd565b610782565b60405190151581526020016102bb565b61030f61030a366004612d62565b61079c565b6040519081526020016102bb565b61028a6107a7565b61030f6107c1565b61028a61033b366004612d62565b6107d1565b6405d21dba006102a7565b6102ec610359366004612e07565b6107ea565b61016454610372906001600160a01b031681565b6040516102bb9190612e43565b61030f62278d0081565b610394633b9aca0081565b6040516001600160701b0390911681526020016102bb565b604051600681526020016102bb565b61030f61080e565b6102ec6103d1366004612ddd565b610818565b61028a61083a565b61028a6103ec366004612ddd565b6108b7565b61028a6103ff366004612ddd565b6108cd565b6102ec61092e565b61028a61041a366004612f30565b610940565b6102ec610951565b61030f610435366004612d62565b6001600160a01b03166000908152602081905260409020546001600160801b031690565b62278d0061030f565b61030f610470366004612d62565b61099d565b61030f610483366004612d62565b6001600160a01b031660009081526034602052604090205490565b61028a6109a8565b61030f6104b4366004612d62565b6109ba565b61028a610a47565b6105206104cf366004612d62565b600060208190529081526040902080546001909101546001600160801b038216916001600160701b03600160801b90910481169163ffffffff811691600160201b8204811691600160901b90041685565b604080516001600160801b0390961686526001600160701b03948516602087015263ffffffff909316928501929092528216606084015216608082015260a0016102bb565b61030f610573366004612d62565b610ac2565b61028a610ae0565b610588610bb6565b6040516102bb9796959493929190612f4c565b61028a6105a9366004613005565b610c54565b610372610c65565b633b9aca00610394565b610163546102a7906001600160801b031681565b6102cc610c74565b61030f6105ea366004612d62565b610c83565b61028a6105fd366004612ddd565b610ca1565b6102ec610610366004612ddd565b610cb3565b61028a610d2e565b6102ec61062b366004612ddd565b610dab565b6102a76405d21dba0081565b61028a61064a3660046130a1565b610db9565b61028a61065d3660046130d4565b610dcb565b61028a6106703660046130ef565b610e08565b61030f610683366004613162565b610f6c565b61028a61069636600461326b565b610f97565b610372611114565b61028a6106b1366004612d62565b611123565b61028a6106c4366004613323565b611189565b61030f6106d7366004612d62565b61119a565b6106e46111c5565b6106ed81611224565b50565b6060603780546106ff90613357565b80601f016020809104026020016040519081016040528092919081815260200182805461072b90613357565b80156107785780601f1061074d57610100808354040283529160200191610778565b820191906000526020600020905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b600033610790818585611309565b60019150505b92915050565b60006107968261119a565b6107af6111c5565b6107b761142d565b6107bf611478565b565b60006107cc60365490565b905090565b6107d96111c5565b6107e16114c5565b6106ed8161150d565b6000336107f8858285611569565b610803858585611579565b506001949350505050565b60006107cc61171f565b60003361079081858561082b8383610f6c565b61083591906133a1565b611309565b61084261142d565b610164546001600160a01b031633146108765760405162461bcd60e51b815260040161086d906133b4565b60405180910390fd5b61087e611478565b7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336040516108ad9190612e43565b60405180910390a1565b6108bf6114c5565b6108c98282611729565b5050565b6108d56111c5565b6108e7826108e28361173d565b6117aa565b816001600160a01b03167f95285a889cc4780f8d9cb87aabb3a7f1bf6cf8e14c2549844e611a2811823b958260405161092291815260200190565b60405180910390a25050565b610163546001600160801b0316151590565b6109486111c5565b6106ed816118e4565b610163546000906001600160801b0316156109975761016354610986906001600160801b03600160801b820481169116613402565b6001600160801b0316421115905090565b50600090565b6000610796826109ba565b6109b06111c5565b6107bf6000611b7f565b6001600160a01b038116600090815260208190526040808220905163384cbabd60e11b81526004810191909152739713a92e9f53be2f9429332c20a44965cb74357790637099757a90602401602060405180830381865af4158015610a23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107969190613429565b3380610a51611114565b6001600160a01b031614610ab95760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161086d565b6106ed81611b7f565b6001600160a01b0381166000908152609a6020526040812054610796565b610ae86114c5565b610164546001600160a01b03163314610b135760405162461bcd60e51b815260040161086d906133b4565b610b1b61092e565b15610b7e5760405162461bcd60e51b815260206004820152602d60248201527f436f6e666967757261626c655061757365477561726469616e3a20706175736560448201526c08185b1c9958591e481d5cd959609a1b606482015260840161086d565b610b8742611b98565b7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336040516108ad9190612e43565b6000606080600080600060606066546000801b148015610bd65750606754155b610c1a5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161086d565b610c22611be3565b610c2a611bf2565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610c5c6111c5565b6106ed81611c01565b60cd546001600160a01b031690565b6060603880546106ff90613357565b6000610c8e826109ba565b610c978361119a565b6107969190613442565b610ca96114c5565b6108c98282611c41565b60003381610cc18286610f6c565b905083811015610d215760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161086d565b6108038286868403611309565b610d366114c5565b610d3e61092e565b6107b75760405162461bcd60e51b815260206004820152603860248201527f436f6e666967757261626c655061757365477561726469616e3a20646964206e6044820152776f742070617573652c20736f2063616e6e6f74206b69636b60401b606482015260840161086d565b600033610790818585611579565b610dc16111c5565b6108c98282611c60565b610dd36111c5565b62278d00816001600160801b03161115610dff5760405162461bcd60e51b815260040161086d90613455565b6106ed81611d41565b83421115610e585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161086d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e878c611dab565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ee282611dd3565b90506000610ef282878787611e00565b9050896001600160a01b0316816001600160a01b031614610f555760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161086d565b610f608a8a8a611309565b50505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b600154610100900460ff1615808015610fb457506001805460ff16105b80610fcd5750303b158015610fcd57506001805460ff16145b6110305760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161086d565b6001805460ff1916811790558015611052576001805461ff0019166101001790555b62278d00836001600160801b0316111561107e5760405162461bcd60e51b815260040161086d90613455565b6110888787611e28565b61109187611e59565b611099611ea3565b6110a284611ed2565b6110aa611f12565b6110b38261150d565b6110bc83611d41565b6110c585611b7f565b801561110b576001805461ff00191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050505050565b60ff546001600160a01b031690565b61112b6111c5565b60ff80546001600160a01b0319166001600160a01b038316908117909155611151610c65565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6111916111c5565b6106ed81611ed2565b6001600160a01b0316600090815260208190526040902054600160801b90046001600160701b031690565b336111ce610c65565b6001600160a01b0316146107bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161086d565b6001600160a01b038116600090815260208190526040812054600160801b90046001600160701b031690036112b55760405162461bcd60e51b815260206004820152603160248201527f4d696e744c696d6974733a2063616e6e6f742072656d6f7665206e6f6e2d65786044820152701a5cdd195b9d081c985d19481b1a5b5a5d607a1b606482015260840161086d565b6001600160a01b03811660008181526020819052604080822080546001600160f01b0319168155600101829055516000805160206137a4833981519152916112fe91819061348c565b60405180910390a250565b6001600160a01b03831661136b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086d565b6001600160a01b0382166113cc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086d565b6001600160a01b0383811660008181526035602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611435610951565b6107bf5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161086d565b61016480546001600160a01b031981169091556001600160a01b031661149e6000611b98565b6040516000906001600160a01b03831690600080516020613784833981519152908390a350565b6114cd610951565b156107bf5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161086d565b61016480546001600160a01b038381166001600160a01b0319831617909255166115376000611b98565b816001600160a01b0316816001600160a01b031660008051602061378483398151915260405160405180910390a35050565b611574838383611f41565b505050565b6001600160a01b0383166115dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086d565b6001600160a01b03821661163f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086d565b61164a838383611fb5565b6001600160a01b038316600090815260346020526040902054818110156116c25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161086d565b6001600160a01b0380851660008181526034602052604080822086860390559286168082529083902080548601905591516000805160206137c4833981519152906117109086815260200190565b60405180910390a35b50505050565b60006107cc61201f565b6117333382612093565b6108c98282612114565b60006001600160701b038211156117a65760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663132206269747360c81b606482015260840161086d565b5090565b806001600160701b031660000361180d5760405162461bcd60e51b815260206004820152602160248201527f4d696e744c696d6974733a206275666665724361702063616e6e6f74206265206044820152600360fc1b606482015260840161086d565b6001600160a01b038216600090815260208190526040812054600160801b90046001600160701b031690036118545760405162461bcd60e51b815260040161086d906134ae565b633b9aca006001600160701b038216116118805760405162461bcd60e51b815260040161086d906134f1565b6001600160a01b03821660009081526020819052604090206118a2908261211e565b6001600160a01b038216600081815260208190526040908190205490516000805160206137a4833981519152916109229185916001600160801b03169061348c565b6405d21dba006001600160801b031681602001516001600160801b0316111561191f5760405162461bcd60e51b815260040161086d90613526565b60408101516001600160a01b03166119845760405162461bcd60e51b815260206004820152602260248201527f4d696e744c696d6974733a20696e76616c696420627269646765206164647265604482015261737360f01b606482015260840161086d565b6040818101516001600160a01b0316600090815260208190522054600160801b90046001600160701b031615611a0a5760405162461bcd60e51b815260206004820152602560248201527f4d696e744c696d6974733a2072617465206c696d697420616c72656164792065604482015264786973747360d81b606482015260840161086d565b8051633b9aca006001600160701b0390911611611a395760405162461bcd60e51b815260040161086d906134f1565b6040518060a0016040528082602001516001600160801b0316815260200182600001516001600160701b031681526020014263ffffffff16815260200160028360000151611a87919061356d565b6001600160701b0316815260200160028360000151611aa6919061356d565b6001600160701b03908116909152604083810180516001600160a01b03908116600090815260208181529084902086518154888401516001600160801b039092166001600160f01b031990911617600160801b918816919091021781558685015160019091018054606089015160809099015163ffffffff9093166001600160901b031990911617600160201b98881698909802979097176001600160901b0316600160901b9190961602949094179094555184519285015191519316926000805160206137a4833981519152926112fe92909161348c565b60ff80546001600160a01b03191690556106ed816121fa565b61016380546001600160801b0319166001600160801b0383169081179091556040517ff9a602433e136b05c194852c92724c3069fe46ca433ff9ec750396286472012990600090a250565b6060606880546106ff90613357565b6060606980546106ff90613357565b60005b81518110156108c957611c2f828281518110611c2257611c226135a1565b6020026020010151611224565b80611c39816135b7565b915050611c04565b611c4b338261224c565b611c56823383611569565b6108c982826122cf565b6405d21dba006001600160801b0382161115611c8e5760405162461bcd60e51b815260040161086d90613526565b6001600160a01b038216600090815260208190526040812054600160801b90046001600160701b03169003611cd55760405162461bcd60e51b815260040161086d906134ae565b6001600160a01b0382166000908152602081905260409020611cf790826122d9565b6001600160a01b038216600081815260208190526040908190205490516000805160206137a48339815191529161092291600160801b9091046001600160701b031690859061348c565b61016380546001600160801b03838116600160801b9081028284161793849055604051928190048216937ff6e1f1afec511d8b8e9a65bb53c947ac99ea4211fb22e0d6a0e331d55d7345f893611d9f938693909204909116906135d0565b60405180910390a15050565b6001600160a01b0381166000908152609a602052604090208054600181018255905b50919050565b6000610796611de061171f565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611e1187878787612332565b91509150611e1e816123ec565b5095945050505050565b600154610100900460ff16611e4f5760405162461bcd60e51b815260040161086d906135e7565b6108c98282612531565b600154610100900460ff16611e805760405162461bcd60e51b815260040161086d906135e7565b6106ed81604051806040016040528060018152602001603160f81b815250612571565b600154610100900460ff16611eca5760405162461bcd60e51b815260040161086d906135e7565b6107bf6125c0565b60005b81518110156108c957611f00828281518110611ef357611ef36135a1565b60200260200101516118e4565b80611f0a816135b7565b915050611ed5565b600154610100900460ff16611f395760405162461bcd60e51b815260040161086d906135e7565b6107bf6125f0565b6000611f4d8484610f6c565b905060001981146117195781811015611fa85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161086d565b6117198484848403611309565b306001600160a01b038316036115745760405162461bcd60e51b815260206004820152602960248201527f7845524332303a2063616e6e6f74207472616e7366657220746f20746f6b656e6044820152680818dbdb9d1c9858dd60ba1b606482015260840161086d565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61204a612624565b61205261267d565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b806000036120f25760405162461bcd60e51b815260206004820152602660248201527f4d696e744c696d6974733a206465706c65746520616d6f756e742063616e6e6f60448201526507420626520360d41b606482015260840161086d565b6001600160a01b03821660009081526020819052604090206108c990826126ae565b6108c982826127f3565b612127826128ae565b81546001600160701b03828116600160801b908102600160801b600160f01b031984161785559091041661215c60028361356d565b6001840180546001600160901b0316600160901b6001600160701b03938416021790819055838216600160201b90910490911611156121bc57600183018054600160201b600160901b031916600160201b6001600160701b038516021790555b7f52d0e582769dcd1e242b38b9a795ef4699f2eca0f23b1d8f94368efb27bcd5ff81836040516121ed929190613632565b60405180910390a1505050565b60cd80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b806000036122ad5760405162461bcd60e51b815260206004820152602860248201527f4d696e744c696d6974733a207265706c656e69736820616d6f756e742063616e60448201526706e6f7420626520360c41b606482015260840161086d565b6001600160a01b03821660009081526020819052604090206108c990826128ef565b6108c98282612a3f565b6122e2826128ae565b81546001600160801b038281166001600160801b031983161784556040519116907fc1d6758c9eb8ba949914722321f508e4cd1e14d3ff96773ef5950336d8a2c63a906121ed90839085906135d0565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561235f57506000905060036123e3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156123b3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123dc576000600192509250506123e3565b9150600090505b94509492505050565b600081600481111561240057612400613649565b036124085750565b600181600481111561241c5761241c613649565b036124645760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161086d565b600281600481111561247857612478613649565b036124c55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161086d565b60038160048111156124d9576124d9613649565b036106ed5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161086d565b600154610100900460ff166125585760405162461bcd60e51b815260040161086d906135e7565b603761256483826136ad565b50603861157482826136ad565b600154610100900460ff166125985760405162461bcd60e51b815260040161086d906135e7565b60686125a483826136ad565b5060696125b182826136ad565b50506000606681905560675550565b600154610100900460ff166125e75760405162461bcd60e51b815260040161086d906135e7565b6107bf33611b7f565b600154610100900460ff166126175760405162461bcd60e51b815260040161086d906135e7565b610131805460ff19169055565b60008061262f611be3565b805190915015612646578051602090910120919050565b60665480156126555792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612688611bf2565b80519091501561269f578051602090910120919050565b60675480156126555792915050565b60405163384cbabd60e11b815260048101839052600090739713a92e9f53be2f9429332c20a44965cb74357790637099757a90602401602060405180830381865af4158015612701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127259190613429565b9050808211156127755760405162461bcd60e51b815260206004820152601b60248201527a14985d19531a5b5a5d19590e881c985d19481b1a5b5a5d081a1a5d602a1b604482015260640161086d565b4260006127828484613442565b6001860180546001600160701b038316600160201b026001600160901b031990911663ffffffff8616171790556040519091507fc89b99870f6dd9f35bdd8bada9a4e2a6ba2862d2b5be9eaf54f6b8a6987368fe906127e49086908490613632565b60405180910390a15050505050565b6001600160a01b0382166128495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161086d565b61285560008383611fb5565b806036600082825461286791906133a1565b90915550506001600160a01b0382166000818152603460209081526040808320805486019055518481526000805160206137c4833981519152910160405180910390a35050565b60006128b982612b6d565b600190920180546001600160701b03909316600160201b026001600160901b031990931663ffffffff4216179290921790915550565b60405163384cbabd60e11b815260048101839052600090739713a92e9f53be2f9429332c20a44965cb74357790637099757a90602401602060405180830381865af4158015612942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129669190613429565b8354909150600160801b90046001600160701b0316600061298784846133a1565b9050818111156129d95760405162461bcd60e51b815260206004820181905260248201527f526174654c696d697465643a2062756666657220636170206f766572666c6f77604482015260640161086d565b6001850180544263ffffffff81166001600160901b031990921691909117600160201b6001600160701b038516021790915560405182907fa12a2ce7ad9b82acb79323b5a1a949482ffbdc18a9f572c5b3f8ad46ef203e13906111029088908490613632565b6001600160a01b038216612a9f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161086d565b612aab82600083611fb5565b6001600160a01b03821660009081526034602052604090205481811015612b1f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161086d565b6001600160a01b03831660008181526034602090815260408083208686039055603680548790039055518581529192916000805160206137c4833981519152910160405180910390a3505050565b6001810154815460009163ffffffff908116420316908290612b999083906001600160801b031661376c565b60018501549091506001600160701b03600160901b82048116600160201b909204161015612c7f5760018401547391f095bb7887dc95bc400e86f39498250a826fda90637ae2b5c790612bfd908490600160201b90046001600160701b03166133a1565b600187015460405160e084901b6001600160e01b03191681526004810192909252600160901b90046001600160701b03166024820152604401602060405180830381865af4158015612c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c779190613429565b949350505050565b60018401546001600160701b03600160901b82048116600160201b909204161115612d2c576001840154600160201b90046001600160701b0316811180612ced575060018401546001600160701b03600160901b8204811691612ceb918491600160201b900416613442565b105b15612d0c5750505060010154600160901b90046001600160701b031690565b6001840154612c77908290600160201b90046001600160701b0316613442565b50505060010154600160201b90046001600160701b031690565b80356001600160a01b0381168114612d5d57600080fd5b919050565b600060208284031215612d7457600080fd5b612d7d82612d46565b9392505050565b6000815180845260005b81811015612daa57602081850181015186830182015201612d8e565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000612d7d6020830184612d84565b60008060408385031215612df057600080fd5b612df983612d46565b946020939093013593505050565b600080600060608486031215612e1c57600080fd5b612e2584612d46565b9250612e3360208501612d46565b9150604084013590509250925092565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612e9557612e95612e57565b604052919050565b80356001600160801b0381168114612d5d57600080fd5b600060608284031215612ec657600080fd5b604051606081016001600160401b0381118282101715612ee857612ee8612e57565b60405290508082356001600160701b0381168114612f0557600080fd5b8152612f1360208401612e9d565b6020820152612f2460408401612d46565b60408201525092915050565b600060608284031215612f4257600080fd5b612d7d8383612eb4565b60ff60f81b881681526000602060e081840152612f6c60e084018a612d84565b8381036040850152612f7e818a612d84565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015612fd057835183529284019291840191600101612fb4565b50909c9b505050505050505050505050565b60006001600160401b03821115612ffb57612ffb612e57565b5060051b60200190565b6000602080838503121561301857600080fd5b82356001600160401b0381111561302e57600080fd5b8301601f8101851361303f57600080fd5b803561305261304d82612fe2565b612e6d565b81815260059190911b8201830190838101908783111561307157600080fd5b928401925b828410156130965761308784612d46565b82529284019290840190613076565b979650505050505050565b600080604083850312156130b457600080fd5b6130bd83612d46565b91506130cb60208401612e9d565b90509250929050565b6000602082840312156130e657600080fd5b612d7d82612e9d565b600080600080600080600060e0888a03121561310a57600080fd5b61311388612d46565b965061312160208901612d46565b95506040880135945060608801359350608088013560ff8116811461314557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561317557600080fd5b61317e83612d46565b91506130cb60208401612d46565b600082601f83011261319d57600080fd5b81356001600160401b038111156131b6576131b6612e57565b6131c9601f8201601f1916602001612e6d565b8181528460208386010111156131de57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261320c57600080fd5b8135602061321c61304d83612fe2565b8281526060928302850182019282820191908785111561323b57600080fd5b8387015b8581101561325e576132518982612eb4565b845292840192810161323f565b5090979650505050505050565b60008060008060008060c0878903121561328457600080fd5b86356001600160401b038082111561329b57600080fd5b6132a78a838b0161318c565b975060208901359150808211156132bd57600080fd5b6132c98a838b0161318c565b96506132d760408a01612d46565b955060608901359150808211156132ed57600080fd5b506132fa89828a016131fb565b93505061330960808801612e9d565b915061331760a08801612d46565b90509295509295509295565b60006020828403121561333557600080fd5b81356001600160401b0381111561334b57600080fd5b612c77848285016131fb565b600181811c9082168061336b57607f821691505b602082108103611dcd57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156107965761079661338b565b6020808252602e908201527f436f6e666967757261626c655061757365477561726469616e3a206f6e6c792060408201526d3830bab9b29033bab0b93234b0b760911b606082015260800190565b6001600160801b038181168382160190808211156134225761342261338b565b5092915050565b60006020828403121561343b57600080fd5b5051919050565b818103818111156107965761079661338b565b6020808252601e908201527f78504f4b543a207061757365206475726174696f6e20746f6f206c6f6e670000604082015260600190565b6001600160701b039290921682526001600160801b0316602082015260400190565b60208082526023908201527f4d696e744c696d6974733a206e6f6e2d6578697374656e742072617465206c696040820152621b5a5d60ea1b606082015260800190565b6020808252818101527f4d696e744c696d6974733a20627566666572206361702062656c6f77206d696e604082015260600190565b60208082526027908201527f4d696e744c696d6974733a20726174654c696d69745065725365636f6e6420746040820152660dede40d0d2ced60cb1b606082015260800190565b60006001600160701b038381168061359557634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016135c9576135c961338b565b5060010190565b9182526001600160801b0316602082015260400190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b9182526001600160701b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b601f82111561157457600081815260208120601f850160051c810160208610156136865750805b601f850160051c820191505b818110156136a557828155600101613692565b505050505050565b81516001600160401b038111156136c6576136c6612e57565b6136da816136d48454613357565b8461365f565b602080601f83116001811461370f57600084156136f75750858301515b600019600386901b1c1916600185901b1785556136a5565b600085815260208120601f198616915b8281101561373e5788860151825594840194600190910190840161371f565b508582101561375c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107965761079661338b56fecaaa282fb2cbeb3df8763925c47fce27f7d642a513ca61ece90ac2dd6acb5cebb4ff6a860e04455b1ce16833b74cde19765c95e55c5e7e4f5a69e9707d8cc96dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209a3eaeec264f8da025ba2305478a34fcdf5979b92206dfa2e37a7b5b25ee02d464736f6c63430008130033