ETH Price: $2,456.71 (-2.29%)

Contract

0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove Liquidity256694362026-08-02 19:56:5933 days ago1785700619IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00003410.22842219
Remove Liquidity240393642025-12-18 12:03:11260 days ago1766059391IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000003930.0297466
Remove Liquidity229763622025-07-22 17:59:47409 days ago1753207187IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00039953.53055954
Remove Liquidity227838542025-06-25 20:31:11435 days ago1750883471IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000049041.64646338
Remove Liquidity227838282025-06-25 20:25:47435 days ago1750883147IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000049631.66484729
Remove Liquidity227838172025-06-25 20:23:35435 days ago1750883015IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000053011.77969108
Remove Liquidity223451962025-04-25 9:39:35497 days ago1745573975IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000122450.96006179
Remove Liquidity222833142025-04-16 18:21:23506 days ago1744827683IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000130221.02091661
Remove Liquidity222305972025-04-09 9:57:11513 days ago1744192631IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00014841.00209882
Remove Liquidity222305662025-04-09 9:50:59513 days ago1744192259IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00001970.5594449
Remove Liquidity222305422025-04-09 9:46:11513 days ago1744191971IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000015870.53237539
Remove Liquidity222305302025-04-09 9:43:47513 days ago1744191827IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000016680.55921835
Remove Liquidity222127342025-04-06 22:05:23515 days ago1743977123IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000539633.97316672
Remove Liquidity219468562025-02-28 19:12:11553 days ago1740769931IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000164281.38603231
Remove Liquidity219468502025-02-28 19:10:59553 days ago1740769859IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000165111.3930825
Remove Liquidity219468462025-02-28 19:10:11553 days ago1740769811IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00015751.32895576
Remove Liquidity219468392025-02-28 19:08:47553 days ago1740769727IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000148071.2494186
Remove Liquidity219468352025-02-28 19:07:59553 days ago1740769679IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000147971.24853573
Remove Liquidity219468242025-02-28 19:05:47553 days ago1740769547IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000155661.3134918
Remove Liquidity219468132025-02-28 19:03:35553 days ago1740769415IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000157951.33274804
Remove Liquidity219467972025-02-28 19:00:23553 days ago1740769223IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.00020851.36545039
Remove Liquidity219454472025-02-28 14:29:47553 days ago1740752987IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000099013.32542002
Remove Liquidity219454322025-02-28 14:26:47553 days ago1740752807IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000095593.20675911
Remove Liquidity219446812025-02-28 11:56:11553 days ago1740743771IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000042771.44486767
Remove Liquidity219446742025-02-28 11:54:35553 days ago1740743675IN
0x8A5058100E60e8F7C42305eb505B12785bbA3BcA
0 ETH0.000038861.28728146
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

