POL Price: $0.075824 (-3.81%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Mint Product775439692025-10-11 14:22:54242 days ago1760192574IN
0x4da4D267...87A9972BE
0 POL0.0260178942.97531161
Mint Product775439642025-10-11 14:22:44242 days ago1760192564IN
0x4da4D267...87A9972BE
0 POL0.0259800342.91277288
Mint Product775439572025-10-11 14:22:30242 days ago1760192550IN
0x4da4D267...87A9972BE
0 POL0.0257736842.57192261
Mint Product775439502025-10-11 14:22:16242 days ago1760192536IN
0x4da4D267...87A9972BE
0 POL0.0256753342.40947561
Mint Product775439442025-10-11 14:22:04242 days ago1760192524IN
0x4da4D267...87A9972BE
0 POL0.0255757242.24494189
Mint Product775413862025-10-11 12:56:48242 days ago1760187408IN
0x4da4D267...87A9972BE
0 POL0.026841544.33571457
Mint Product775413742025-10-11 12:56:24242 days ago1760187384IN
0x4da4D267...87A9972BE
0 POL0.0278449745.99320535
Mint Product775413672025-10-11 12:56:10242 days ago1760187370IN
0x4da4D267...87A9972BE
0 POL0.0278216145.95462544
Mint Product775413612025-10-11 12:55:58242 days ago1760187358IN
0x4da4D267...87A9972BE
0 POL0.0277972645.91440042
Mint Product775413562025-10-11 12:55:48242 days ago1760187348IN
0x4da4D267...87A9972BE
0 POL0.0271204244.79642373
Mint Product775409452025-10-11 12:42:06242 days ago1760186526IN
0x4da4D267...87A9972BE
0 POL0.0271965244.92212405
Mint Product775409352025-10-11 12:41:46242 days ago1760186506IN
0x4da4D267...87A9972BE
0 POL0.0269969244.59242176
Mint Product775409262025-10-11 12:41:28242 days ago1760186488IN
0x4da4D267...87A9972BE
0 POL0.0266938544.09182611
Mint Product775409162025-10-11 12:41:08242 days ago1760186468IN
0x4da4D267...87A9972BE
0 POL0.0272331344.98258306
Mint Product775409072025-10-11 12:40:50242 days ago1760186450IN
0x4da4D267...87A9972BE
0 POL0.0268898444.41556406
Mint Product775375272025-10-11 10:48:10242 days ago1760179690IN
0x4da4D267...87A9972BE
0 POL0.0282424347.48000595

Parent Transaction Hash Block From To
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

AuthiChainNFT

Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled
No with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ERC721EnumerableForbiddenBatchMint","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"ERC721OutOfBoundsIndex","type":"error"},{"inputs":[],"name":"EmptyProductIdentifier","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"InvalidTokenURI","type":"error"},{"inputs":[{"internalType":"string","name":"productIdentifier","type":"string"}],"name":"ProductAlreadyExists","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ProductDoesNotExist","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ProductNotActive","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"manufacturer","type":"address"}],"name":"UnauthorizedManufacturer","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manufacturer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ManufacturerRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manufacturer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ManufacturerVerified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ProductDeactivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"updater","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ProductDetailsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"productIdentifier","type":"string"},{"indexed":true,"internalType":"address","name":"manufacturer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ProductMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"eventType","type":"string"},{"indexed":true,"internalType":"address","name":"actor","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SupplyChainEventAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPDATER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"location","type":"string"},{"internalType":"string","name":"notes","type":"string"}],"name":"addSupplyChainEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deactivateProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getProductInfo","outputs":[{"components":[{"internalType":"string","name":"productIdentifier","type":"string"},{"internalType":"string","name":"manufacturer","type":"string"},{"internalType":"string","name":"model","type":"string"},{"internalType":"string","name":"serialNumber","type":"string"},{"internalType":"uint256","name":"manufactureDate","type":"uint256"},{"internalType":"string","name":"additionalDetails","type":"string"},{"internalType":"bool","name":"isActive","type":"bool"}],"internalType":"struct AuthiChainNFT.ProductInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getSupplyChainHistory","outputs":[{"components":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"location","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"string","name":"notes","type":"string"}],"internalType":"struct AuthiChainNFT.SupplyChainEvent[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"productIdentifier","type":"string"}],"name":"getTokenIdByProductIdentifier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manufacturer","type":"address"}],"name":"isManufacturerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isProductActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"productIdentifier","type":"string"},{"internalType":"string","name":"manufacturer","type":"string"},{"internalType":"string","name":"model","type":"string"},{"internalType":"string","name":"serialNumber","type":"string"},{"internalType":"string","name":"additionalDetails","type":"string"},{"internalType":"string","name":"uri","type":"string"}],"name":"mintProduct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manufacturer","type":"address"}],"name":"revokeManufacturer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"additionalDetails","type":"string"}],"name":"updateProductDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manufacturer","type":"address"}],"name":"verifyManufacturer","outputs":[],"stateMutability":"nonpayable","type":"function"}]
608060405234801561001057600080fd5b506040518060400160405280601181526020017f4175746869436861696e50726f647563740000000000000000000000000000008152506040518060400160405280600481526020017f4143505400000000000000000000000000000000000000000000000000000000815250816000908161008c919061056c565b50806001908161009c919061056c565b5050506001600d819055506100ba6000801b336101ab60201b60201c565b506100eb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336101ab60201b60201c565b5061011c7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab336101ab60201b60201c565b5061014d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336101ab60201b60201c565b506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061063e565b60006101bd83836102a960201b60201c565b61029e576001600b600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061023b61031460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506102a3565b600090505b92915050565b6000600b600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061039d57607f821691505b6020821081036103b0576103af610356565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103db565b61042286836103db565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061046961046461045f8461043a565b610444565b61043a565b9050919050565b6000819050919050565b6104838361044e565b61049761048f82610470565b8484546103e8565b825550505050565b600090565b6104ac61049f565b6104b781848461047a565b505050565b5b818110156104db576104d06000826104a4565b6001810190506104bd565b5050565b601f821115610520576104f1816103b6565b6104fa846103cb565b81016020851015610509578190505b61051d610515856103cb565b8301826104bc565b50505b505050565b600082821c905092915050565b600061054360001984600802610525565b1980831691505092915050565b600061055c8383610532565b9150826002028217905092915050565b6105758261031c565b67ffffffffffffffff81111561058e5761058d610327565b5b6105988254610385565b6105a38282856104df565b600060209050601f8311600181146105d657600084156105c4578287015190505b6105ce8582610550565b865550610636565b601f1984166105e4866103b6565b60005b8281101561060c578489015182556001820191506020850194506020810190506105e7565b868310156106295784890151610625601f891682610532565b8355505b6001600288020188555050505b505050505050565b6150c18061064d6000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806370a082311161013b578063c87b56dd116100b8578063de0a5e991161007c578063de0a5e99146106fc578063e63ab1e91461072c578063e985e9c51461074a578063f4ea4dd31461077a578063fd77e5de146107965761023d565b8063c87b56dd14610646578063d539139314610676578063d547741f14610694578063d581806a146106b0578063d64a3d8b146106e05761023d565b806395d89b41116100ff57806395d89b41146105a2578063a217fddf146105c0578063a22cb465146105de578063b88d4fde146105fa578063b95ace69146106165761023d565b806370a08231146104ec57806379a85e6c1461051c578063810699b61461054c5780638456cb591461056857806391d14854146105725761023d565b806326fe72d2116101c957806342842e0e1161018d57806342842e0e1461043457806347e63380146104505780634f6ccce71461046e5780635c975abb1461049e5780636352211e146104bc5761023d565b806326fe72d2146103925780632f2ff15d146103c25780632f745c59146103de57806336568abe1461040e5780633f4ba83a1461042a5761023d565b8063095ea7b311610210578063095ea7b3146102f057806318160ddd1461030c57806318b452381461032a57806323b872dd14610346578063248a9ca3146103625761023d565b806301ffc9a714610242578063061a24ac1461027257806306fdde03146102a2578063081812fc146102c0575b600080fd5b61025c60048036038101906102579190613e20565b6107b2565b6040516102699190613e68565b60405180910390f35b61028c60048036038101906102879190614027565b6107c4565b604051610299919061418a565b60405180910390f35b6102aa610c8c565b6040516102b79190614224565b60405180910390f35b6102da60048036038101906102d59190614272565b610d1e565b6040516102e791906142ae565b60405180910390f35b61030a600480360381019061030591906142c9565b610d3a565b005b610314610d50565b604051610321919061418a565b60405180910390f35b610344600480360381019061033f9190614309565b610d5d565b005b610360600480360381019061035b9190614336565b610e3f565b005b61037c600480360381019061037791906143bf565b610f41565b60405161038991906143fb565b60405180910390f35b6103ac60048036038101906103a79190614272565b610f61565b6040516103b99190613e68565b60405180910390f35b6103dc60048036038101906103d79190614416565b611006565b005b6103f860048036038101906103f391906142c9565b611028565b604051610405919061418a565b60405180910390f35b61042860048036038101906104239190614416565b6110d1565b005b61043261114c565b005b61044e60048036038101906104499190614336565b611181565b005b6104586111a1565b60405161046591906143fb565b60405180910390f35b61048860048036038101906104839190614272565b6111c5565b604051610495919061418a565b60405180910390f35b6104a661123b565b6040516104b39190613e68565b60405180910390f35b6104d660048036038101906104d19190614272565b611252565b6040516104e391906142ae565b60405180910390f35b61050660048036038101906105019190614309565b611264565b604051610513919061418a565b60405180910390f35b61053660048036038101906105319190614272565b61131e565b6040516105439190614576565b60405180910390f35b61056660048036038101906105619190614598565b6116c3565b005b610570611939565b005b61058c60048036038101906105879190614416565b61196e565b6040516105999190613e68565b60405180910390f35b6105aa6119d9565b6040516105b79190614224565b60405180910390f35b6105c8611a6b565b6040516105d591906143fb565b60405180910390f35b6105f860048036038101906105f3919061467f565b611a72565b005b610614600480360381019061060f9190614760565b611a88565b005b610630600480360381019061062b9190614309565b611aad565b60405161063d9190613e68565b60405180910390f35b610660600480360381019061065b9190614272565b611b03565b60405161066d9190614224565b60405180910390f35b61067e611b15565b60405161068b91906143fb565b60405180910390f35b6106ae60048036038101906106a99190614416565b611b39565b005b6106ca60048036038101906106c591906147e3565b611b5b565b6040516106d7919061418a565b60405180910390f35b6106fa60048036038101906106f59190614309565b611b83565b005b61071660048036038101906107119190614272565b611c65565b6040516107239190614981565b60405180910390f35b610734611f66565b60405161074191906143fb565b60405180910390f35b610764600480360381019061075f91906149a3565b611f8a565b6040516107719190613e68565b60405180910390f35b610794600480360381019061078f91906149e3565b61201e565b005b6107b060048036038101906107ab9190614272565b612141565b005b60006107bd82612232565b9050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66107f0816122ac565b6107f86122c0565b610800612301565b600088510361083b576040517f7473d47a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600f8960405161084d9190614a7b565b9081526020016040518091039020541461089e57876040517f3b201a4b0000000000000000000000000000000000000000000000000000000081526004016108959190614224565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561090257506109006000801b3361196e565b155b1561094457336040517f2326286800000000000000000000000000000000000000000000000000000000815260040161093b91906142ae565b60405180910390fd5b600083510361097f576040517f13f04adb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e600081548092919061099290614ac1565b91905055506000600e5490506109a88a82612347565b6109b28185612365565b80600f8a6040516109c39190614a7b565b9081526020016040518091039020819055506040518060e001604052808a815260200189815260200188815260200187815260200142815260200186815260200160011515815250601060008381526020019081526020016000206000820151816000019081610a339190614d15565b506020820151816001019081610a499190614d15565b506040820151816002019081610a5f9190614d15565b506060820151816003019081610a759190614d15565b506080820151816004015560a0820151816005019081610a959190614d15565b5060c08201518160060160006101000a81548160ff021916908315150217905550905050601160008281526020019081526020016000206040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600c81526020017f6d616e7566616374757265640000000000000000000000000000000000000000815250815260200160405180602001604052806000815250815260200142815260200160405180606001604052806023815260200161506960239139815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610bea9190614d15565b506040820151816002019081610c009190614d15565b50606082015181600301556080820151816004019081610c209190614d15565b5050503373ffffffffffffffffffffffffffffffffffffffff16817f61a1b2ebc43463091ea9bbea414b9925c7de0b6b526325821313baf55bcde9cd8b42604051610c6c929190614de7565b60405180910390a380925050610c806123c1565b50979650505050505050565b606060008054610c9b90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc790614b38565b8015610d145780601f10610ce957610100808354040283529160200191610d14565b820191906000526020600020905b815481529060010190602001808311610cf757829003601f168201915b5050505050905090565b6000610d29826123cb565b50610d3382612453565b9050919050565b610d4c8282610d47612490565b612498565b5050565b6000600980549050905090565b6000801b610d6a816122ac565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610dec7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6836124aa565b508173ffffffffffffffffffffffffffffffffffffffff167fe8d2a3ac660549a08f637582b6cbe854156af7ef2042247240ffc1fd34db7bcd42604051610e33919061418a565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb15760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ea891906142ae565b60405180910390fd5b6000610ec58383610ec0612490565b61259d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f3b578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610f3293929190614e17565b60405180910390fd5b50505050565b6000600b6000838152602001908152602001600020600101549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16610f83836127c6565b73ffffffffffffffffffffffffffffffffffffffff1603610fdb57816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401610fd2919061418a565b60405180910390fd5b6010600083815260200190815260200160002060060160009054906101000a900460ff169050919050565b61100f82610f41565b611018816122ac565b6110228383612803565b50505050565b600061103383611264565b82106110785782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161106f929190614e4e565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6110d9612490565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114782826124aa565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611176816122ac565b61117e6128f5565b50565b61119c83838360405180602001604052806000815250611a88565b505050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab81565b60006111cf610d50565b8210611215576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161120c929190614e4e565b60405180910390fd5b6009828154811061122957611228614e77565b5b90600052602060002001549050919050565b6000600c60009054906101000a900460ff16905090565b600061125d826123cb565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d75760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016112ce91906142ae565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611326613d75565b600073ffffffffffffffffffffffffffffffffffffffff16611347836127c6565b73ffffffffffffffffffffffffffffffffffffffff160361139f57816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611396919061418a565b60405180910390fd5b601060008381526020019081526020016000206040518060e00160405290816000820180546113cd90614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546113f990614b38565b80156114465780601f1061141b57610100808354040283529160200191611446565b820191906000526020600020905b81548152906001019060200180831161142957829003601f168201915b5050505050815260200160018201805461145f90614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461148b90614b38565b80156114d85780601f106114ad576101008083540402835291602001916114d8565b820191906000526020600020905b8154815290600101906020018083116114bb57829003601f168201915b505050505081526020016002820180546114f190614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461151d90614b38565b801561156a5780601f1061153f5761010080835404028352916020019161156a565b820191906000526020600020905b81548152906001019060200180831161154d57829003601f168201915b5050505050815260200160038201805461158390614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546115af90614b38565b80156115fc5780601f106115d1576101008083540402835291602001916115fc565b820191906000526020600020905b8154815290600101906020018083116115df57829003601f168201915b505050505081526020016004820154815260200160058201805461161f90614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461164b90614b38565b80156116985780601f1061166d57610100808354040283529160200191611698565b820191906000526020600020905b81548152906001019060200180831161167b57829003601f168201915b505050505081526020016006820160009054906101000a900460ff1615151515815250509050919050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab6116ed816122ac565b6116f56122c0565b600073ffffffffffffffffffffffffffffffffffffffff16611716866127c6565b73ffffffffffffffffffffffffffffffffffffffff160361176e57846040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611765919061418a565b60405180910390fd5b6010600086815260200190815260200160002060060160009054906101000a900460ff166117d357846040517f48f02acd0000000000000000000000000000000000000000000000000000000081526004016117ca919061418a565b60405180910390fd5b601160008681526020019081526020016000206040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200142815260200184815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816118a89190614d15565b5060408201518160020190816118be9190614d15565b506060820151816003015560808201518160040190816118de9190614d15565b5050503373ffffffffffffffffffffffffffffffffffffffff16857fb942d3fc27ad6e4eca098d4547c217617e99ca4dbd629964d9a4195e84a33873864260405161192a929190614de7565b60405180910390a35050505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611963816122ac565b61196b612958565b50565b6000600b600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546119e890614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1490614b38565b8015611a615780601f10611a3657610100808354040283529160200191611a61565b820191906000526020600020905b815481529060010190602001808311611a4457829003601f168201915b5050505050905090565b6000801b81565b611a84611a7d612490565b83836129bb565b5050565b611a93848484610e3f565b611aa7611a9e612490565b85858585612b2a565b50505050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6060611b0e82612cdb565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b611b4282610f41565b611b4b816122ac565b611b5583836124aa565b50505050565b6000600f82604051611b6d9190614a7b565b9081526020016040518091039020549050919050565b6000801b611b90816122ac565b6001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c127f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683612803565b508173ffffffffffffffffffffffffffffffffffffffff167f50d2f63d0768a218414c666031d609d1b298f9801478a36d0bfcfb6abfd63a6442604051611c59919061418a565b60405180910390a25050565b6060600073ffffffffffffffffffffffffffffffffffffffff16611c88836127c6565b73ffffffffffffffffffffffffffffffffffffffff1603611ce057816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611cd7919061418a565b60405180910390fd5b60116000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611f5b57838290600052602060002090600502016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054611d9c90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611dc890614b38565b8015611e155780601f10611dea57610100808354040283529160200191611e15565b820191906000526020600020905b815481529060010190602001808311611df857829003601f168201915b50505050508152602001600282018054611e2e90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5a90614b38565b8015611ea75780601f10611e7c57610100808354040283529160200191611ea7565b820191906000526020600020905b815481529060010190602001808311611e8a57829003601f168201915b5050505050815260200160038201548152602001600482018054611eca90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef690614b38565b8015611f435780601f10611f1857610100808354040283529160200191611f43565b820191906000526020600020905b815481529060010190602001808311611f2657829003601f168201915b50505050508152505081526020019060010190611d13565b505050509050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab612048816122ac565b6120506122c0565b600073ffffffffffffffffffffffffffffffffffffffff16612071846127c6565b73ffffffffffffffffffffffffffffffffffffffff16036120c957826040517fb4705b1d0000000000000000000000000000000000000000000000000000000081526004016120c0919061418a565b60405180910390fd5b816010600085815260200190815260200160002060050190816120ec9190614d15565b503373ffffffffffffffffffffffffffffffffffffffff16837f9e42f2856781bcf1fb57f7d3c7996006ba9b787938e4e75e1dae797508f8119942604051612134919061418a565b60405180910390a3505050565b6000801b61214e816122ac565b600073ffffffffffffffffffffffffffffffffffffffff1661216f836127c6565b73ffffffffffffffffffffffffffffffffffffffff16036121c757816040517fb4705b1d0000000000000000000000000000000000000000000000000000000081526004016121be919061418a565b60405180910390fd5b60006010600084815260200190815260200160002060060160006101000a81548160ff021916908315150217905550817f3bdeaff323d8a86538be50d98331a1bb54d894f118d3e0ae6f116e9f56843fd842604051612226919061418a565b60405180910390a25050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122a557506122a482612dee565b5b9050919050565b6122bd816122b8612490565b612e68565b50565b6122c861123b565b156122ff576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6002600d540361233d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600d81905550565b612361828260405180602001604052806000815250612eb9565b5050565b806006600084815260200190815260200160002090816123859190614d15565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516123b5919061418a565b60405180910390a15050565b6001600d81905550565b6000806123d7836127c6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361244a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612441919061418a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6124a58383836001612edd565b505050565b60006124b6838361196e565b15612592576000600b600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061252f612490565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050612597565b600090505b92915050565b60006125a76122c0565b60006125b2846127c6565b905060006125c18686866130a2565b9050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b156127ba57601160008681526020019081526020016000206040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600b81526020017f7472616e7366657272656400000000000000000000000000000000000000000081525081526020016040518060200160405280600081525081526020014281526020016040518060400160405280601581526020017f4f776e657273686970207472616e736665727265640000000000000000000000815250815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816127809190614d15565b5060408201518160020190816127969190614d15565b506060820151816003015560808201518160040190816127b69190614d15565b5050505b80925050509392505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061280f838361196e565b6128ea576001600b600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612887612490565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506128ef565b600090505b92915050565b6128fd6131bf565b6000600c60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612941612490565b60405161294e91906142ae565b60405180910390a1565b6129606122c0565b6001600c60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586129a4612490565b6040516129b191906142ae565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a2c57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401612a2391906142ae565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612b1d9190613e68565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115612cd4578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401612b899493929190614efb565b6020604051808303816000875af1925050508015612bc557506040513d601f19601f82011682018060405250810190612bc29190614f5c565b60015b612c49573d8060008114612bf5576040519150601f19603f3d011682016040523d82523d6000602084013e612bfa565b606091505b506000815103612c4157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612c3891906142ae565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612cd257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612cc991906142ae565b60405180910390fd5b505b5050505050565b6060612ce6826123cb565b506000600660008481526020019081526020016000208054612d0790614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3390614b38565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b505050505090506000612d916131ff565b90506000815103612da6578192505050612de9565b600082511115612ddb578082604051602001612dc3929190614f89565b60405160208183030381529060405292505050612de9565b612de484613216565b925050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612e615750612e608261327f565b5b9050919050565b612e72828261196e565b612eb55780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612eac929190614fad565b60405180910390fd5b5050565b612ec383836132e0565b612ed8612ece612490565b6000858585612b2a565b505050565b8080612f165750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561304a576000612f26846123cb565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f9157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612fa45750612fa28184611f8a565b155b15612fe657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401612fdd91906142ae565b60405180910390fd5b811561304857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806130b08585856133d9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036130f4576130ef846135f3565b613133565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461313257613131818561363c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131755761317084613727565b6131b4565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146131b3576131b285856137f8565b5b5b809150509392505050565b6131c761123b565b6131fd576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060405180602001604052806000815250905090565b6060613221826123cb565b50600061322c6131ff565b9050600081511161324c5760405180602001604052806000815250613277565b8061325684613883565b604051602001613267929190614f89565b6040516020818303038152906040525b915050919050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806132d957506132d882613951565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133525760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161334991906142ae565b60405180910390fd5b60006133608383600061259d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146133d45760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016133cb91906142ae565b60405180910390fd5b505050565b6000806133e5846127c6565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461342757613426818486613a33565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146134b857613469600085600080612edd565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461353b576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b600061364783611264565b90506000600860008481526020019081526020016000205490506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508282146136f35760008160008581526020019081526020016000205490508082600085815260200190815260200160002081905550826008600083815260200190815260200160002081905550505b6008600085815260200190815260200160002060009055806000848152602001908152602001600020600090555050505050565b6000600160098054905061373b9190614fd6565b90506000600a600084815260200190815260200160002054905060006009838154811061376b5761376a614e77565b5b90600052602060002001549050806009838154811061378d5761378c614e77565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806137dc576137db61500a565b5b6001900381819060005260206000200160009055905550505050565b6000600161380584611264565b61380f9190614fd6565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b60606000600161389284613af7565b01905060008167ffffffffffffffff8111156138b1576138b0613efc565b5b6040519080825280601f01601f1916602001820160405280156138e35781602001600182028036833780820191505090505b509050600082602083010190505b600115613946578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161393a57613939615039565b5b049450600085036138f1575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613a1c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613a2c5750613a2b82613c4a565b5b9050919050565b613a3e838383613cb4565b613af257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613ab357806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401613aaa919061418a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401613ae9929190614e4e565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613b55577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613b4b57613b4a615039565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613b92576d04ee2d6d415b85acef81000000008381613b8857613b87615039565b5b0492506020810190505b662386f26fc100008310613bc157662386f26fc100008381613bb757613bb6615039565b5b0492506010810190505b6305f5e1008310613bea576305f5e1008381613be057613bdf615039565b5b0492506008810190505b6127108310613c0f576127108381613c0557613c04615039565b5b0492506004810190505b60648310613c325760648381613c2857613c27615039565b5b0492506002810190505b600a8310613c41576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613d6c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613d2d5750613d2c8484611f8a565b5b80613d6b57508273ffffffffffffffffffffffffffffffffffffffff16613d5383612453565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6040518060e001604052806060815260200160608152602001606081526020016060815260200160008152602001606081526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613dfd81613dc8565b8114613e0857600080fd5b50565b600081359050613e1a81613df4565b92915050565b600060208284031215613e3657613e35613dbe565b5b6000613e4484828501613e0b565b91505092915050565b60008115159050919050565b613e6281613e4d565b82525050565b6000602082019050613e7d6000830184613e59565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613eae82613e83565b9050919050565b613ebe81613ea3565b8114613ec957600080fd5b50565b600081359050613edb81613eb5565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f3482613eeb565b810181811067ffffffffffffffff82111715613f5357613f52613efc565b5b80604052505050565b6000613f66613db4565b9050613f728282613f2b565b919050565b600067ffffffffffffffff821115613f9257613f91613efc565b5b613f9b82613eeb565b9050602081019050919050565b82818337600083830152505050565b6000613fca613fc584613f77565b613f5c565b905082815260208101848484011115613fe657613fe5613ee6565b5b613ff1848285613fa8565b509392505050565b600082601f83011261400e5761400d613ee1565b5b813561401e848260208601613fb7565b91505092915050565b600080600080600080600060e0888a03121561404657614045613dbe565b5b60006140548a828b01613ecc565b975050602088013567ffffffffffffffff81111561407557614074613dc3565b5b6140818a828b01613ff9565b965050604088013567ffffffffffffffff8111156140a2576140a1613dc3565b5b6140ae8a828b01613ff9565b955050606088013567ffffffffffffffff8111156140cf576140ce613dc3565b5b6140db8a828b01613ff9565b945050608088013567ffffffffffffffff8111156140fc576140fb613dc3565b5b6141088a828b01613ff9565b93505060a088013567ffffffffffffffff81111561412957614128613dc3565b5b6141358a828b01613ff9565b92505060c088013567ffffffffffffffff81111561415657614155613dc3565b5b6141628a828b01613ff9565b91505092959891949750929550565b6000819050919050565b61418481614171565b82525050565b600060208201905061419f600083018461417b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156141df5780820151818401526020810190506141c4565b60008484015250505050565b60006141f6826141a5565b61420081856141b0565b93506142108185602086016141c1565b61421981613eeb565b840191505092915050565b6000602082019050818103600083015261423e81846141eb565b905092915050565b61424f81614171565b811461425a57600080fd5b50565b60008135905061426c81614246565b92915050565b60006020828403121561428857614287613dbe565b5b60006142968482850161425d565b91505092915050565b6142a881613ea3565b82525050565b60006020820190506142c3600083018461429f565b92915050565b600080604083850312156142e0576142df613dbe565b5b60006142ee85828601613ecc565b92505060206142ff8582860161425d565b9150509250929050565b60006020828403121561431f5761431e613dbe565b5b600061432d84828501613ecc565b91505092915050565b60008060006060848603121561434f5761434e613dbe565b5b600061435d86828701613ecc565b935050602061436e86828701613ecc565b925050604061437f8682870161425d565b9150509250925092565b6000819050919050565b61439c81614389565b81146143a757600080fd5b50565b6000813590506143b981614393565b92915050565b6000602082840312156143d5576143d4613dbe565b5b60006143e3848285016143aa565b91505092915050565b6143f581614389565b82525050565b600060208201905061441060008301846143ec565b92915050565b6000806040838503121561442d5761442c613dbe565b5b600061443b858286016143aa565b925050602061444c85828601613ecc565b9150509250929050565b600082825260208201905092915050565b6000614472826141a5565b61447c8185614456565b935061448c8185602086016141c1565b61449581613eeb565b840191505092915050565b6144a981614171565b82525050565b6144b881613e4d565b82525050565b600060e08301600083015184820360008601526144db8282614467565b915050602083015184820360208601526144f58282614467565b9150506040830151848203604086015261450f8282614467565b915050606083015184820360608601526145298282614467565b915050608083015161453e60808601826144a0565b5060a083015184820360a08601526145568282614467565b91505060c083015161456b60c08601826144af565b508091505092915050565b6000602082019050818103600083015261459081846144be565b905092915050565b600080600080608085870312156145b2576145b1613dbe565b5b60006145c08782880161425d565b945050602085013567ffffffffffffffff8111156145e1576145e0613dc3565b5b6145ed87828801613ff9565b935050604085013567ffffffffffffffff81111561460e5761460d613dc3565b5b61461a87828801613ff9565b925050606085013567ffffffffffffffff81111561463b5761463a613dc3565b5b61464787828801613ff9565b91505092959194509250565b61465c81613e4d565b811461466757600080fd5b50565b60008135905061467981614653565b92915050565b6000806040838503121561469657614695613dbe565b5b60006146a485828601613ecc565b92505060206146b58582860161466a565b9150509250929050565b600067ffffffffffffffff8211156146da576146d9613efc565b5b6146e382613eeb565b9050602081019050919050565b60006147036146fe846146bf565b613f5c565b90508281526020810184848401111561471f5761471e613ee6565b5b61472a848285613fa8565b509392505050565b600082601f83011261474757614746613ee1565b5b81356147578482602086016146f0565b91505092915050565b6000806000806080858703121561477a57614779613dbe565b5b600061478887828801613ecc565b945050602061479987828801613ecc565b93505060406147aa8782880161425d565b925050606085013567ffffffffffffffff8111156147cb576147ca613dc3565b5b6147d787828801614732565b91505092959194509250565b6000602082840312156147f9576147f8613dbe565b5b600082013567ffffffffffffffff81111561481757614816613dc3565b5b61482384828501613ff9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61486181613ea3565b82525050565b600060a08301600083015161487f6000860182614858565b50602083015184820360208601526148978282614467565b915050604083015184820360408601526148b18282614467565b91505060608301516148c660608601826144a0565b50608083015184820360808601526148de8282614467565b9150508091505092915050565b60006148f78383614867565b905092915050565b6000602082019050919050565b60006149178261482c565b6149218185614837565b93508360208202850161493385614848565b8060005b8581101561496f578484038952815161495085826148eb565b945061495b836148ff565b925060208a01995050600181019050614937565b50829750879550505050505092915050565b6000602082019050818103600083015261499b818461490c565b905092915050565b600080604083850312156149ba576149b9613dbe565b5b60006149c885828601613ecc565b92505060206149d985828601613ecc565b9150509250929050565b600080604083850312156149fa576149f9613dbe565b5b6000614a088582860161425d565b925050602083013567ffffffffffffffff811115614a2957614a28613dc3565b5b614a3585828601613ff9565b9150509250929050565b600081905092915050565b6000614a55826141a5565b614a5f8185614a3f565b9350614a6f8185602086016141c1565b80840191505092915050565b6000614a878284614a4a565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614acc82614171565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614afe57614afd614a92565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614b5057607f821691505b602082108103614b6357614b62614b09565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614bcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614b8e565b614bd58683614b8e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614c12614c0d614c0884614171565b614bed565b614171565b9050919050565b6000819050919050565b614c2c83614bf7565b614c40614c3882614c19565b848454614b9b565b825550505050565b600090565b614c55614c48565b614c60818484614c23565b505050565b5b81811015614c8457614c79600082614c4d565b600181019050614c66565b5050565b601f821115614cc957614c9a81614b69565b614ca384614b7e565b81016020851015614cb2578190505b614cc6614cbe85614b7e565b830182614c65565b50505b505050565b600082821c905092915050565b6000614cec60001984600802614cce565b1980831691505092915050565b6000614d058383614cdb565b9150826002028217905092915050565b614d1e826141a5565b67ffffffffffffffff811115614d3757614d36613efc565b5b614d418254614b38565b614d4c828285614c88565b600060209050601f831160018114614d7f5760008415614d6d578287015190505b614d778582614cf9565b865550614ddf565b601f198416614d8d86614b69565b60005b82811015614db557848901518255600182019150602085019450602081019050614d90565b86831015614dd25784890151614dce601f891682614cdb565b8355505b6001600288020188555050505b505050505050565b60006040820190508181036000830152614e0181856141eb565b9050614e10602083018461417b565b9392505050565b6000606082019050614e2c600083018661429f565b614e39602083018561417b565b614e46604083018461429f565b949350505050565b6000604082019050614e63600083018561429f565b614e70602083018461417b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000614ecd82614ea6565b614ed78185614eb1565b9350614ee78185602086016141c1565b614ef081613eeb565b840191505092915050565b6000608082019050614f10600083018761429f565b614f1d602083018661429f565b614f2a604083018561417b565b8181036060830152614f3c8184614ec2565b905095945050505050565b600081519050614f5681613df4565b92915050565b600060208284031215614f7257614f71613dbe565b5b6000614f8084828501614f47565b91505092915050565b6000614f958285614a4a565b9150614fa18284614a4a565b91508190509392505050565b6000604082019050614fc2600083018561429f565b614fcf60208301846143ec565b9392505050565b6000614fe182614171565b9150614fec83614171565b925082820390508181111561500457615003614a92565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe50726f64756374206d616e75666163747572656420616e642072656769737465726564a264697066735822122099658bdf87aefefdcec277133494b9e0fbf1a99c978add2fcae8272f99dc85b664736f6c634300081c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023d5760003560e01c806370a082311161013b578063c87b56dd116100b8578063de0a5e991161007c578063de0a5e99146106fc578063e63ab1e91461072c578063e985e9c51461074a578063f4ea4dd31461077a578063fd77e5de146107965761023d565b8063c87b56dd14610646578063d539139314610676578063d547741f14610694578063d581806a146106b0578063d64a3d8b146106e05761023d565b806395d89b41116100ff57806395d89b41146105a2578063a217fddf146105c0578063a22cb465146105de578063b88d4fde146105fa578063b95ace69146106165761023d565b806370a08231146104ec57806379a85e6c1461051c578063810699b61461054c5780638456cb591461056857806391d14854146105725761023d565b806326fe72d2116101c957806342842e0e1161018d57806342842e0e1461043457806347e63380146104505780634f6ccce71461046e5780635c975abb1461049e5780636352211e146104bc5761023d565b806326fe72d2146103925780632f2ff15d146103c25780632f745c59146103de57806336568abe1461040e5780633f4ba83a1461042a5761023d565b8063095ea7b311610210578063095ea7b3146102f057806318160ddd1461030c57806318b452381461032a57806323b872dd14610346578063248a9ca3146103625761023d565b806301ffc9a714610242578063061a24ac1461027257806306fdde03146102a2578063081812fc146102c0575b600080fd5b61025c60048036038101906102579190613e20565b6107b2565b6040516102699190613e68565b60405180910390f35b61028c60048036038101906102879190614027565b6107c4565b604051610299919061418a565b60405180910390f35b6102aa610c8c565b6040516102b79190614224565b60405180910390f35b6102da60048036038101906102d59190614272565b610d1e565b6040516102e791906142ae565b60405180910390f35b61030a600480360381019061030591906142c9565b610d3a565b005b610314610d50565b604051610321919061418a565b60405180910390f35b610344600480360381019061033f9190614309565b610d5d565b005b610360600480360381019061035b9190614336565b610e3f565b005b61037c600480360381019061037791906143bf565b610f41565b60405161038991906143fb565b60405180910390f35b6103ac60048036038101906103a79190614272565b610f61565b6040516103b99190613e68565b60405180910390f35b6103dc60048036038101906103d79190614416565b611006565b005b6103f860048036038101906103f391906142c9565b611028565b604051610405919061418a565b60405180910390f35b61042860048036038101906104239190614416565b6110d1565b005b61043261114c565b005b61044e60048036038101906104499190614336565b611181565b005b6104586111a1565b60405161046591906143fb565b60405180910390f35b61048860048036038101906104839190614272565b6111c5565b604051610495919061418a565b60405180910390f35b6104a661123b565b6040516104b39190613e68565b60405180910390f35b6104d660048036038101906104d19190614272565b611252565b6040516104e391906142ae565b60405180910390f35b61050660048036038101906105019190614309565b611264565b604051610513919061418a565b60405180910390f35b61053660048036038101906105319190614272565b61131e565b6040516105439190614576565b60405180910390f35b61056660048036038101906105619190614598565b6116c3565b005b610570611939565b005b61058c60048036038101906105879190614416565b61196e565b6040516105999190613e68565b60405180910390f35b6105aa6119d9565b6040516105b79190614224565b60405180910390f35b6105c8611a6b565b6040516105d591906143fb565b60405180910390f35b6105f860048036038101906105f3919061467f565b611a72565b005b610614600480360381019061060f9190614760565b611a88565b005b610630600480360381019061062b9190614309565b611aad565b60405161063d9190613e68565b60405180910390f35b610660600480360381019061065b9190614272565b611b03565b60405161066d9190614224565b60405180910390f35b61067e611b15565b60405161068b91906143fb565b60405180910390f35b6106ae60048036038101906106a99190614416565b611b39565b005b6106ca60048036038101906106c591906147e3565b611b5b565b6040516106d7919061418a565b60405180910390f35b6106fa60048036038101906106f59190614309565b611b83565b005b61071660048036038101906107119190614272565b611c65565b6040516107239190614981565b60405180910390f35b610734611f66565b60405161074191906143fb565b60405180910390f35b610764600480360381019061075f91906149a3565b611f8a565b6040516107719190613e68565b60405180910390f35b610794600480360381019061078f91906149e3565b61201e565b005b6107b060048036038101906107ab9190614272565b612141565b005b60006107bd82612232565b9050919050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66107f0816122ac565b6107f86122c0565b610800612301565b600088510361083b576040517f7473d47a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600f8960405161084d9190614a7b565b9081526020016040518091039020541461089e57876040517f3b201a4b0000000000000000000000000000000000000000000000000000000081526004016108959190614224565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561090257506109006000801b3361196e565b155b1561094457336040517f2326286800000000000000000000000000000000000000000000000000000000815260040161093b91906142ae565b60405180910390fd5b600083510361097f576040517f13f04adb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e600081548092919061099290614ac1565b91905055506000600e5490506109a88a82612347565b6109b28185612365565b80600f8a6040516109c39190614a7b565b9081526020016040518091039020819055506040518060e001604052808a815260200189815260200188815260200187815260200142815260200186815260200160011515815250601060008381526020019081526020016000206000820151816000019081610a339190614d15565b506020820151816001019081610a499190614d15565b506040820151816002019081610a5f9190614d15565b506060820151816003019081610a759190614d15565b506080820151816004015560a0820151816005019081610a959190614d15565b5060c08201518160060160006101000a81548160ff021916908315150217905550905050601160008281526020019081526020016000206040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600c81526020017f6d616e7566616374757265640000000000000000000000000000000000000000815250815260200160405180602001604052806000815250815260200142815260200160405180606001604052806023815260200161506960239139815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610bea9190614d15565b506040820151816002019081610c009190614d15565b50606082015181600301556080820151816004019081610c209190614d15565b5050503373ffffffffffffffffffffffffffffffffffffffff16817f61a1b2ebc43463091ea9bbea414b9925c7de0b6b526325821313baf55bcde9cd8b42604051610c6c929190614de7565b60405180910390a380925050610c806123c1565b50979650505050505050565b606060008054610c9b90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc790614b38565b8015610d145780601f10610ce957610100808354040283529160200191610d14565b820191906000526020600020905b815481529060010190602001808311610cf757829003601f168201915b5050505050905090565b6000610d29826123cb565b50610d3382612453565b9050919050565b610d4c8282610d47612490565b612498565b5050565b6000600980549050905090565b6000801b610d6a816122ac565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610dec7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6836124aa565b508173ffffffffffffffffffffffffffffffffffffffff167fe8d2a3ac660549a08f637582b6cbe854156af7ef2042247240ffc1fd34db7bcd42604051610e33919061418a565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb15760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ea891906142ae565b60405180910390fd5b6000610ec58383610ec0612490565b61259d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f3b578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610f3293929190614e17565b60405180910390fd5b50505050565b6000600b6000838152602001908152602001600020600101549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16610f83836127c6565b73ffffffffffffffffffffffffffffffffffffffff1603610fdb57816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401610fd2919061418a565b60405180910390fd5b6010600083815260200190815260200160002060060160009054906101000a900460ff169050919050565b61100f82610f41565b611018816122ac565b6110228383612803565b50505050565b600061103383611264565b82106110785782826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161106f929190614e4e565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6110d9612490565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114782826124aa565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611176816122ac565b61117e6128f5565b50565b61119c83838360405180602001604052806000815250611a88565b505050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab81565b60006111cf610d50565b8210611215576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161120c929190614e4e565b60405180910390fd5b6009828154811061122957611228614e77565b5b90600052602060002001549050919050565b6000600c60009054906101000a900460ff16905090565b600061125d826123cb565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d75760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016112ce91906142ae565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611326613d75565b600073ffffffffffffffffffffffffffffffffffffffff16611347836127c6565b73ffffffffffffffffffffffffffffffffffffffff160361139f57816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611396919061418a565b60405180910390fd5b601060008381526020019081526020016000206040518060e00160405290816000820180546113cd90614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546113f990614b38565b80156114465780601f1061141b57610100808354040283529160200191611446565b820191906000526020600020905b81548152906001019060200180831161142957829003601f168201915b5050505050815260200160018201805461145f90614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461148b90614b38565b80156114d85780601f106114ad576101008083540402835291602001916114d8565b820191906000526020600020905b8154815290600101906020018083116114bb57829003601f168201915b505050505081526020016002820180546114f190614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461151d90614b38565b801561156a5780601f1061153f5761010080835404028352916020019161156a565b820191906000526020600020905b81548152906001019060200180831161154d57829003601f168201915b5050505050815260200160038201805461158390614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546115af90614b38565b80156115fc5780601f106115d1576101008083540402835291602001916115fc565b820191906000526020600020905b8154815290600101906020018083116115df57829003601f168201915b505050505081526020016004820154815260200160058201805461161f90614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461164b90614b38565b80156116985780601f1061166d57610100808354040283529160200191611698565b820191906000526020600020905b81548152906001019060200180831161167b57829003601f168201915b505050505081526020016006820160009054906101000a900460ff1615151515815250509050919050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab6116ed816122ac565b6116f56122c0565b600073ffffffffffffffffffffffffffffffffffffffff16611716866127c6565b73ffffffffffffffffffffffffffffffffffffffff160361176e57846040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611765919061418a565b60405180910390fd5b6010600086815260200190815260200160002060060160009054906101000a900460ff166117d357846040517f48f02acd0000000000000000000000000000000000000000000000000000000081526004016117ca919061418a565b60405180910390fd5b601160008681526020019081526020016000206040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200142815260200184815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816118a89190614d15565b5060408201518160020190816118be9190614d15565b506060820151816003015560808201518160040190816118de9190614d15565b5050503373ffffffffffffffffffffffffffffffffffffffff16857fb942d3fc27ad6e4eca098d4547c217617e99ca4dbd629964d9a4195e84a33873864260405161192a929190614de7565b60405180910390a35050505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611963816122ac565b61196b612958565b50565b6000600b600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546119e890614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1490614b38565b8015611a615780601f10611a3657610100808354040283529160200191611a61565b820191906000526020600020905b815481529060010190602001808311611a4457829003601f168201915b5050505050905090565b6000801b81565b611a84611a7d612490565b83836129bb565b5050565b611a93848484610e3f565b611aa7611a9e612490565b85858585612b2a565b50505050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6060611b0e82612cdb565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b611b4282610f41565b611b4b816122ac565b611b5583836124aa565b50505050565b6000600f82604051611b6d9190614a7b565b9081526020016040518091039020549050919050565b6000801b611b90816122ac565b6001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c127f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683612803565b508173ffffffffffffffffffffffffffffffffffffffff167f50d2f63d0768a218414c666031d609d1b298f9801478a36d0bfcfb6abfd63a6442604051611c59919061418a565b60405180910390a25050565b6060600073ffffffffffffffffffffffffffffffffffffffff16611c88836127c6565b73ffffffffffffffffffffffffffffffffffffffff1603611ce057816040517fb4705b1d000000000000000000000000000000000000000000000000000000008152600401611cd7919061418a565b60405180910390fd5b60116000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611f5b57838290600052602060002090600502016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054611d9c90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611dc890614b38565b8015611e155780601f10611dea57610100808354040283529160200191611e15565b820191906000526020600020905b815481529060010190602001808311611df857829003601f168201915b50505050508152602001600282018054611e2e90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5a90614b38565b8015611ea75780601f10611e7c57610100808354040283529160200191611ea7565b820191906000526020600020905b815481529060010190602001808311611e8a57829003601f168201915b5050505050815260200160038201548152602001600482018054611eca90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef690614b38565b8015611f435780601f10611f1857610100808354040283529160200191611f43565b820191906000526020600020905b815481529060010190602001808311611f2657829003601f168201915b50505050508152505081526020019060010190611d13565b505050509050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7f73e573f9566d61418a34d5de3ff49360f9c51fec37f7486551670290f6285dab612048816122ac565b6120506122c0565b600073ffffffffffffffffffffffffffffffffffffffff16612071846127c6565b73ffffffffffffffffffffffffffffffffffffffff16036120c957826040517fb4705b1d0000000000000000000000000000000000000000000000000000000081526004016120c0919061418a565b60405180910390fd5b816010600085815260200190815260200160002060050190816120ec9190614d15565b503373ffffffffffffffffffffffffffffffffffffffff16837f9e42f2856781bcf1fb57f7d3c7996006ba9b787938e4e75e1dae797508f8119942604051612134919061418a565b60405180910390a3505050565b6000801b61214e816122ac565b600073ffffffffffffffffffffffffffffffffffffffff1661216f836127c6565b73ffffffffffffffffffffffffffffffffffffffff16036121c757816040517fb4705b1d0000000000000000000000000000000000000000000000000000000081526004016121be919061418a565b60405180910390fd5b60006010600084815260200190815260200160002060060160006101000a81548160ff021916908315150217905550817f3bdeaff323d8a86538be50d98331a1bb54d894f118d3e0ae6f116e9f56843fd842604051612226919061418a565b60405180910390a25050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122a557506122a482612dee565b5b9050919050565b6122bd816122b8612490565b612e68565b50565b6122c861123b565b156122ff576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6002600d540361233d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600d81905550565b612361828260405180602001604052806000815250612eb9565b5050565b806006600084815260200190815260200160002090816123859190614d15565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516123b5919061418a565b60405180910390a15050565b6001600d81905550565b6000806123d7836127c6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361244a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612441919061418a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6124a58383836001612edd565b505050565b60006124b6838361196e565b15612592576000600b600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061252f612490565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050612597565b600090505b92915050565b60006125a76122c0565b60006125b2846127c6565b905060006125c18686866130a2565b9050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b156127ba57601160008681526020019081526020016000206040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600b81526020017f7472616e7366657272656400000000000000000000000000000000000000000081525081526020016040518060200160405280600081525081526020014281526020016040518060400160405280601581526020017f4f776e657273686970207472616e736665727265640000000000000000000000815250815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816127809190614d15565b5060408201518160020190816127969190614d15565b506060820151816003015560808201518160040190816127b69190614d15565b5050505b80925050509392505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061280f838361196e565b6128ea576001600b600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612887612490565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506128ef565b600090505b92915050565b6128fd6131bf565b6000600c60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612941612490565b60405161294e91906142ae565b60405180910390a1565b6129606122c0565b6001600c60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586129a4612490565b6040516129b191906142ae565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a2c57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401612a2391906142ae565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612b1d9190613e68565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115612cd4578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401612b899493929190614efb565b6020604051808303816000875af1925050508015612bc557506040513d601f19601f82011682018060405250810190612bc29190614f5c565b60015b612c49573d8060008114612bf5576040519150601f19603f3d011682016040523d82523d6000602084013e612bfa565b606091505b506000815103612c4157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612c3891906142ae565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612cd257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612cc991906142ae565b60405180910390fd5b505b5050505050565b6060612ce6826123cb565b506000600660008481526020019081526020016000208054612d0790614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3390614b38565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b505050505090506000612d916131ff565b90506000815103612da6578192505050612de9565b600082511115612ddb578082604051602001612dc3929190614f89565b60405160208183030381529060405292505050612de9565b612de484613216565b925050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612e615750612e608261327f565b5b9050919050565b612e72828261196e565b612eb55780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612eac929190614fad565b60405180910390fd5b5050565b612ec383836132e0565b612ed8612ece612490565b6000858585612b2a565b505050565b8080612f165750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561304a576000612f26846123cb565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f9157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612fa45750612fa28184611f8a565b155b15612fe657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401612fdd91906142ae565b60405180910390fd5b811561304857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806130b08585856133d9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036130f4576130ef846135f3565b613133565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461313257613131818561363c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131755761317084613727565b6131b4565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146131b3576131b285856137f8565b5b5b809150509392505050565b6131c761123b565b6131fd576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060405180602001604052806000815250905090565b6060613221826123cb565b50600061322c6131ff565b9050600081511161324c5760405180602001604052806000815250613277565b8061325684613883565b604051602001613267929190614f89565b6040516020818303038152906040525b915050919050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806132d957506132d882613951565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133525760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161334991906142ae565b60405180910390fd5b60006133608383600061259d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146133d45760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016133cb91906142ae565b60405180910390fd5b505050565b6000806133e5846127c6565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461342757613426818486613a33565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146134b857613469600085600080612edd565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461353b576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b600061364783611264565b90506000600860008481526020019081526020016000205490506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508282146136f35760008160008581526020019081526020016000205490508082600085815260200190815260200160002081905550826008600083815260200190815260200160002081905550505b6008600085815260200190815260200160002060009055806000848152602001908152602001600020600090555050505050565b6000600160098054905061373b9190614fd6565b90506000600a600084815260200190815260200160002054905060006009838154811061376b5761376a614e77565b5b90600052602060002001549050806009838154811061378d5761378c614e77565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806137dc576137db61500a565b5b6001900381819060005260206000200160009055905550505050565b6000600161380584611264565b61380f9190614fd6565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b60606000600161389284613af7565b01905060008167ffffffffffffffff8111156138b1576138b0613efc565b5b6040519080825280601f01601f1916602001820160405280156138e35781602001600182028036833780820191505090505b509050600082602083010190505b600115613946578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161393a57613939615039565b5b049450600085036138f1575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613a1c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613a2c5750613a2b82613c4a565b5b9050919050565b613a3e838383613cb4565b613af257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613ab357806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401613aaa919061418a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401613ae9929190614e4e565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613b55577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613b4b57613b4a615039565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613b92576d04ee2d6d415b85acef81000000008381613b8857613b87615039565b5b0492506020810190505b662386f26fc100008310613bc157662386f26fc100008381613bb757613bb6615039565b5b0492506010810190505b6305f5e1008310613bea576305f5e1008381613be057613bdf615039565b5b0492506008810190505b6127108310613c0f576127108381613c0557613c04615039565b5b0492506004810190505b60648310613c325760648381613c2857613c27615039565b5b0492506002810190505b600a8310613c41576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613d6c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613d2d5750613d2c8484611f8a565b5b80613d6b57508273ffffffffffffffffffffffffffffffffffffffff16613d5383612453565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6040518060e001604052806060815260200160608152602001606081526020016060815260200160008152602001606081526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613dfd81613dc8565b8114613e0857600080fd5b50565b600081359050613e1a81613df4565b92915050565b600060208284031215613e3657613e35613dbe565b5b6000613e4484828501613e0b565b91505092915050565b60008115159050919050565b613e6281613e4d565b82525050565b6000602082019050613e7d6000830184613e59565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613eae82613e83565b9050919050565b613ebe81613ea3565b8114613ec957600080fd5b50565b600081359050613edb81613eb5565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f3482613eeb565b810181811067ffffffffffffffff82111715613f5357613f52613efc565b5b80604052505050565b6000613f66613db4565b9050613f728282613f2b565b919050565b600067ffffffffffffffff821115613f9257613f91613efc565b5b613f9b82613eeb565b9050602081019050919050565b82818337600083830152505050565b6000613fca613fc584613f77565b613f5c565b905082815260208101848484011115613fe657613fe5613ee6565b5b613ff1848285613fa8565b509392505050565b600082601f83011261400e5761400d613ee1565b5b813561401e848260208601613fb7565b91505092915050565b600080600080600080600060e0888a03121561404657614045613dbe565b5b60006140548a828b01613ecc565b975050602088013567ffffffffffffffff81111561407557614074613dc3565b5b6140818a828b01613ff9565b965050604088013567ffffffffffffffff8111156140a2576140a1613dc3565b5b6140ae8a828b01613ff9565b955050606088013567ffffffffffffffff8111156140cf576140ce613dc3565b5b6140db8a828b01613ff9565b945050608088013567ffffffffffffffff8111156140fc576140fb613dc3565b5b6141088a828b01613ff9565b93505060a088013567ffffffffffffffff81111561412957614128613dc3565b5b6141358a828b01613ff9565b92505060c088013567ffffffffffffffff81111561415657614155613dc3565b5b6141628a828b01613ff9565b91505092959891949750929550565b6000819050919050565b61418481614171565b82525050565b600060208201905061419f600083018461417b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156141df5780820151818401526020810190506141c4565b60008484015250505050565b60006141f6826141a5565b61420081856141b0565b93506142108185602086016141c1565b61421981613eeb565b840191505092915050565b6000602082019050818103600083015261423e81846141eb565b905092915050565b61424f81614171565b811461425a57600080fd5b50565b60008135905061426c81614246565b92915050565b60006020828403121561428857614287613dbe565b5b60006142968482850161425d565b91505092915050565b6142a881613ea3565b82525050565b60006020820190506142c3600083018461429f565b92915050565b600080604083850312156142e0576142df613dbe565b5b60006142ee85828601613ecc565b92505060206142ff8582860161425d565b9150509250929050565b60006020828403121561431f5761431e613dbe565b5b600061432d84828501613ecc565b91505092915050565b60008060006060848603121561434f5761434e613dbe565b5b600061435d86828701613ecc565b935050602061436e86828701613ecc565b925050604061437f8682870161425d565b9150509250925092565b6000819050919050565b61439c81614389565b81146143a757600080fd5b50565b6000813590506143b981614393565b92915050565b6000602082840312156143d5576143d4613dbe565b5b60006143e3848285016143aa565b91505092915050565b6143f581614389565b82525050565b600060208201905061441060008301846143ec565b92915050565b6000806040838503121561442d5761442c613dbe565b5b600061443b858286016143aa565b925050602061444c85828601613ecc565b9150509250929050565b600082825260208201905092915050565b6000614472826141a5565b61447c8185614456565b935061448c8185602086016141c1565b61449581613eeb565b840191505092915050565b6144a981614171565b82525050565b6144b881613e4d565b82525050565b600060e08301600083015184820360008601526144db8282614467565b915050602083015184820360208601526144f58282614467565b9150506040830151848203604086015261450f8282614467565b915050606083015184820360608601526145298282614467565b915050608083015161453e60808601826144a0565b5060a083015184820360a08601526145568282614467565b91505060c083015161456b60c08601826144af565b508091505092915050565b6000602082019050818103600083015261459081846144be565b905092915050565b600080600080608085870312156145b2576145b1613dbe565b5b60006145c08782880161425d565b945050602085013567ffffffffffffffff8111156145e1576145e0613dc3565b5b6145ed87828801613ff9565b935050604085013567ffffffffffffffff81111561460e5761460d613dc3565b5b61461a87828801613ff9565b925050606085013567ffffffffffffffff81111561463b5761463a613dc3565b5b61464787828801613ff9565b91505092959194509250565b61465c81613e4d565b811461466757600080fd5b50565b60008135905061467981614653565b92915050565b6000806040838503121561469657614695613dbe565b5b60006146a485828601613ecc565b92505060206146b58582860161466a565b9150509250929050565b600067ffffffffffffffff8211156146da576146d9613efc565b5b6146e382613eeb565b9050602081019050919050565b60006147036146fe846146bf565b613f5c565b90508281526020810184848401111561471f5761471e613ee6565b5b61472a848285613fa8565b509392505050565b600082601f83011261474757614746613ee1565b5b81356147578482602086016146f0565b91505092915050565b6000806000806080858703121561477a57614779613dbe565b5b600061478887828801613ecc565b945050602061479987828801613ecc565b93505060406147aa8782880161425d565b925050606085013567ffffffffffffffff8111156147cb576147ca613dc3565b5b6147d787828801614732565b91505092959194509250565b6000602082840312156147f9576147f8613dbe565b5b600082013567ffffffffffffffff81111561481757614816613dc3565b5b61482384828501613ff9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61486181613ea3565b82525050565b600060a08301600083015161487f6000860182614858565b50602083015184820360208601526148978282614467565b915050604083015184820360408601526148b18282614467565b91505060608301516148c660608601826144a0565b50608083015184820360808601526148de8282614467565b9150508091505092915050565b60006148f78383614867565b905092915050565b6000602082019050919050565b60006149178261482c565b6149218185614837565b93508360208202850161493385614848565b8060005b8581101561496f578484038952815161495085826148eb565b945061495b836148ff565b925060208a01995050600181019050614937565b50829750879550505050505092915050565b6000602082019050818103600083015261499b818461490c565b905092915050565b600080604083850312156149ba576149b9613dbe565b5b60006149c885828601613ecc565b92505060206149d985828601613ecc565b9150509250929050565b600080604083850312156149fa576149f9613dbe565b5b6000614a088582860161425d565b925050602083013567ffffffffffffffff811115614a2957614a28613dc3565b5b614a3585828601613ff9565b9150509250929050565b600081905092915050565b6000614a55826141a5565b614a5f8185614a3f565b9350614a6f8185602086016141c1565b80840191505092915050565b6000614a878284614a4a565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614acc82614171565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614afe57614afd614a92565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614b5057607f821691505b602082108103614b6357614b62614b09565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614bcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614b8e565b614bd58683614b8e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614c12614c0d614c0884614171565b614bed565b614171565b9050919050565b6000819050919050565b614c2c83614bf7565b614c40614c3882614c19565b848454614b9b565b825550505050565b600090565b614c55614c48565b614c60818484614c23565b505050565b5b81811015614c8457614c79600082614c4d565b600181019050614c66565b5050565b601f821115614cc957614c9a81614b69565b614ca384614b7e565b81016020851015614cb2578190505b614cc6614cbe85614b7e565b830182614c65565b50505b505050565b600082821c905092915050565b6000614cec60001984600802614cce565b1980831691505092915050565b6000614d058383614cdb565b9150826002028217905092915050565b614d1e826141a5565b67ffffffffffffffff811115614d3757614d36613efc565b5b614d418254614b38565b614d4c828285614c88565b600060209050601f831160018114614d7f5760008415614d6d578287015190505b614d778582614cf9565b865550614ddf565b601f198416614d8d86614b69565b60005b82811015614db557848901518255600182019150602085019450602081019050614d90565b86831015614dd25784890151614dce601f891682614cdb565b8355505b6001600288020188555050505b505050505050565b60006040820190508181036000830152614e0181856141eb565b9050614e10602083018461417b565b9392505050565b6000606082019050614e2c600083018661429f565b614e39602083018561417b565b614e46604083018461429f565b949350505050565b6000604082019050614e63600083018561429f565b614e70602083018461417b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000614ecd82614ea6565b614ed78185614eb1565b9350614ee78185602086016141c1565b614ef081613eeb565b840191505092915050565b6000608082019050614f10600083018761429f565b614f1d602083018661429f565b614f2a604083018561417b565b8181036060830152614f3c8184614ec2565b905095945050505050565b600081519050614f5681613df4565b92915050565b600060208284031215614f7257614f71613dbe565b5b6000614f8084828501614f47565b91505092915050565b6000614f958285614a4a565b9150614fa18284614a4a565b91508190509392505050565b6000604082019050614fc2600083018561429f565b614fcf60208301846143ec565b9392505050565b6000614fe182614171565b9150614fec83614171565b925082820390508181111561500457615003614a92565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe50726f64756374206d616e75666163747572656420616e642072656769737465726564a264697066735822122099658bdf87aefefdcec277133494b9e0fbf1a99c978add2fcae8272f99dc85b664736f6c634300081c0033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.