0 txs
0 calls
constructor
constructor(address _creator, uint16 redemptionRate, uint16 redemptionMax)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
checkClaim
viewfunction checkClaim(uint256 _tokenID) view returns (bool)
creator
viewfunction creator() view returns (address)
forge_start
viewfunction forge_start() view returns (uint256)
getAdmins
viewfunction getAdmins() view returns (address[] admins)
how_long_more
viewfunction how_long_more() view returns (uint256 Days, uint256 Hours, uint256 Minutes, uint256 Seconds)
isAdmin
viewfunction isAdmin(address admin) view returns (bool)
mintedTokens
viewfunction mintedTokens() view returns (uint256[])
mintNumber
viewfunction mintNumber(uint256 tokenId) view returns (uint256)
owner
viewfunction owner() view returns (address)
redeemable
viewfunction redeemable(address contract_, uint256 tokenId) view returns (bool)
redemptionMax
viewfunction redemptionMax() view returns (uint16)
redemptionRate
viewfunction redemptionRate() view returns (uint16)
redemptionRemaining
viewfunction redemptionRemaining() view returns (uint16)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(address creator, uint256 tokenId) view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
approveAdmin
nonpayablefunction approveAdmin(address admin)
approveTransfer
nonpayablefunction approveTransfer(address from, address to, uint256 tokenId) returns (bool)
drain
nonpayablefunction drain(address _token)
EmergencyAirdrop
nonpayablefunction EmergencyAirdrop(address _to)
forge
nonpayablefunction forge(uint16 _checkToken, uint16 _checkToken2, uint16 _burnToken)
onERC721Received
nonpayablefunction onERC721Received(address, address from, uint256 tokenId, bytes data) returns (bytes4)
recoverERC721
nonpayablefunction recoverERC721(address contract_, uint256 tokenId)
renounceOwnership
nonpayablefunction renounceOwnership()
retrieve721
nonpayablefunction retrieve721(address _tracker, uint256 _id)
revokeAdmin
nonpayablefunction revokeAdmin(address admin)
setApproveTransfer
nonpayablefunction setApproveTransfer(address creator, bool enabled)
setERC721Recoverable
nonpayablefunction setERC721Recoverable(address contract_, uint256 tokenId, address recoverer)
setTime
nonpayablefunction setTime(uint256 _time)
setup
nonpayablefunction setup()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateApprovedContracts
nonpayablefunction updateApprovedContracts(address[] contracts, bool[] approved)
updateApprovedTokenRanges
nonpayablefunction updateApprovedTokenRanges(address contract_, uint256[] minTokenIds, uint256[] maxTokenIds)
updateApprovedTokens
nonpayablefunction updateApprovedTokens(address contract_, uint256[] tokenIds, bool[] approved)
events
AdminApproved
event AdminApproved(address indexed account, address indexed sender)
AdminRevoked
event AdminRevoked(address indexed account, address indexed sender)
airDropTo
event airDropTo(address _receiver)
forgeWith
event forgeWith(uint16 _checkToken, uint16 _checkToken2, uint16 _burnToken)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UpdateApprovedContracts
event UpdateApprovedContracts(address[] contracts, bool[] approved)
UpdateApprovedTokenRanges
event UpdateApprovedTokenRanges(address contract_, uint256[] minTokenIds, uint256[] maxTokenIds)
UpdateApprovedTokens
event UpdateApprovedTokens(address contract_, uint256[] tokenIds, bool[] approved)
errors
No errors.
creation bytecode
0x60a0604052604051806060016040528060388152602001620068ff60389139601090805190602001906200003592919062000546565b5063618e8f806011553480156200004b57600080fd5b50604051620069373803806200693783398181016040528101906200007191906200063b565b828084848482828260016000819055506000620000936200037460201b60201c565b905080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000169837f9088c207000000000000000000000000000000000000000000000000000000006200037c60201b620032951760201c565b806200018f57506200018e8363478c853060e01b6200037c60201b620032951760201c565b5b620001d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001c890620007c9565b60405180910390fd5b8161ffff1660808161ffff1660f01b8152505080600860146101000a81548161ffff021916908361ffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200027f817f9088c207000000000000000000000000000000000000000000000000000000006200037c60201b620032951760201c565b80620002a55750620002a48163478c853060e01b6200037c60201b620032951760201c565b5b620002e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002de90620007c9565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505082600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000975565b600033905090565b60006200038f83620003b260201b60201c565b8015620003aa5750620003a983836200041060201b60201c565b5b905092915050565b6000620003e6827f01ffc9a7000000000000000000000000000000000000000000000000000000006200041060201b60201c565b8015620004095750620004078263ffffffff60e01b6200041060201b60201c565b155b9050919050565b6000806301ffc9a760e01b836040516024016200042e9190620007ac565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808573ffffffffffffffffffffffffffffffffffffffff1661753084604051620004ba919062000793565b6000604051808303818686fa925050503d8060008114620004f8576040519150601f19603f3d011682016040523d82523d6000602084013e620004fd565b606091505b50915091506020815110156200051a576000935050505062000540565b8180156200053a57508080602001905181019062000539919062000691565b5b93505050505b92915050565b8280546200055490620008c2565b90600052602060002090601f016020900481019282620005785760008555620005c4565b82601f106200059357805160ff1916838001178555620005c4565b82800160010185558215620005c4579182015b82811115620005c3578251825591602001919060010190620005a6565b5b509050620005d39190620005d7565b5090565b5b80821115620005f2576000816000905550600101620005d8565b5090565b600081519050620006078162000927565b92915050565b6000815190506200061e8162000941565b92915050565b60008151905062000635816200095b565b92915050565b6000806000606084860312156200065157600080fd5b60006200066186828701620005f6565b9350506020620006748682870162000624565b9250506040620006878682870162000624565b9150509250925092565b600060208284031215620006a457600080fd5b6000620006b4848285016200060d565b91505092915050565b620006c88162000832565b82525050565b6000620006db82620007eb565b620006e78185620007f6565b9350620006f98185602086016200088c565b80840191505092915050565b60006200071460418362000801565b91507f52656465656d3a204d696e74696e672072657761726420636f6e74726163742060008301527f6d75737420696d706c656d656e74204945524337323143726561746f72436f7260208301527f65000000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000620007a18284620006ce565b915081905092915050565b6000602082019050620007c36000830184620006bd565b92915050565b60006020820190508181036000830152620007e48162000705565b9050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006200081f826200086c565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620008ac5780820151818401526020810190506200088f565b83811115620008bc576000848401525b50505050565b60006002820490506001821680620008db57607f821691505b60208210811415620008f257620008f1620008f8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b620009328162000812565b81146200093e57600080fd5b50565b6200094c8162000826565b81146200095857600080fd5b50565b62000966816200085e565b81146200097257600080fd5b50565b60805160f01c615f6b6200099460003960006121090152615f6b6000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80636c2ab4ba11610125578063ac4cc148116100ad578063c87b56dd1161007c578063c87b56dd14610616578063e9dc637514610646578063ece5313214610676578063f2fde38b14610692578063f79f20b5146106ae5761021c565b8063ac4cc148146105b6578063ac52e644146105d4578063ba0bba40146105f0578063c344eb96146105fa5761021c565b8063819d4cc6116100f4578063819d4cc614610512578063825808051461052e5780638d75fe051461055e5780638da5cb5b1461057c578063a5b3abfb1461059a5761021c565b80636c2ab4ba146104a05780636d73e669146104bc57806370a08231146104d8578063715018a6146105085761021c565b80632af8a413116101a85780633beb26c4116101775780633beb26c4146103fc57806348efee0a14610418578063540385a3146104345780635873ce771461045257806367627b62146104705761021c565b80632af8a413146103765780632d345670146103925780632f745c59146103ae57806331ae450b146103de5761021c565b8063131616ef116101ef578063131616ef146102ae578063150b7a02146102ca5780631681d158146102fa5780631b95a2271461032a57806324d7806c146103465761021c565b806301ffc9a71461022157806302d05d3f1461025157806304c9fdb01461026f57806310e33de31461028d575b600080fd5b61023b6004803603810190610236919061489c565b6106de565b6040516102489190615568565b60405180910390f35b610259610768565b60405161026691906153b1565b60405180910390f35b61027761078e565b60405161028491906158c0565b60405180910390f35b6102956107c1565b6040516102a59493929190615948565b60405180910390f35b6102c860048036038101906102c391906148ee565b610884565b005b6102e460048036038101906102df91906145c2565b61109a565b6040516102f19190615583565b60405180910390f35b610314600480360381019061030f919061493d565b611105565b6040516103219190615568565b60405180910390f35b610344600480360381019061033f9190614740565b611158565b005b610360600480360381019061035b9190614521565b6112c0565b60405161036d9190615568565b60405180910390f35b610390600480360381019061038b91906146c1565b61131a565b005b6103ac60048036038101906103a79190614521565b61194e565b005b6103c860048036038101906103c3919061477c565b611a56565b6040516103d5919061592d565b60405180910390f35b6103e6611b32565b6040516103f391906154ed565b60405180910390f35b6104166004803603810190610411919061493d565b611c60565b005b610432600480360381019061042d9190614642565b611ce6565b005b61043c612105565b60405161044991906158c0565b60405180910390f35b61045a61212d565b604051610467919061592d565b60405180910390f35b61048a6004803603810190610485919061477c565b612133565b6040516104979190615568565b60405180910390f35b6104ba60048036038101906104b591906147b8565b61246b565b005b6104d660048036038101906104d19190614521565b612500565b005b6104f260048036038101906104ed9190614521565b612607565b6040516104ff919061592d565b60405180910390f35b610510612650565b005b61052c6004803603810190610527919061477c565b61278d565b005b61054860048036038101906105439190614573565b612791565b6040516105559190615568565b60405180910390f35b610566612920565b6040516105739190615546565b60405180910390f35b610584612978565b60405161059191906153b1565b60405180910390f35b6105b460048036038101906105af919061477c565b6129a2565b005b6105be612a91565b6040516105cb91906158c0565b60405180910390f35b6105ee60048036038101906105e99190614807565b612aa9565b005b6105f8612cb1565b005b610614600480360381019061060f9190614521565b612d37565b005b610630600480360381019061062b919061493d565b612df6565b60405161063d919061559e565b60405180910390f35b610660600480360381019061065b919061477c565b612e94565b60405161066d919061559e565b60405180910390f35b610690600480360381019061068b91906148c5565b612ea7565b005b6106ac60048036038101906106a79190614521565b6130cc565b005b6106c860048036038101906106c3919061493d565b613278565b6040516106d5919061592d565b60405180910390f35b60007fe9dc6375000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107515750610750826132ba565b5b806107615750610760826132ba565b5b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860169054906101000a900461ffff16600860149054906101000a900461ffff166107bc9190615bc6565b905090565b600080600080601154421061080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290615840565b60405180910390fd5b60004260115461081b9190615bfa565b9050620151808161082c9190615b95565b9450620151808161083d9190615dad565b9050610e108161084d9190615b95565b9350610e108161085d9190615dad565b9050603c8161086c9190615b95565b9250603c8161087b9190615dad565b91505090919293565b6011544210156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090615620565b60405180910390fd5b8261ffff16610180111580156108e557506101938361ffff1611155b610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906156a0565b60405180910390fd5b8161ffff166101941115801561094057506101a78261ffff1611155b61097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690615680565b60405180910390fd5b6109af600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261ffff16612133565b6109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5906157a0565b60405180910390fd5b600115156109ff8461ffff16611105565b151514610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890615700565b60405180910390fd5b60011515610a528361ffff16611105565b151514610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906155e0565b60405180910390fd5b6001600f60008561ffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008461ffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b8152600401610b6691906158db565b60206040518083038186803b158015610b7e57600080fd5b505afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb6919061454a565b73ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906158a0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b8152600401610c7e91906158db565b60206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061454a565b73ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b906157c0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610d9691906158db565b60206040518083038186803b158015610dae57600080fd5b505afa158015610dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de6919061454a565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906156e0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663081812fc836040518263ffffffff1660e01b8152600401610eae91906158db565b60206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe919061454a565b73ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90615880565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead846040518463ffffffff1660e01b8152600401610fb5939291906153cc565b600060405180830381600087803b158015610fcf57600080fd5b505af1925050508015610fe0575060015b611051573d8060008114611010576040519150601f19603f3d011682016040523d82523d6000602084013e611015565b606091505b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890615660565b60405180910390fd5b61105a33613334565b7f454ae5b5e2e01ed733d013814a854e13c684f7b24eecb377a46f9c9446b149ea83838360405161108d939291906158f6565b60405180910390a1505050565b6000600260005414156110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d990615860565b60405180910390fd5b600260008190555063150b7a0260e01b9050600160008190555095945050505050565b600080826101801115801561111c57506101a78311155b90508061112d576000915050611153565b600f600084815260200190815260200160002060009054906101000a900460ff16159150505b919050565b3373ffffffffffffffffffffffffffffffffffffffff16611177612978565b73ffffffffffffffffffffffffffffffffffffffff1614806111a957506111a833600361345090919063ffffffff16565b5b6111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90615800565b60405180910390fd5b611212827f9088c20700000000000000000000000000000000000000000000000000000000613295565b611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890615720565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663ac0c8cfa826040518263ffffffff1660e01b815260040161128a9190615568565b600060405180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff166112e1612978565b73ffffffffffffffffffffffffffffffffffffffff161480611313575061131282600361345090919063ffffffff16565b5b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff16611339612978565b73ffffffffffffffffffffffffffffffffffffffff16148061136b575061136a33600361345090919063ffffffff16565b5b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190615800565b60405180910390fd5b80518251146113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590615780565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b8181101561156f576000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106114b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611547577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010181905550808061156790615d64565b915050611438565b5060005b835181101561190c578281815181106115b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518482815181106115f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101511061163e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163590615740565b60405180910390fd5b818110156117e55783818151811061167f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106116fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000018190555082818151811061174c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101819055506118f9565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280868481518110611868577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015181526020018584815181106118ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550505b808061190490615d64565b915050611573565b507fc834fb6349b577e8519e3cb6df7274bdd4957d7388d8cc9b54467d8af9d6537b8484846040516119409392919061547f565b60405180910390a150505050565b611956613480565b73ffffffffffffffffffffffffffffffffffffffff16611974612978565b73ffffffffffffffffffffffffffffffffffffffff16146119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190615760565b60405180910390fd5b6119de81600361345090919063ffffffff16565b15611a53573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d560405160405180910390a3611a5181600361348890919063ffffffff16565b505b50565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad090615600565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6060611b3e60036134b8565b67ffffffffffffffff811115611b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611bab5781602001602082028036833780820191505090505b50905060005b611bbb60036134b8565b811015611c5c57611bd68160036134cd90919063ffffffff16565b828281518110611c0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080611c5490615d64565b915050611bb1565b5090565b611c68613480565b73ffffffffffffffffffffffffffffffffffffffff16611c86612978565b73ffffffffffffffffffffffffffffffffffffffff1614611cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd390615760565b60405180910390fd5b8060118190555050565b3373ffffffffffffffffffffffffffffffffffffffff16611d05612978565b73ffffffffffffffffffffffffffffffffffffffff161480611d375750611d3633600361345090919063ffffffff16565b5b611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90615800565b60405180910390fd5b8051825114611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190615780565b60405180910390fd5b60005b82518110156120c457818181518110611dff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518015611ea15750611e9f838281518110611e4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134e790919063ffffffff16565b155b15611f3d57611f37838281518110611ee2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061350190919063ffffffff16565b506120b1565b818181518110611f76577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101511580156120185750612017838281518110611fc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134e790919063ffffffff16565b5b156120b0576120ae838281518110612059577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061351b90919063ffffffff16565b505b5b80806120bc90615d64565b915050611dbd565b507f0ed1ede59c177063e00a17d07584b15a0eb10205d90702aeff646f55bb33aa898383836040516120f89392919061543a565b60405180910390a1505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60115481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121905760019050612465565b6121e182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206134e790919063ffffffff16565b156121ef5760019050612465565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156124605760005b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561245e576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612300577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010154141580156123a85750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110612392577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001548310155b801561243c5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110612426577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101548311155b1561244b576001915050612465565b808061245690615d64565b91505061223d565b505b600090505b92915050565b3373ffffffffffffffffffffffffffffffffffffffff1661248a612978565b73ffffffffffffffffffffffffffffffffffffffff1614806124bc57506124bb33600361345090919063ffffffff16565b5b6124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f290615800565b60405180910390fd5b505050565b612508613480565b73ffffffffffffffffffffffffffffffffffffffff16612526612978565b73ffffffffffffffffffffffffffffffffffffffff161461257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257390615760565b60405180910390fd5b61259081600361345090919063ffffffff16565b612604573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb160405160405180910390a361260281600361353590919063ffffffff16565b505b50565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612658613480565b73ffffffffffffffffffffffffffffffffffffffff16612676612978565b73ffffffffffffffffffffffffffffffffffffffff16146126cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c390615760565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281a906156c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561288c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561289c5761289b8483613565565b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561290557508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612915576129148383613760565b5b600190509392505050565b6060600980548060200260200160405190810160405280929190818152602001828054801561296e57602002820191906000526020600020905b81548152602001906001019080831161295a575b5050505050905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6129aa613480565b73ffffffffffffffffffffffffffffffffffffffff166129c8612978565b73ffffffffffffffffffffffffffffffffffffffff1614612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590615760565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b8152600401612a5b93929190615403565b600060405180830381600087803b158015612a7557600080fd5b505af1158015612a89573d6000803e3d6000fd5b505050505050565b6000600860149054906101000a900461ffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16612ac8612978565b73ffffffffffffffffffffffffffffffffffffffff161480612afa5750612af933600361345090919063ffffffff16565b5b612b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3090615800565b60405180910390fd5b8051825114612b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7490615780565b60405180910390fd5b60005b8251811015612c7357818181518110612bc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160056000858481518110612c07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612c6b90615d64565b915050612b80565b507fb987f16cb95c27617d184f54a4a9d80cfa894b91e2d679ed76042493954481488282604051612ca592919061550f565b60405180910390a15050565b612cb9613480565b73ffffffffffffffffffffffffffffffffffffffff16612cd7612978565b73ffffffffffffffffffffffffffffffffffffffff1614612d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2490615760565b60405180910390fd5b612d3561386d565b565b612d3f613480565b73ffffffffffffffffffffffffffffffffffffffff16612d5d612978565b73ffffffffffffffffffffffffffffffffffffffff1614612db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612daa90615760565b60405180910390fd5b612dbc81613334565b7fbf5f3f082474d7ba3468c780bb5f3a40ec5c6c67f4e764107ee811f804c2184881604051612deb91906153b1565b60405180910390a150565b60606000600a6000848152602001908152602001600020541415612e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e46906157e0565b60405180910390fd5b6010612e6d600a6000858152602001908152602001600020546138fd565b604051602001612e7e92919061538d565b6040516020818303038152906040529050919050565b6060612e9f82612df6565b905092915050565b612eaf613480565b73ffffffffffffffffffffffffffffffffffffffff16612ecd612978565b73ffffffffffffffffffffffffffffffffffffffff1614612f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1a90615760565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612fab57612f60612978565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612fa5573d6000803e3d6000fd5b506130c9565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612fcf612978565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161300891906153b1565b60206040518083038186803b15801561302057600080fd5b505afa158015613034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130589190614966565b6040518363ffffffff1660e01b81526004016130759291906154c4565b602060405180830381600087803b15801561308f57600080fd5b505af11580156130a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c79190614873565b505b50565b6130d4613480565b73ffffffffffffffffffffffffffffffffffffffff166130f2612978565b73ffffffffffffffffffffffffffffffffffffffff1614613148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313f90615760565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156131b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131af90615640565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a6000838152602001908152602001600020549050919050565b60006132a083613aaa565b80156132b257506132b18383613af7565b5b905092915050565b60007f99cdaa22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061332d575061332c82613c22565b5b9050919050565b600860149054906101000a900461ffff1661ffff16600860169054906101000a900461ffff1661ffff161061339e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161339590615820565b60405180910390fd5b6008601681819054906101000a900461ffff16809291906133be90615d39565b91906101000a81548161ffff021916908361ffff1602179055505060006133f582600860169054906101000a900461ffff16613c9c565b90506009819080600181540180825580915050600190039060005260206000200160009091909190915055600860169054906101000a900461ffff1661ffff16600a6000838152602001908152602001600020819055505050565b6000613478836000018373ffffffffffffffffffffffffffffffffffffffff1660001b613d53565b905092915050565b600033905090565b60006134b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b613d76565b905092915050565b60006134c682600001613ef4565b9050919050565b60006134dc8360000183613f05565b60001c905092915050565b60006134f9836000018360001b613d53565b905092915050565b6000613513836000018360001b613f9f565b905092915050565b600061352d836000018360001b613d76565b905092915050565b600061355d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b613f9f565b905092915050565b60006001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b39190615bfa565b90506000600d6000848152602001908152602001600020549050818114613698576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208190555081600d600083815260200190815260200160002081905550505b600d600084815260200190815260200160002060009055600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600090556001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137539190615bfa565b9250508190555050505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000208190555080600d6000848152602001908152602001600020819055506001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138619190615b3f565b92505081905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ac0c8cfa60016040518263ffffffff1660e01b81526004016138c99190615568565b600060405180830381600087803b1580156138e357600080fd5b505af11580156138f7573d6000803e3d6000fd5b50505050565b60606000821415613945576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613aa5565b600082905060005b6000821461397757808061396090615d64565b915050600a826139709190615b95565b915061394d565b60008167ffffffffffffffff8111156139b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156139eb5781602001600182028036833780820191505090505b5090505b60008514613a9e57600182613a049190615bfa565b9150600a85613a139190615dad565b6030613a1f9190615b3f565b60f81b818381518110613a5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85613a979190615b95565b94506139ef565b8093505050505b919050565b6000613ad6827f01ffc9a700000000000000000000000000000000000000000000000000000000613af7565b8015613af05750613aee8263ffffffff60e01b613af7565b155b9050919050565b6000806301ffc9a760e01b83604051602401613b139190615583565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808573ffffffffffffffffffffffffffffffffffffffff1661753084604051613b9d9190615376565b6000604051808303818686fa925050503d8060008114613bd9576040519150601f19603f3d011682016040523d82523d6000602084013e613bde565b606091505b5091509150602081511015613bf95760009350505050613c1c565b818015613c16575080806020019051810190613c159190614873565b5b93505050505b92915050565b60007fedb7f87c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613c955750613c948261400f565b5b9050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632928ca58846040518263ffffffff1660e01b8152600401613cf991906153b1565b602060405180830381600087803b158015613d1357600080fd5b505af1158015613d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d4b9190614966565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114613ee8576000600182613da89190615bfa565b9050600060018660000180549050613dc09190615bfa565b90506000866000018281548110613e00577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110613e4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200181905550838760010160008381526020019081526020016000208190555086600001805480613eac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050613eee565b60009150505b92915050565b600081600001805490509050919050565b600081836000018054905011613f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f47906155c0565b60405180910390fd5b826000018281548110613f8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b6000613fab8383613d53565b614004578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614009565b600090505b92915050565b60007f866c67eb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480614082575061408182614099565b5b80614092575061409182614113565b5b9050919050565b60007fa927d73f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061410c575061410b82614174565b5b9050919050565b6000637005caad60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061416d575061416c82614099565b5b9050919050565b60007f553e757e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806141e757506141e6826141ee565b5b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061426b614266846159be565b61598d565b9050808382526020820190508285602086028201111561428a57600080fd5b60005b858110156142ba57816142a0888261439c565b84526020840193506020830192505060018101905061428d565b5050509392505050565b60006142d76142d2846159ea565b61598d565b905080838252602082019050828560208602820111156142f657600080fd5b60005b85811015614326578161430c8882614444565b8452602084019350602083019250506001810190506142f9565b5050509392505050565b600061434361433e84615a16565b61598d565b9050808382526020820190508285602086028201111561436257600080fd5b60005b85811015614392578161437888826144f7565b845260208401935060208301925050600181019050614365565b5050509392505050565b6000813590506143ab81615eab565b92915050565b6000815190506143c081615eab565b92915050565b600082601f8301126143d757600080fd5b81356143e7848260208601614258565b91505092915050565b600082601f83011261440157600080fd5b81356144118482602086016142c4565b91505092915050565b600082601f83011261442b57600080fd5b813561443b848260208601614330565b91505092915050565b60008135905061445381615ec2565b92915050565b60008151905061446881615ec2565b92915050565b60008135905061447d81615ed9565b92915050565b60008083601f84011261449557600080fd5b8235905067ffffffffffffffff8111156144ae57600080fd5b6020830191508360018202830111156144c657600080fd5b9250929050565b6000813590506144dc81615ef0565b92915050565b6000813590506144f181615f07565b92915050565b60008135905061450681615f1e565b92915050565b60008151905061451b81615f1e565b92915050565b60006020828403121561453357600080fd5b60006145418482850161439c565b91505092915050565b60006020828403121561455c57600080fd5b600061456a848285016143b1565b91505092915050565b60008060006060848603121561458857600080fd5b60006145968682870161439c565b93505060206145a78682870161439c565b92505060406145b8868287016144f7565b9150509250925092565b6000806000806000608086880312156145da57600080fd5b60006145e88882890161439c565b95505060206145f98882890161439c565b945050604061460a888289016144f7565b935050606086013567ffffffffffffffff81111561462757600080fd5b61463388828901614483565b92509250509295509295909350565b60008060006060848603121561465757600080fd5b60006146658682870161439c565b935050602084013567ffffffffffffffff81111561468257600080fd5b61468e8682870161441a565b925050604084013567ffffffffffffffff8111156146ab57600080fd5b6146b7868287016143f0565b9150509250925092565b6000806000606084860312156146d657600080fd5b60006146e48682870161439c565b935050602084013567ffffffffffffffff81111561470157600080fd5b61470d8682870161441a565b925050604084013567ffffffffffffffff81111561472a57600080fd5b6147368682870161441a565b9150509250925092565b6000806040838503121561475357600080fd5b60006147618582860161439c565b925050602061477285828601614444565b9150509250929050565b6000806040838503121561478f57600080fd5b600061479d8582860161439c565b92505060206147ae858286016144f7565b9150509250929050565b6000806000606084860312156147cd57600080fd5b60006147db8682870161439c565b93505060206147ec868287016144f7565b92505060406147fd8682870161439c565b9150509250925092565b6000806040838503121561481a57600080fd5b600083013567ffffffffffffffff81111561483457600080fd5b614840858286016143c6565b925050602083013567ffffffffffffffff81111561485d57600080fd5b614869858286016143f0565b9150509250929050565b60006020828403121561488557600080fd5b600061489384828501614459565b91505092915050565b6000602082840312156148ae57600080fd5b60006148bc8482850161446e565b91505092915050565b6000602082840312156148d757600080fd5b60006148e5848285016144cd565b91505092915050565b60008060006060848603121561490357600080fd5b6000614911868287016144e2565b9350506020614922868287016144e2565b9250506040614933868287016144e2565b9150509250925092565b60006020828403121561494f57600080fd5b600061495d848285016144f7565b91505092915050565b60006020828403121561497857600080fd5b60006149868482850161450c565b91505092915050565b600061499b83836149d7565b60208301905092915050565b60006149b38383614b0f565b60208301905092915050565b60006149cb8383615358565b60208301905092915050565b6149e081615c2e565b82525050565b6149ef81615c2e565b82525050565b6000614a0082615a87565b614a0a8185615ae5565b9350614a1583615a42565b8060005b83811015614a46578151614a2d888261498f565b9750614a3883615abe565b925050600181019050614a19565b5085935050505092915050565b6000614a5e82615a92565b614a688185615af6565b9350614a7383615a52565b8060005b83811015614aa4578151614a8b88826149a7565b9750614a9683615acb565b925050600181019050614a77565b5085935050505092915050565b6000614abc82615a9d565b614ac68185615b07565b9350614ad183615a62565b8060005b83811015614b02578151614ae988826149bf565b9750614af483615ad8565b925050600181019050614ad5565b5085935050505092915050565b614b1881615c40565b82525050565b614b2781615c40565b82525050565b614b3681615c4c565b82525050565b6000614b4782615aa8565b614b518185615b18565b9350614b61818560208601615cd4565b80840191505092915050565b6000614b7882615ab3565b614b828185615b23565b9350614b92818560208601615cd4565b614b9b81615e9a565b840191505092915050565b6000614bb182615ab3565b614bbb8185615b34565b9350614bcb818560208601615cd4565b80840191505092915050565b60008154614be481615d07565b614bee8186615b34565b94506001821660008114614c095760018114614c1a57614c4d565b60ff19831686528186019350614c4d565b614c2385615a72565b60005b83811015614c4557815481890152600182019150602081019050614c26565b838801955050505b50505092915050565b6000614c63602283615b23565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614cc9600283615b23565b91507f46320000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614d09602b83615b23565b91507f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008301527f74206f6620626f756e64730000000000000000000000000000000000000000006020830152604082019050919050565b6000614d6f600c83615b23565b91507f6e6f7420737461727465642e00000000000000000000000000000000000000006000830152602082019050919050565b6000614daf602683615b23565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614e15600283615b23565b91507f42660000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614e55600283615b23565b91507f214c0000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614e95600283615b23565b91507f21490000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614ed5600e83615b23565b91507f496e76616c69642063616c6c65720000000000000000000000000000000000006000830152602082019050919050565b6000614f15600283615b23565b91507f4f330000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614f55600283615b23565b91507f46310000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000614f95602983615b23565b91507f63726561746f72206d75737420696d706c656d656e742049455243373231437260008301527f6561746f72436f726500000000000000000000000000000000000000000000006020830152604082019050919050565b6000614ffb602183615b23565b91507f52656465656d3a206d696e206d757374206265206c657373207468616e206d6160008301527f78000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615061602083615b23565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006150a1602083615b23565b91507f52656465656d3a20496e76616c696420696e70757420706172616d65746572736000830152602082019050919050565b60006150e1600283615b23565b91507f49540000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000615121600283615b23565b91507f4f320000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000615161600283615b23565b91507f49740000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b60006151a1602483615b23565b91507f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f72206160008301527f646d696e000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615207602083615b23565b91507f52656465656d3a204e6f20726564656d7074696f6e732072656d61696e696e676000830152602082019050919050565b6000615247600783615b23565b91507f53746172746564000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000615287601f83615b23565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006152c7600883615b23565b91507f617070726f76616c0000000000000000000000000000000000000000000000006000830152602082019050919050565b6000615307600283615b23565b91507f4f310000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b61534381615c8a565b82525050565b61535281615cc2565b82525050565b61536181615cb8565b82525050565b61537081615cb8565b82525050565b60006153828284614b3c565b915081905092915050565b60006153998285614bd7565b91506153a58284614ba6565b91508190509392505050565b60006020820190506153c660008301846149e6565b92915050565b60006060820190506153e160008301866149e6565b6153ee60208301856149e6565b6153fb6040830184615349565b949350505050565b600060608201905061541860008301866149e6565b61542560208301856149e6565b6154326040830184615367565b949350505050565b600060608201905061544f60008301866149e6565b81810360208301526154618185614ab1565b905081810360408301526154758184614a53565b9050949350505050565b600060608201905061549460008301866149e6565b81810360208301526154a68185614ab1565b905081810360408301526154ba8184614ab1565b9050949350505050565b60006040820190506154d960008301856149e6565b6154e66020830184615367565b9392505050565b6000602082019050818103600083015261550781846149f5565b905092915050565b6000604082019050818103600083015261552981856149f5565b9050818103602083015261553d8184614a53565b90509392505050565b600060208201905081810360008301526155608184614ab1565b905092915050565b600060208201905061557d6000830184614b1e565b92915050565b60006020820190506155986000830184614b2d565b92915050565b600060208201905081810360008301526155b88184614b6d565b905092915050565b600060208201905081810360008301526155d981614c56565b9050919050565b600060208201905081810360008301526155f981614cbc565b9050919050565b6000602082019050818103600083015261561981614cfc565b9050919050565b6000602082019050818103600083015261563981614d62565b9050919050565b6000602082019050818103600083015261565981614da2565b9050919050565b6000602082019050818103600083015261567981614e08565b9050919050565b6000602082019050818103600083015261569981614e48565b9050919050565b600060208201905081810360008301526156b981614e88565b9050919050565b600060208201905081810360008301526156d981614ec8565b9050919050565b600060208201905081810360008301526156f981614f08565b9050919050565b6000602082019050818103600083015261571981614f48565b9050919050565b6000602082019050818103600083015261573981614f88565b9050919050565b6000602082019050818103600083015261575981614fee565b9050919050565b6000602082019050818103600083015261577981615054565b9050919050565b6000602082019050818103600083015261579981615094565b9050919050565b600060208201905081810360008301526157b9816150d4565b9050919050565b600060208201905081810360008301526157d981615114565b9050919050565b600060208201905081810360008301526157f981615154565b9050919050565b6000602082019050818103600083015261581981615194565b9050919050565b60006020820190508181036000830152615839816151fa565b9050919050565b600060208201905081810360008301526158598161523a565b9050919050565b600060208201905081810360008301526158798161527a565b9050919050565b60006020820190508181036000830152615899816152ba565b9050919050565b600060208201905081810360008301526158b9816152fa565b9050919050565b60006020820190506158d5600083018461533a565b92915050565b60006020820190506158f06000830184615349565b92915050565b600060608201905061590b600083018661533a565b615918602083018561533a565b615925604083018461533a565b949350505050565b60006020820190506159426000830184615367565b92915050565b600060808201905061595d6000830187615367565b61596a6020830186615367565b6159776040830185615367565b6159846060830184615367565b95945050505050565b6000604051905081810181811067ffffffffffffffff821117156159b4576159b3615e6b565b5b8060405250919050565b600067ffffffffffffffff8211156159d9576159d8615e6b565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a0557615a04615e6b565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a3157615a30615e6b565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615b4a82615cb8565b9150615b5583615cb8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615b8a57615b89615dde565b5b828201905092915050565b6000615ba082615cb8565b9150615bab83615cb8565b925082615bbb57615bba615e0d565b5b828204905092915050565b6000615bd182615c8a565b9150615bdc83615c8a565b925082821015615bef57615bee615dde565b5b828203905092915050565b6000615c0582615cb8565b9150615c1083615cb8565b925082821015615c2357615c22615dde565b5b828203905092915050565b6000615c3982615c98565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000615c8382615c2e565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000615ccd82615c8a565b9050919050565b60005b83811015615cf2578082015181840152602081019050615cd7565b83811115615d01576000848401525b50505050565b60006002820490506001821680615d1f57607f821691505b60208210811415615d3357615d32615e3c565b5b50919050565b6000615d4482615c8a565b915061ffff821415615d5957615d58615dde565b5b600182019050919050565b6000615d6f82615cb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615da257615da1615dde565b5b600182019050919050565b6000615db882615cb8565b9150615dc383615cb8565b925082615dd357615dd2615e0d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b615eb481615c2e565b8114615ebf57600080fd5b50565b615ecb81615c40565b8114615ed657600080fd5b50565b615ee281615c4c565b8114615eed57600080fd5b50565b615ef981615c78565b8114615f0457600080fd5b50565b615f1081615c8a565b8114615f1b57600080fd5b50565b615f2781615cb8565b8114615f3257600080fd5b5056fea2646970667358221220304aed890891ee4326f14fa90c7b7756027857e247f62c0399b20d4e3f23f1a764736f6c6343000800003368747470733a2f2f636c69656e742d6d657461646174612e65746865722e63617264732f6170692f616f6b692f587472614372656469742f00000000000000000000000001ba93514e5eb642ec63e95ef7787b0edd403add00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000014