TempleFraxAMMRouter

Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled
Yes with 999999 runs
Other Settings
default 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":[{"internalType":"contract IUniswapV2Pair","name":"_pair","type":"address"},{"internalType":"contract TempleERC20Token","name":"_templeToken","type":"address"},{"internalType":"contract IERC20","name":"_fraxToken","type":"address"},{"internalType":"contract ITempleTreasury","name":"_templeTreasury","type":"address"},{"internalType":"address","name":"_protocolMintEarningsAccount","type":"address"},{"components":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"internalType":"struct TempleFraxAMMRouter.Price","name":"_dynamicThresholdPrice","type":"tuple"},{"internalType":"uint256","name":"_dynamicThresholdDecayPerBlock","type":"uint256"},{"components":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"internalType":"struct TempleFraxAMMRouter.Price","name":"_interpolateFromPrice","type":"tuple"},{"components":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"internalType":"struct TempleFraxAMMRouter.Price","name":"_interpolateToPrice","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"currDynamicThresholdTemple","type":"uint256"}],"name":"DynamicThresholdChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"PriceCrossedBelowDynamicThreshold","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"},{"inputs":[],"name":"CAN_ADD_ALLOWED_USER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DYNAMIC_THRESHOLD_INCREASE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"addAllowedUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dynamicThresholdDecayPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dynamicThresholdIncreasePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dynamicThresholdPrice","outputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dynamicThresholdPriceWithDecay","outputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fraxToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"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":[],"name":"interpolateFromPrice","outputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interpolateToPrice","outputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"temple","type":"uint256"},{"internalType":"uint256","name":"frax","type":"uint256"}],"name":"mintRatioAt","outputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openAccessEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceCrossedBelowDynamicThresholdBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"removeAllowedUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dynamicThresholdDecayPerBlock","type":"uint256"}],"name":"setDynamicThresholdDecayPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dynamicThresholdIncreasePct","type":"uint256"}],"name":"setDynamicThresholdIncreasePct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"name":"setInterpolateFromPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frax","type":"uint256"},{"internalType":"uint256","name":"temple","type":"uint256"}],"name":"setInterpolateToPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_protocolMintEarningsAccount","type":"address"}],"name":"setProtocolMintEarningsAccount","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":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactFraxForTemple","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"swapExactFraxForTempleQuote","outputs":[{"internalType":"uint256","name":"amountInAMM","type":"uint256"},{"internalType":"uint256","name":"amountInProtocol","type":"uint256"},{"internalType":"uint256","name":"amountOutAMM","type":"uint256"},{"internalType":"uint256","name":"amountOutProtocol","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTempleForFrax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"swapExactTempleForFraxQuote","outputs":[{"internalType":"bool","name":"priceBelowIV","type":"bool"},{"internalType":"bool","name":"willCrossDynamicThreshold","type":"bool"},{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"templeToken","outputs":[{"internalType":"contract TempleERC20Token","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"templeTreasury","outputs":[{"internalType":"contract ITempleTreasury","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleOpenAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
610100604052612710600755600d805460ff191690553480156200002257600080fd5b5060405162003d4038038062003d40833981016040819052620000459162000238565b6200005033620000f5565b6001600160601b031960608a811b821660805289811b821660a05288811b821660c05287901b1660e052600280546001600160a01b0387166001600160a01b0319909116179055835160035560208085015160045560058490558251600855828101516009558151600a55810151600b5560006006819055620000e690620000e06000546001600160a01b031690565b62000145565b50505050505050505062000314565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000151828262000155565b5050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16620001515760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600060408284031215620001ef578081fd5b604080519081016001600160401b03811182821017156200021e57634e487b7160e01b83526041600452602483fd5b604052825181526020928301519281019290925250919050565b60008060008060008060008060006101808a8c03121562000257578485fd5b89516200026481620002fb565b60208b01519099506200027781620002fb565b60408b01519098506200028a81620002fb565b60608b01519097506200029d81620002fb565b60808b0151909650620002b081620002fb565b9450620002c18b60a08c01620001dd565b935060e08a01519250620002da8b6101008c01620001dd565b9150620002ec8b6101408c01620001dd565b90509295985092959850929598565b6001600160a01b03811681146200031157600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c613945620003fb600039600081816103cb01526116e701526000818161055701528181610cbe01528181611af301528181611c0001526122b501526000818161060e01528181610c4801528181610dca01528181611c8a015261226901526000818161059101528181610dec01528181610e5d015281816110e30152818161162101528181611b1501528181611b8601528181611ceb0152818161228b015281816122d70152818161234101528181612485015281816124a7015281816125110152612be701526139456000f3fe608060405234801561001057600080fd5b50600436106102e95760003560e01c8063a217fddf11610191578063d547741f116100e3578063def72f9911610097578063f058aa2611610071578063f058aa2614610706578063f2fde38b14610714578063f75ec13a1461072757600080fd5b8063def72f99146106de578063ec85f825146106eb578063ed856cdc146106f357600080fd5b8063d86aefcc116100c8578063d86aefcc14610694578063d9caed121461069d578063ded998b9146106b057600080fd5b8063d547741f1461065e578063d63a8e111461067157600080fd5b8063aff7041711610145578063bb32e19b1161011f578063bb32e19b14610630578063cafd890414610643578063d26e3dc61461065657600080fd5b8063aff70417146105c6578063b1496127146105f6578063b1a9069c1461060957600080fd5b8063a76db3be11610176578063a76db3be14610579578063a8aa1b311461058c578063ad615dec146105b357600080fd5b8063a217fddf1461054a578063a45b686a1461055257600080fd5b806336568abe1161024a5780637c7b8c9e116101fe57806391d14854116101d857806391d14854146104de5780639a53afc7146105245780639ed074ce1461053757600080fd5b80637c7b8c9e1461048f57806382c70fab146104b25780638da5cb5b146104c057600080fd5b806341f527e01161022f57806341f527e01461044b578063715018a61461047e5780637889f0f41461048657600080fd5b806336568abe146104255780634181b7171461043857600080fd5b806321b384ed116102a1578063248a9ca311610286578063248a9ca3146103a257806328fef2a1146103c65780632f2ff15d1461041257600080fd5b806321b384ed1461037c578063226d1bec1461038f57600080fd5b8063071aaf44116102d2578063071aaf44146103375780630ebacf9b14610340578063171ce8111461035557600080fd5b806301ffc9a7146102ee578063054d50d414610316575b600080fd5b6103016102fc3660046134b4565b610730565b60405190151581526020015b60405180910390f35b6103296103243660046135da565b6107c9565b60405190815260200161030d565b61032960055481565b61035361034e36600461355a565b610949565b005b6103297ff96bae682d44fa45ba8545a070ebfbdee09d52913460f4e517411bd1c356364581565b61035361038a3660046133fc565b6109d5565b61032961039d36600461359e565b610a50565b6103296103b0366004613471565b6000908152600160208190526040909120015490565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b610353610420366004613489565b610ed5565b610353610433366004613489565b610f01565b610353610446366004613471565b610fb4565b61045e610459366004613471565b6110d8565b60408051948552602085019390935291830152606082015260800161030d565b610353611266565b61032960075481565b60085460095461049d919082565b6040805192835260208301919091520161030d565b60035460045461049d919082565b60005473ffffffffffffffffffffffffffffffffffffffff166103ed565b6103016104ec366004613489565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61035361053236600461355a565b6112f3565b610353610545366004613471565b61137f565b610329600081565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103536105873660046133fc565b611405565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103296105c13660046135da565b6114cd565b6105d96105d4366004613471565b611617565b60408051931515845291151560208401529082015260600161030d565b61049d61060436600461355a565b611845565b6103ed7f000000000000000000000000000000000000000000000000000000000000000081565b61032961063e36600461359e565b61191a565b6103536106513660046133fc565b611e48565b610353611f15565b61035361066c366004613489565b611fc8565b61030161067f3660046133fc565b600c6020526000908152604090205460ff1681565b61032960065481565b6103536106ab366004613416565b611fef565b6106c36106be36600461364b565b6121e3565b6040805193845260208401929092529082015260600161030d565b600d546103019060ff1681565b61049d6123cc565b61049d610701366004613605565b612412565b600a54600b5461049d919082565b6103536107223660046133fc565b6126bc565b61032961271081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806107c357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600080841161085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960448201527f4e5055545f414d4f554e5400000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008311801561086f5750600082115b6108fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f49515549444954590000000000000000000000000000000000000000000000006064820152608401610856565b6000610909856103e361382b565b90506000610917848361382b565b9050600082610928876103e861382b565b61093291906137da565b905061093e81836137f2565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600a91909155600b55565b7ff96bae682d44fa45ba8545a070ebfbdee09d52913460f4e517411bd1c3563645610a0081336127ec565b5073ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008142811015610abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b336000908152600c602052604090205460ff1680610add5750600d5460ff165b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f526f757465722069736e2774206f70656e2061636365737320616e642063616c60448201527f6c65722069736e277420696e2074686520616c6c6f776564206c6973740000006064820152608401610856565b6000806000610b7789611617565b9250925092508215610ce95787811015610c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018a90527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b50505050610ce47f000000000000000000000000000000000000000000000000000000000000000088836128be565b610ec9565b818015610cf65750600654155b15610d35574360068190556040519081527fc0bcadfbf21856eee74579359d1273ced3b576fcf7a0f59a444b2c7525bf42929060200160405180910390a15b87811015610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b610e117f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000008c612992565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000090925273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163022c0d9f91610e96919085908c9060248101613782565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050505b98975050505050505050565b60008281526001602081905260409091200154610ef281336127ec565b610efc83836129f0565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610856565b610fb08282612aaf565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b60008111801561104757506127108111155b6110d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f496e63726561736520697320612070637420726570726573656e74656420617360448201527f20616e20696e7465676572206265747765656e203020616e64203130300000006064820152608401610856565b600755565b6000806000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f91906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000806111af6123cc565b90925090506111be848361382b565b6111c8848361382b565b106111f9576000806111da8686611845565b9092509050806111ea838d61382b565b6111f491906137f2565b985050505b611203878a613868565b975060009550871561121d5761121a8884866107c9565b95505b6000945087156112435787611232878961382b565b61123c91906137f2565b945061125b565b8261124e858961382b565b61125891906137f2565b94505b505050509193509193565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b6112f16000612b6a565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600891909155600955565b60005473ffffffffffffffffffffffffffffffffffffffff163314611400576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600555565b60005473ffffffffffffffffffffffffffffffffffffffff163314611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080841161155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4160448201527f4d4f554e540000000000000000000000000000000000000000000000000000006064820152608401610856565b60008311801561156e5750600082115b6115fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f49515549444954590000000000000000000000000000000000000000000000006064820152608401610856565b82611605838661382b565b61160f91906137f2565b949350505050565b60008060008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561168557600080fd5b505afa158015611699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bd91906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a340bae26040518163ffffffff1660e01b8152600401604080518083038186803b15801561174a57600080fd5b505afa15801561175e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611782919061357b565b9092509050611791828561382b565b61179b848361382b565b11801597506117c057806117af838a61382b565b6117b991906137f2565b94506117ce565b6117cb8885856107c9565b94505b8661183a576000806117de6123cc565b909250905060006117ef878461382b565b6117f9878461382b565b11905060006118088c896137da565b611812908561382b565b61181c8a89613868565b611826908561382b565b1090508180156118335750805b9950505050505b505050509193909250565b600954600854600b54600a5460009384938793879386611865858761382b565b90506000611873888661382b565b9050818111156118925760006001995099505050505050505050611913565b8361189d8284613868565b6118a7919061382b565b9950876118b4858761382b565b6118be888661382b565b6118c89190613868565b6118d2919061382b565b9850886103206118e48c6103e861382b565b6118ee91906137f2565b1061190a576103206103e8995099505050505050505050611913565b50505050505050505b9250929050565b60008142811015611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b336000908152600c602052604090205460ff16806119a75750600d5460ff165b611a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f526f757465722069736e2774206f70656e2061636365737320616e642063616c60448201527f6c65722069736e277420696e2074686520616c6c6f776564206c6973740000006064820152608401610856565b600080600080611a428a6110d8565b93509350935093508082611a5691906137da565b955088861015611ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b8315611bf157611b3a7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087612992565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000090925273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163022c0d9f91611bbe9186918d9060248101613782565b600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505050505b8215611e3b57600254611c3e907f000000000000000000000000000000000000000000000000000000000000000090339073ffffffffffffffffffffffffffffffffffffffff1686612992565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015611cce57600080fd5b505af1158015611ce2573d6000803e3d6000fd5b505050506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611d4f57600080fd5b505afa158015611d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8791906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600060075482611dbc919061382b565b60035461271090611dcd908661382b565b611dd7919061382b565b611de191906137f2565b90506000611ded6123cc565b91505080821015611e3657600482905560006006556040518281527f70d0681911f386295b28e27990c26ccb11e04e8ded74bebef9c31531c71a46ad9060200160405180910390a15b505050505b5050505050949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b60008281526001602081905260409091200154611fe581336127ec565b610efc8383612aaf565b60005473ffffffffffffffffffffffffffffffffffffffff163314612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff82166120ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f746f2061646472657373207a65726f00000000000000000000000000000000006044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff83166121d85760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612162576040519150601f19603f3d011682016040523d82523d6000602084013e612167565b606091505b50509050806121d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f73656e64206661696c65640000000000000000000000000000000000000000006044820152606401610856565b50505050565b610efc8383836128be565b60008060008342811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b61225f8a8a8a8a612bdf565b90945092506122b07f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087612992565b6122fc7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000086612992565b6040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636a62784290602401602060405180830381600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bd9190613542565b91505096509650969350505050565b60008060008060065411156123f8576005546006546123eb9043613868565b6123f5919061382b565b90505b6003546004546124099083906137da565b92509250509091565b6000808242811015612480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b6124cc7f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000008b612992565b6040517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f000000000000000000000000000000000000000000000000000000000000000016906389afcb44906024016040805180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258c919061357b565b909350915086831015612621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f54454d504c450000000000000000000000000000000000000000000000006064820152608401610856565b858210156126b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4652415800000000000000000000000000000000000000000000000000006064820152608401610856565b509550959350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461273d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff81166127e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610856565b6127e981612b6a565b50565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fb0576128448173ffffffffffffffffffffffffffffffffffffffff166014612e60565b61284f836020612e60565b604051602001612860929190613701565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610856916004016137c7565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610efc9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261316d565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526121d29085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401612910565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fb057600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610fb057600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612c4b57600080fd5b505afa158015612c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8391906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150816000148015612cb6575080155b15612cc657879350869250612e55565b6000612cd38984846114cd565b9050878111612d775785811015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4652415800000000000000000000000000000000000000000000000000006064820152608401610856565b889450925082612e53565b6000612d848984866114cd565b905089811115612dbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b87811015612e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f54454d504c450000000000000000000000000000000000000000000000006064820152608401610856565b94508793505b505b505094509492505050565b60606000612e6f83600261382b565b612e7a9060026137da565b67ffffffffffffffff811115612eb9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612ee3576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612f41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612fcb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061300784600261382b565b6130129060016137da565b90505b60018111156130fd577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061307a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b8282815181106130b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936130f6816138ab565b9050613015565b508315613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610856565b9392505050565b60006131cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166132799092919063ffffffff16565b805190915015610efc57808060200190518101906131ed9190613451565b610efc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610856565b606061160f848460008585843b6132ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610856565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161331591906136e5565b60006040518083038185875af1925050503d8060008114613352576040519150601f19603f3d011682016040523d82523d6000602084013e613357565b606091505b509150915061093e82828660608315613371575081613166565b8251156133815782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085691906137c7565b803573ffffffffffffffffffffffffffffffffffffffff811681146133d957600080fd5b919050565b80516dffffffffffffffffffffffffffff811681146133d957600080fd5b60006020828403121561340d578081fd5b613166826133b5565b60008060006060848603121561342a578182fd5b613433846133b5565b9250613441602085016133b5565b9150604084013590509250925092565b600060208284031215613462578081fd5b81518015158114613166578182fd5b600060208284031215613482578081fd5b5035919050565b6000806040838503121561349b578182fd5b823591506134ab602084016133b5565b90509250929050565b6000602082840312156134c5578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613166578182fd5b600080600060608486031215613508578283fd5b613511846133de565b925061351f602085016133de565b9150604084015163ffffffff81168114613537578182fd5b809150509250925092565b600060208284031215613553578081fd5b5051919050565b6000806040838503121561356c578182fd5b50508035926020909101359150565b6000806040838503121561358d578182fd5b505080516020909101519092909150565b600080600080608085870312156135b3578081fd5b84359350602085013592506135ca604086016133b5565b9396929550929360600135925050565b6000806000606084860312156135ee578283fd5b505081359360208301359350604090920135919050565b600080600080600060a0868803121561361c578081fd5b85359450602086013593506040860135925061363a606087016133b5565b949793965091946080013592915050565b60008060008060008060c08789031215613663578384fd5b86359550602087013594506040870135935060608701359250613688608088016133b5565b915060a087013590509295509295509295565b600081518084526136b381602086016020860161387f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516136f781846020870161387f565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161373981601785016020880161387f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161377681602884016020880161387f565b01602801949350505050565b84815283602082015273ffffffffffffffffffffffffffffffffffffffff831660408201526080606082015260006137bd608083018461369b565b9695505050505050565b602081526000613166602083018461369b565b600082198211156137ed576137ed6138e0565b500190565b600082613826577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613863576138636138e0565b500290565b60008282101561387a5761387a6138e0565b500390565b60005b8381101561389a578181015183820152602001613882565b838111156121d25750506000910152565b6000816138ba576138ba6138e0565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220af783a334e16810f7dc451d97520315bad2e76e3aceb755b0df76bb12245bb6664736f6c634300080400330000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b7000000000000000000000000853d955acef822db058eb8505911ed77f175b99e00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44300000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44300000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000003e47c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000001388
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102e95760003560e01c8063a217fddf11610191578063d547741f116100e3578063def72f9911610097578063f058aa2611610071578063f058aa2614610706578063f2fde38b14610714578063f75ec13a1461072757600080fd5b8063def72f99146106de578063ec85f825146106eb578063ed856cdc146106f357600080fd5b8063d86aefcc116100c8578063d86aefcc14610694578063d9caed121461069d578063ded998b9146106b057600080fd5b8063d547741f1461065e578063d63a8e111461067157600080fd5b8063aff7041711610145578063bb32e19b1161011f578063bb32e19b14610630578063cafd890414610643578063d26e3dc61461065657600080fd5b8063aff70417146105c6578063b1496127146105f6578063b1a9069c1461060957600080fd5b8063a76db3be11610176578063a76db3be14610579578063a8aa1b311461058c578063ad615dec146105b357600080fd5b8063a217fddf1461054a578063a45b686a1461055257600080fd5b806336568abe1161024a5780637c7b8c9e116101fe57806391d14854116101d857806391d14854146104de5780639a53afc7146105245780639ed074ce1461053757600080fd5b80637c7b8c9e1461048f57806382c70fab146104b25780638da5cb5b146104c057600080fd5b806341f527e01161022f57806341f527e01461044b578063715018a61461047e5780637889f0f41461048657600080fd5b806336568abe146104255780634181b7171461043857600080fd5b806321b384ed116102a1578063248a9ca311610286578063248a9ca3146103a257806328fef2a1146103c65780632f2ff15d1461041257600080fd5b806321b384ed1461037c578063226d1bec1461038f57600080fd5b8063071aaf44116102d2578063071aaf44146103375780630ebacf9b14610340578063171ce8111461035557600080fd5b806301ffc9a7146102ee578063054d50d414610316575b600080fd5b6103016102fc3660046134b4565b610730565b60405190151581526020015b60405180910390f35b6103296103243660046135da565b6107c9565b60405190815260200161030d565b61032960055481565b61035361034e36600461355a565b610949565b005b6103297ff96bae682d44fa45ba8545a070ebfbdee09d52913460f4e517411bd1c356364581565b61035361038a3660046133fc565b6109d5565b61032961039d36600461359e565b610a50565b6103296103b0366004613471565b6000908152600160208190526040909120015490565b6103ed7f00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44381565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b610353610420366004613489565b610ed5565b610353610433366004613489565b610f01565b610353610446366004613471565b610fb4565b61045e610459366004613471565b6110d8565b60408051948552602085019390935291830152606082015260800161030d565b610353611266565b61032960075481565b60085460095461049d919082565b6040805192835260208301919091520161030d565b60035460045461049d919082565b60005473ffffffffffffffffffffffffffffffffffffffff166103ed565b6103016104ec366004613489565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61035361053236600461355a565b6112f3565b610353610545366004613471565b61137f565b610329600081565b6103ed7f000000000000000000000000853d955acef822db058eb8505911ed77f175b99e81565b6103536105873660046133fc565b611405565b6103ed7f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0381565b6103296105c13660046135da565b6114cd565b6105d96105d4366004613471565b611617565b60408051931515845291151560208401529082015260600161030d565b61049d61060436600461355a565b611845565b6103ed7f000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b781565b61032961063e36600461359e565b61191a565b6103536106513660046133fc565b611e48565b610353611f15565b61035361066c366004613489565b611fc8565b61030161067f3660046133fc565b600c6020526000908152604090205460ff1681565b61032960065481565b6103536106ab366004613416565b611fef565b6106c36106be36600461364b565b6121e3565b6040805193845260208401929092529082015260600161030d565b600d546103019060ff1681565b61049d6123cc565b61049d610701366004613605565b612412565b600a54600b5461049d919082565b6103536107223660046133fc565b6126bc565b61032961271081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806107c357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600080841161085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960448201527f4e5055545f414d4f554e5400000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008311801561086f5750600082115b6108fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f49515549444954590000000000000000000000000000000000000000000000006064820152608401610856565b6000610909856103e361382b565b90506000610917848361382b565b9050600082610928876103e861382b565b61093291906137da565b905061093e81836137f2565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600a91909155600b55565b7ff96bae682d44fa45ba8545a070ebfbdee09d52913460f4e517411bd1c3563645610a0081336127ec565b5073ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008142811015610abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b336000908152600c602052604090205460ff1680610add5750600d5460ff165b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f526f757465722069736e2774206f70656e2061636365737320616e642063616c60448201527f6c65722069736e277420696e2074686520616c6c6f776564206c6973740000006064820152608401610856565b6000806000610b7789611617565b9250925092508215610ce95787811015610c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018a90527f000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b773ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b50505050610ce47f000000000000000000000000853d955acef822db058eb8505911ed77f175b99e88836128be565b610ec9565b818015610cf65750600654155b15610d35574360068190556040519081527fc0bcadfbf21856eee74579359d1273ced3b576fcf7a0f59a444b2c7525bf42929060200160405180910390a15b87811015610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b610e117f000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b7337f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc038c612992565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000090925273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03169163022c0d9f91610e96919085908c9060248101613782565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050505b98975050505050505050565b60008281526001602081905260409091200154610ef281336127ec565b610efc83836129f0565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610856565b610fb08282612aaf565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b60008111801561104757506127108111155b6110d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f496e63726561736520697320612070637420726570726573656e74656420617360448201527f20616e20696e7465676572206265747765656e203020616e64203130300000006064820152608401610856565b600755565b6000806000806000807f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f91906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000806111af6123cc565b90925090506111be848361382b565b6111c8848361382b565b106111f9576000806111da8686611845565b9092509050806111ea838d61382b565b6111f491906137f2565b985050505b611203878a613868565b975060009550871561121d5761121a8884866107c9565b95505b6000945087156112435787611232878961382b565b61123c91906137f2565b945061125b565b8261124e858961382b565b61125891906137f2565b94505b505050509193509193565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b6112f16000612b6a565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600891909155600955565b60005473ffffffffffffffffffffffffffffffffffffffff163314611400576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600555565b60005473ffffffffffffffffffffffffffffffffffffffff163314611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080841161155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4160448201527f4d4f554e540000000000000000000000000000000000000000000000000000006064820152608401610856565b60008311801561156e5750600082115b6115fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f49515549444954590000000000000000000000000000000000000000000000006064820152608401610856565b82611605838661382b565b61160f91906137f2565b949350505050565b60008060008060007f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561168557600080fd5b505afa158015611699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bd91906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000807f00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44373ffffffffffffffffffffffffffffffffffffffff1663a340bae26040518163ffffffff1660e01b8152600401604080518083038186803b15801561174a57600080fd5b505afa15801561175e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611782919061357b565b9092509050611791828561382b565b61179b848361382b565b11801597506117c057806117af838a61382b565b6117b991906137f2565b94506117ce565b6117cb8885856107c9565b94505b8661183a576000806117de6123cc565b909250905060006117ef878461382b565b6117f9878461382b565b11905060006118088c896137da565b611812908561382b565b61181c8a89613868565b611826908561382b565b1090508180156118335750805b9950505050505b505050509193909250565b600954600854600b54600a5460009384938793879386611865858761382b565b90506000611873888661382b565b9050818111156118925760006001995099505050505050505050611913565b8361189d8284613868565b6118a7919061382b565b9950876118b4858761382b565b6118be888661382b565b6118c89190613868565b6118d2919061382b565b9850886103206118e48c6103e861382b565b6118ee91906137f2565b1061190a576103206103e8995099505050505050505050611913565b50505050505050505b9250929050565b60008142811015611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b336000908152600c602052604090205460ff16806119a75750600d5460ff165b611a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f526f757465722069736e2774206f70656e2061636365737320616e642063616c60448201527f6c65722069736e277420696e2074686520616c6c6f776564206c6973740000006064820152608401610856565b600080600080611a428a6110d8565b93509350935093508082611a5691906137da565b955088861015611ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4f55545055545f414d4f554e5400000000000000000000000000000000006064820152608401610856565b8315611bf157611b3a7f000000000000000000000000853d955acef822db058eb8505911ed77f175b99e337f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0387612992565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000090925273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03169163022c0d9f91611bbe9186918d9060248101613782565b600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505050505b8215611e3b57600254611c3e907f000000000000000000000000853d955acef822db058eb8505911ed77f175b99e90339073ffffffffffffffffffffffffffffffffffffffff1686612992565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018390527f000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b716906340c10f1990604401600060405180830381600087803b158015611cce57600080fd5b505af1158015611ce2573d6000803e3d6000fd5b505050506000807f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611d4f57600080fd5b505afa158015611d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8791906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600060075482611dbc919061382b565b60035461271090611dcd908661382b565b611dd7919061382b565b611de191906137f2565b90506000611ded6123cc565b91505080821015611e3657600482905560006006556040518281527f70d0681911f386295b28e27990c26ccb11e04e8ded74bebef9c31531c71a46ad9060200160405180910390a15b505050505b5050505050949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611f96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b60008281526001602081905260409091200154611fe581336127ec565b610efc8383612aaf565b60005473ffffffffffffffffffffffffffffffffffffffff163314612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff82166120ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f746f2061646472657373207a65726f00000000000000000000000000000000006044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff83166121d85760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612162576040519150601f19603f3d011682016040523d82523d6000602084013e612167565b606091505b50509050806121d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f73656e64206661696c65640000000000000000000000000000000000000000006044820152606401610856565b50505050565b610efc8383836128be565b60008060008342811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b61225f8a8a8a8a612bdf565b90945092506122b07f000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b7337f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0387612992565b6122fc7f000000000000000000000000853d955acef822db058eb8505911ed77f175b99e337f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0386612992565b6040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301527f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc031690636a62784290602401602060405180830381600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bd9190613542565b91505096509650969350505050565b60008060008060065411156123f8576005546006546123eb9043613868565b6123f5919061382b565b90505b6003546004546124099083906137da565b92509250509091565b6000808242811015612480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54656d706c6546726178414d4d526f757465723a2045585049524544000000006044820152606401610856565b6124cc7f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03337f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc038b612992565b6040517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0316906389afcb44906024016040805180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258c919061357b565b909350915086831015612621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f54454d504c450000000000000000000000000000000000000000000000006064820152608401610856565b858210156126b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4652415800000000000000000000000000000000000000000000000000006064820152608401610856565b509550959350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461273d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610856565b73ffffffffffffffffffffffffffffffffffffffff81166127e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610856565b6127e981612b6a565b50565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fb0576128448173ffffffffffffffffffffffffffffffffffffffff166014612e60565b61284f836020612e60565b604051602001612860929190613701565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610856916004016137c7565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610efc9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261316d565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526121d29085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401612910565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fb057600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610fb057600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000807f0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc0373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612c4b57600080fd5b505afa158015612c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8391906134f4565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150816000148015612cb6575080155b15612cc657879350869250612e55565b6000612cd38984846114cd565b9050878111612d775785811015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f4652415800000000000000000000000000000000000000000000000000006064820152608401610856565b889450925082612e53565b6000612d848984866114cd565b905089811115612dbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b87811015612e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f54656d706c6546726178414d4d526f757465723a20494e53554646494349454e60448201527f545f54454d504c450000000000000000000000000000000000000000000000006064820152608401610856565b94508793505b505b505094509492505050565b60606000612e6f83600261382b565b612e7a9060026137da565b67ffffffffffffffff811115612eb9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612ee3576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612f41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612fcb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061300784600261382b565b6130129060016137da565b90505b60018111156130fd577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061307a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b8282815181106130b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936130f6816138ab565b9050613015565b508315613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610856565b9392505050565b60006131cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166132799092919063ffffffff16565b805190915015610efc57808060200190518101906131ed9190613451565b610efc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610856565b606061160f848460008585843b6132ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610856565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161331591906136e5565b60006040518083038185875af1925050503d8060008114613352576040519150601f19603f3d011682016040523d82523d6000602084013e613357565b606091505b509150915061093e82828660608315613371575081613166565b8251156133815782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085691906137c7565b803573ffffffffffffffffffffffffffffffffffffffff811681146133d957600080fd5b919050565b80516dffffffffffffffffffffffffffff811681146133d957600080fd5b60006020828403121561340d578081fd5b613166826133b5565b60008060006060848603121561342a578182fd5b613433846133b5565b9250613441602085016133b5565b9150604084013590509250925092565b600060208284031215613462578081fd5b81518015158114613166578182fd5b600060208284031215613482578081fd5b5035919050565b6000806040838503121561349b578182fd5b823591506134ab602084016133b5565b90509250929050565b6000602082840312156134c5578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613166578182fd5b600080600060608486031215613508578283fd5b613511846133de565b925061351f602085016133de565b9150604084015163ffffffff81168114613537578182fd5b809150509250925092565b600060208284031215613553578081fd5b5051919050565b6000806040838503121561356c578182fd5b50508035926020909101359150565b6000806040838503121561358d578182fd5b505080516020909101519092909150565b600080600080608085870312156135b3578081fd5b84359350602085013592506135ca604086016133b5565b9396929550929360600135925050565b6000806000606084860312156135ee578283fd5b505081359360208301359350604090920135919050565b600080600080600060a0868803121561361c578081fd5b85359450602086013593506040860135925061363a606087016133b5565b949793965091946080013592915050565b60008060008060008060c08789031215613663578384fd5b86359550602087013594506040870135935060608701359250613688608088016133b5565b915060a087013590509295509295509295565b600081518084526136b381602086016020860161387f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516136f781846020870161387f565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161373981601785016020880161387f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161377681602884016020880161387f565b01602801949350505050565b84815283602082015273ffffffffffffffffffffffffffffffffffffffff831660408201526080606082015260006137bd608083018461369b565b9695505050505050565b602081526000613166602083018461369b565b600082198211156137ed576137ed6138e0565b500190565b600082613826577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613863576138636138e0565b500290565b60008282101561387a5761387a6138e0565b500390565b60005b8381101561389a578181015183820152602001613882565b838111156121d25750506000910152565b6000816138ba576138ba6138e0565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220af783a334e16810f7dc451d97520315bad2e76e3aceb755b0df76bb12245bb6664736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b7000000000000000000000000853d955acef822db058eb8505911ed77f175b99e00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44300000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e44300000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000003e47c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000001388

-----Decoded View---------------
Arg [0] : _pair (address): 0x6021444f1706f15465bEe85463BCc7d7cC17Fc03
Arg [1] : _templeToken (address): 0x470EBf5f030Ed85Fc1ed4C2d36B9DD02e77CF1b7
Arg [2] : _fraxToken (address): 0x853d955aCEf822Db058eb8505911ED77F175b99e
Arg [3] : _templeTreasury (address): 0x22c2fE05f55F81Bf32310acD9a7C51c4d7b4e443
Arg [4] : _protocolMintEarningsAccount (address): 0x22c2fE05f55F81Bf32310acD9a7C51c4d7b4e443
Arg [5] : _dynamicThresholdPrice (tuple):
Arg [1] : frax (uint256): 1000000
Arg [2] : temple (uint256): 255100

Arg [6] : _dynamicThresholdDecayPerBlock (uint256): 2
Arg [7] : _interpolateFromPrice (tuple):
Arg [1] : frax (uint256): 100000
Arg [2] : temple (uint256): 50000

Arg [8] : _interpolateToPrice (tuple):
Arg [1] : frax (uint256): 100000
Arg [2] : temple (uint256): 5000


-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000006021444f1706f15465bee85463bcc7d7cc17fc03
Arg [1] : 000000000000000000000000470ebf5f030ed85fc1ed4c2d36b9dd02e77cf1b7
Arg [2] : 000000000000000000000000853d955acef822db058eb8505911ed77f175b99e
Arg [3] : 00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e443
Arg [4] : 00000000000000000000000022c2fe05f55f81bf32310acd9a7c51c4d7b4e443
Arg [5] : 00000000000000000000000000000000000000000000000000000000000f4240
Arg [6] : 000000000000000000000000000000000000000000000000000000000003e47c
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [8] : 00000000000000000000000000000000000000000000000000000000000186a0
Arg [9] : 000000000000000000000000000000000000000000000000000000000000c350
Arg [10] : 00000000000000000000000000000000000000000000000000000000000186a0
Arg [11] : 0000000000000000000000000000000000000000000000000000000000001388

🤖 Code Reader

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

Custom Contract ABI

                            

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.