0 txs
0 calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
APPROVE_WITH_AUTHORIZATION_TYPEHASH
viewfunction APPROVE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
authorizationState
viewfunction authorizationState(address authorizer, bytes32 nonce) view returns (uint8)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
blacklister
viewfunction blacklister() view returns (address)
CANCEL_AUTHORIZATION_TYPEHASH
viewfunction CANCEL_AUTHORIZATION_TYPEHASH() view returns (bytes32)
currency
viewfunction currency() view returns (string)
decimals
viewfunction decimals() view returns (uint8)
DECREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH
viewfunction DECREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
INCREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH
viewfunction INCREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
isBlacklisted
viewfunction isBlacklisted(address _account) view returns (bool)
isMinter
viewfunction isMinter(address account) view returns (bool)
masterMinter
viewfunction masterMinter() view returns (address)
minterAllowance
viewfunction minterAllowance(address minter) view returns (uint256)
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)
pauser
viewfunction pauser() view returns (address)
PERMIT_TYPEHASH
viewfunction PERMIT_TYPEHASH() view returns (bytes32)
rescuer
viewfunction rescuer() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
TRANSFER_WITH_AUTHORIZATION_TYPEHASH
viewfunction TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
approveWithAuthorization
nonpayablefunction approveWithAuthorization(address owner, address spender, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
blacklist
nonpayablefunction blacklist(address _account)
burn
nonpayablefunction burn(uint256 _amount)
cancelAuthorization
nonpayablefunction cancelAuthorization(address authorizer, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
configureMinter
nonpayablefunction configureMinter(address minter, uint256 minterAllowedAmount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 decrement) returns (bool)
decreaseAllowanceWithAuthorization
nonpayablefunction decreaseAllowanceWithAuthorization(address owner, address spender, uint256 decrement, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 increment) returns (bool)
increaseAllowanceWithAuthorization
nonpayablefunction increaseAllowanceWithAuthorization(address owner, address spender, uint256 increment, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
initialize
nonpayablefunction initialize(string tokenName, string tokenSymbol, string tokenCurrency, uint8 tokenDecimals, address newMasterMinter, address newPauser, address newBlacklister, address newOwner)
initializeV2
nonpayablefunction initializeV2(string newName)
mint
nonpayablefunction mint(address _to, uint256 _amount) returns (bool)
pause
nonpayablefunction pause()
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
removeMinter
nonpayablefunction removeMinter(address minter) returns (bool)
rescueERC20
nonpayablefunction rescueERC20(address tokenContract, address to, uint256 amount)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferWithAuthorization
nonpayablefunction transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
unBlacklist
nonpayablefunction unBlacklist(address _account)
unpause
nonpayablefunction unpause()
updateBlacklister
nonpayablefunction updateBlacklister(address _newBlacklister)
updateMasterMinter
nonpayablefunction updateMasterMinter(address _newMasterMinter)
updatePauser
nonpayablefunction updatePauser(address _newPauser)
updateRescuer
nonpayablefunction updateRescuer(address newRescuer)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
AuthorizationCanceled
event AuthorizationCanceled(address indexed authorizer, bytes32 indexed nonce)
AuthorizationUsed
event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
Blacklisted
event Blacklisted(address indexed _account)
BlacklisterChanged
event BlacklisterChanged(address indexed newBlacklister)
Burn
event Burn(address indexed burner, uint256 amount)
MasterMinterChanged
event MasterMinterChanged(address indexed newMasterMinter)
Mint
event Mint(address indexed minter, address indexed to, uint256 amount)
MinterConfigured
event MinterConfigured(address indexed minter, uint256 minterAllowedAmount)
MinterRemoved
event MinterRemoved(address indexed oldMinter)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
Pause
event Pause()
PauserChanged
event PauserChanged(address indexed newAddress)
RescuerChanged
event RescuerChanged(address indexed newRescuer)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
UnBlacklisted
event UnBlacklisted(address indexed _account)
Unpause
event Unpause()
errors
No errors.
creation bytecode
0x60806040526001805460ff60a01b191690556000600b553480156200002357600080fd5b506200002f3362000035565b62000057565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b615a6980620000676000396000f3fe608060405234801561001057600080fd5b506004361061034c5760003560e01c80638a6db9c3116101bd578063c237108f116100f9578063e1560fd3116100a2578063e94a01021161007c578063e94a010214610db7578063f2fde38b14610e11578063f9f92be414610e44578063fe575a8714610e775761034c565b8063e1560fd314610cd7578063e3ee160e14610d43578063e5a6b10f14610daf5761034c565b8063d608ea64116100d3578063d608ea6414610c24578063d916948714610c94578063dd62ed3e14610c9c5761034c565b8063c237108f14610b52578063c7b84f8d14610bbe578063d505accf14610bc65761034c565b8063a9059cbb11610166578063ad38bf2211610140578063ad38bf2214610a68578063b008609514610a9b578063b2118a8d14610b07578063bd10243014610b4a5761034c565b8063a9059cbb146109c9578063aa20e1e414610a02578063aa271e1a14610a355761034c565b80639fd0506d116101975780639fd0506d14610980578063a0cc6a6814610988578063a457c2d7146109905761034c565b80638a6db9c31461093d5780638da5cb5b1461097057806395d89b41146109785761034c565b806338a631831161028c5780634e44d956116102355780635c975abb1161020f5780635c975abb146108c757806370a08231146108cf5780637ecebe00146109025780638456cb59146109355761034c565b80634e44d9561461080d578063554bab3c146108465780635a049a70146108795761034c565b806340c10f191161026657806340c10f19146107af57806342966c68146107e85780634b71f5c3146108055761034c565b806338a6318314610766578063395093511461076e5780633f4ba83a146107a75761034c565b80632ab60045116102f9578063313ce567116102d3578063313ce567146105235780633357162b1461054157806335d99f351461072d5780633644e5151461075e5761034c565b80632ab60045146104b55780633092afd5146104e857806330adf81f1461051b5761034c565b806318160ddd1161032a57806318160ddd146104355780631a8952661461043d57806323b872dd146104725761034c565b806306fdde0314610351578063095ea7b3146103ce57806310c8b4041461041b575b600080fd5b610359610eaa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039357818101518382015260200161037b565b50505050905090810190601f1680156103c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610407600480360360408110156103e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f56565b604080519115158252519081900360200190f35b6104236110e3565b60408051918252519081900360200190f35b610423611107565b6104706004803603602081101561045357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661110d565b005b6104076004803603606081101561048857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356111f1565b610470600480360360208110156104cb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114f7565b610407600480360360208110156104fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611658565b610423611751565b61052b611775565b6040805160ff9092168252519081900360200190f35b610470600480360361010081101561055857600080fd5b81019060208101813564010000000081111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111640100000000831117156105a757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156105fa57600080fd5b82018360208201111561060c57600080fd5b8035906020019184600183028401116401000000008311171561062e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561068157600080fd5b82018360208201111561069357600080fd5b803590602001918460018302840111640100000000831117156106b557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff9081169160408101358216916060820135811691608001351661177e565b610735611ac0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423611adc565b610735611ae2565b6104076004803603604081101561078457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611afe565b610470611c80565b610407600480360360408110156107c557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d43565b610470600480360360208110156107fe57600080fd5b5035612178565b610423612432565b6104076004803603604081101561082357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612456565b6104706004803603602081101561085c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166125e9565b610470600480360360a081101561088f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff6040820135169060608101359060800135612750565b6104076127ee565b610423600480360360208110156108e557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661280f565b6104236004803603602081101561091857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612837565b61047061285f565b6104236004803603602081101561095357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612939565b610735612961565b61035961297d565b6107356129f6565b610423612a12565b610407600480360360408110156109a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612a36565b610407600480360360408110156109df57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612bb8565b61047060048036036020811015610a1857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612d3a565b61040760048036036020811015610a4b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ea1565b61047060048036036020811015610a7e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ecc565b6104706004803603610120811015610ab257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613033565b61047060048036036060811015610b1d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356131dd565b610735613273565b6104706004803603610120811015610b6957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e081013590610100013561328f565b61042361342c565b610470600480360360e0811015610bdc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135613450565b61047060048036036020811015610c3a57600080fd5b810190602081018135640100000000811115610c5557600080fd5b820183602082011115610c6757600080fd5b80359060200191846001830284011164010000000083111715610c8957600080fd5b5090925090506135f6565b610423613705565b61042360048036036040811015610cb257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613729565b6104706004803603610120811015610cee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613761565b6104706004803603610120811015610d5a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356138fe565b610359613a9b565b610df060048036036040811015610dcd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613b14565b60405180826002811115610e0057fe5b815260200191505060405180910390f35b61047060048036036020811015610e2757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613b4c565b61047060048036036020811015610e5a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613c9f565b61040760048036036020811015610e8d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613d86565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610fe357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff161561104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff16156110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6110d8338686613db1565b506001949350505050565b7f808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c81565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff16331461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806156e2602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a250565b60015460009074010000000000000000000000000000000000000000900460ff161561127e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff1615611368576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260036020526040902054859060ff16156113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a60209081526040808320338452909152902054851115611472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806157a86028913960400191505060405180910390fd5b61147d878787613ef8565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546114b89086614123565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461157d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166115e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615640602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60085460009073ffffffffffffffffffffffffffffffffffffffff1633146116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806156b96029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff16156117f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806157fe602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615755602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806156176029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806157d0602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061593d6028913960400191505060405180910390fd5b87516119b59060049060208b01906153c7565b5086516119c99060059060208a01906153c7565b5085516119dd9060079060208901906153c7565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560018054821686841617905560028054909116918416919091179055611a778161416c565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611b8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6110d83386866141b3565b60015473ffffffffffffffffffffffffffffffffffffffff163314611cf0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806158cb6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611dd057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611e38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806157346021913960400191505060405180910390fd5b3360008181526003602052604090205460ff1615611ea1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615611f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611f8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806155866023913960400191505060405180910390fd5b60008411611fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061566a6029913960400191505060405180910390fd5b336000908152600d602052604090205480851115612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061589d602e913960400191505060405180910390fd5b600b5461205d90866141fd565b600b5573ffffffffffffffffffffffffffffffffffffffff861660009081526009602052604090205461209090866141fd565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600960205260409020556120c08186614123565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561220257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff1661226a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806157346021913960400191505060405180910390fd5b3360008181526003602052604090205460ff16156122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b3360009081526009602052604090205482612339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061555d6029913960400191505060405180910390fd5b82811015612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061570e6026913960400191505060405180910390fd5b600b5461239f9084614123565b600b556123ac8184614123565b33600081815260096020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b7fb70559e94cbda91958ebec07f9b65b3b490097c8d25c8dacd71105df1015b6d881565b60015460009074010000000000000000000000000000000000000000900460ff16156124e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314612553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806156b96029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461266f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166126db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061550a6028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff16156127da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6127e78585858585614271565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806158cb6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff1615612ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612b2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6110d83386866143fa565b60015460009074010000000000000000000000000000000000000000900460ff1615612c4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612cae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054849060ff1615612d2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6110d8338686613ef8565b60005473ffffffffffffffffffffffffffffffffffffffff163314612dc057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612e2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615755602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612fbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806159936032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b60015474010000000000000000000000000000000000000000900460ff16156130bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff161561313e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff16156131bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6131d08b8b8b8b8b8b8b8b8b614456565b5050505050505050505050565b600e5473ffffffffffffffffffffffffffffffffffffffff16331461324d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157846024913960400191505060405180910390fd5b61326e73ffffffffffffffffffffffffffffffffffffffff84168383614598565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff161561331957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff161561339a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff161561341b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6131d08b8b8b8b8b8b8b8b8b614625565b7f424222bb050a1f7f14017232a5671f2680a2d3420f504bd565cf03035c53198a81565b60015474010000000000000000000000000000000000000000900460ff16156134da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff161561355b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040902054879060ff16156135dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6135eb8989898989898961475b565b505050505050505050565b60125460ff1615613652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615828602c913960400191505060405180910390fd5b61365e60048383615445565b506136d382828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015291506149049050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff16156137eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff161561386c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff16156138ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6131d08b8b8b8b8b8b8b8b8b614976565b60015474010000000000000000000000000000000000000000900460ff161561398857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613a09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260036020526040902054899060ff1615613a8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159c56025913960400191505060405180910390fd5b6131d08b8b8b8b8b8b8b8b8b614aac565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314613bd257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116613c3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806155cf6026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1613c9c8161416c565b50565b60025473ffffffffffffffffffffffffffffffffffffffff163314613d0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806156e2602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8316613e1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806158796024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613e89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806155f56022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316613f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806158546025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e76023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602052604090205481111561404e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156936026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602052604090205461407e9082614123565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526009602052604080822093909355908416815220546140ba90826141fd565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526009602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600061416583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614be2565b9392505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a602090815260408083209386168352929052205461326e90849084906141f890856141fd565b613db1565b60008282018381101561416557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61427b8585614c93565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429602082015273ffffffffffffffffffffffffffffffffffffffff87168183018190526060828101889052835180840390910181526080909201909252600f549091906142ef9086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff161461437157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8616600081815260106020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055518792917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050505050565b61326e83836141f884604051806060016040528060258152602001615a0f6025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190614be2565b61446289858888614d9e565b604080517fb70559e94cbda91958ebec07f9b65b3b490097c8d25c8dacd71105df1015b6d8602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906144f59086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff161461457757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6145818a86614e5e565b61458c8a8a8a6143fa565b50505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261326e908490614ee3565b61463189858888614d9e565b604080517f424222bb050a1f7f14017232a5671f2680a2d3420f504bd565cf03035c53198a602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f549091906146c49086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff161461474657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6147508a86614e5e565b61458c8a8a8a6141b3565b428410156147ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c992810192909252818301849052938a1660608201526080810189905260a081019390935260c08084018890528151808503909101815260e09093019052600f5461486d9086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff16146148ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6148fa888888613db1565b5050505050505050565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818601528082019390935260608301919091524660808301523060a0808401919091528151808403909101815260c09092019052805191012090565b61498289858888614d9e565b604080517f808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f54909190614a159086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff1614614a9757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b614aa18a86614e5e565b61458c8a8a8a613db1565b614ab889858888614d9e565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267602082015273ffffffffffffffffffffffffffffffffffffffff808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600f54909190614b4b9086868686614d2c565b73ffffffffffffffffffffffffffffffffffffffff1614614bcd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b614bd78a86614e5e565b61458c8a8a8a613ef8565b60008184841115614c8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614c50578181015183820152602001614c38565b50505050905090810190601f168015614c7d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915281205460ff166002811115614cd257fe5b14614d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615965602e913960400191505060405180910390fd5b5050565b8051602080830191909120604080517f190100000000000000000000000000000000000000000000000000000000000081850152602281018990526042808201939093528151808203909301835260620190528051910120600090614d9381878787614fbb565b979650505050505050565b814211614df6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615532602b913960400191505060405180910390fd5b804210614e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159ea6025913960400191505060405180910390fd5b614e588484614c93565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b6060614f45826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166151b89092919063ffffffff16565b80519091501561326e57808060200190516020811015614f6457600080fd5b505161326e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615913602a913960400191505060405180910390fd5b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115615036576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806158ed6026913960400191505060405180910390fd5b8360ff16601b1415801561504e57508360ff16601c14155b156150a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806155a96026913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015615100573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166151ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45435265636f7665723a20696e76616c6964207369676e617475726500000000604482015290519081900360640190fd5b90505b949350505050565b60606151b0848460008560606151cd8561538e565b61523857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106152a257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101615265565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615304576040519150601f19603f3d011682016040523d82523d6000602084013e615309565b606091505b5091509150811561531d5791506151b09050565b80511561532d5780518082602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152865160248401528651879391928392604401919085019080838360008315614c50578181015183820152602001614c38565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906151b0575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061540857805160ff1916838001178555615435565b82800160010185558215615435579182015b8281111561543557825182559160200191906001019061541a565b506154419291506154d1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106154a4578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555615435565b82800160010185558215615435579182015b828111156154355782358255916020019190600101906154b6565b5b8082111561544157600081556001016154d256fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f206164647265737345435265636f7665723a20696e76616c6964207369676e6174757265202776272076616c75654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656446696174546f6b656e56323a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f74207468652070617573657245435265636f7665723a20696e76616c6964207369676e6174757265202773272076616c75655361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c597a662f3eab19e5d6fa8c5be1a17afe3947c109efd3c3e947f445f8ccaedf164736f6c634300060c0033