Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set PARENT_CA | 15264150 | 913 days ago | IN | 0 ETH | 0.00170274 | ||||
Set PARENT_CA | 15236611 | 918 days ago | IN | 0 ETH | 0.00036665 | ||||
Open Envelope | 15236308 | 918 days ago | IN | 0 ETH | 0.00102419 | ||||
Send Envelope | 15236290 | 918 days ago | IN | 0 ETH | 0.0026959 | ||||
Set PARENT_CA | 15236255 | 918 days ago | IN | 0 ETH | 0.00038886 | ||||
Open Envelope | 14969687 | 961 days ago | IN | 0 ETH | 0.00276515 | ||||
Send Envelope | 14969671 | 961 days ago | IN | 0.0083 ETH | 0.01532728 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
14969687 | 961 days ago | 0.0083 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
safesend
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity Multiple files format)
//SPDX-License-Identifier:UNLICENSED /* SafeSend V2 Decentralized Simple Payment Service Compiler Version: 0.8.14 */ pragma solidity ^0.8.0; import "abc.sol"; contract safesend is abc { uint256 public mode=2; // 0:disabled; 1:claim only; 2:create and claim; uint256 public fee=0.0006 ether; // to be split between owner and maintainer (creator) uint256 public minParentBal=1000000000; // 100,000 +4 decimals; for zero fees mapping(address => uint256) public balances; // for revenue only uint256 public totalRevenue=0; // BNB address public PARENT_CA=0xa5Ea2F2578D03333cb49e5e06238e2B04a9776c3; // specified by owner struct envelope{ uint256 status; // 0:cancelled; 1:holding; 2:claimed/released; address sender; address receiver; address token; uint256 amount; uint256 claimableAmount; uint256 created; uint256 holdTimeSec; uint256 closed; } uint256 public txcount=1000; mapping(address => bool) public feeWhitelisted; mapping(address => uint256[]) public userTxns; mapping(uint256 => envelope) public envelopes; mapping(address => mapping(uint256 => uint256)) public frontendStatus; constructor() { address _owner=0x1884377d1FeB3d3089884cE0947C2bf1675bf052; // owner specified setOriginalOwner(_owner); feeWhitelisted[_owner]=true; feeWhitelisted[msg.sender]=true; } //////////////////////////////////////////////////////////////////////////////////// // ADMIN FUNCTIONS function setMode(uint256 _mode) external adminOnly { mode=_mode; } function setFee(uint256 _fee) external adminOnly { fee=_fee; } function setMinParentBal(uint256 _minParentBal) external adminOnly { minParentBal=_minParentBal; } function setPARENT_CA(address _PARENT_CA) external adminOnly { PARENT_CA=_PARENT_CA; } function addToFeeWhitelist(address _account) external adminOnly { feeWhitelisted[_account]=true; } function removeFromFeeWhitelist(address _account) external adminOnly { feeWhitelisted[_account]=false; } //////////////////////////////////////////////////////////////////////////////////// // CORE FUNCTIONS function sendEnvelope(address receiver,address token,uint256 amount,uint256 holdTimeSec,uint256 frontendID) external payable{ // check mode require(mode==2,"System is paused."); // get a new txid txcount=math.add(txcount,1); uint256 txid=txcount; // re-entrancy guard require(frontendStatus[msg.sender][frontendID]==0,"Transaction already executed once."); frontendStatus[msg.sender][frontendID]=txid; // after this line re-entry will fail at previous line // determine fee uint256 finalFee=fee; if(PARENT_CA!=address(0x0)){ if(IERC20(PARENT_CA).balanceOf(msg.sender)>=minParentBal){ finalFee=math.div(fee,2); } } if(feeWhitelisted[msg.sender]){ finalFee=0; } if(finalFee>0){ uint256 feeShare=math.div(finalFee,2); balances[ownerAddress]=math.add(balances[ownerAddress],feeShare); balances[creatorAddress]=math.add(balances[creatorAddress],feeShare); totalRevenue=math.add(totalRevenue,finalFee); } // to send ETH supply the contract's own address as token bool isETH=token==address(this)?true:false; // Sending ETH if(isETH){ require(msg.value==amount+finalFee,"Insufficient value"); // fee and amount must be paid } // Sending Tokens if(!isETH){ require(msg.value==finalFee,"Insufficient fee"); // fee must be paid require(IERC20(token).allowance(msg.sender,address(this))>=amount,"Insufficient allowance"); // must have sufficient allowance require(IERC20(token).balanceOf(msg.sender)>=amount,"Insufficient balance"); // must have sufficient token balance } // transfer the token amount to this contract if(!isETH){ require(IERC20(token).transferFrom(msg.sender,address(this),amount),"Transfer failed."); } // create the envelope /* IMPORTANT AUDIT NOTE REGARDING block.timestamp: Developers are aware of the variability of block.timestamp. The DApp interface allows users to set the time period in seconds, hours, days, months, and years. Users are informed that using longer time periods make the variability of block.timestamp negligible. */ envelopes[txid]=envelope(1,msg.sender,receiver,token,amount,amount,block.timestamp,holdTimeSec,0); // add txid to user's transaction list userTxns[msg.sender].push(txid); if(msg.sender!=receiver) userTxns[receiver].push(txid); } function openEnvelope(uint256 txid,uint256 returnToSender) external { // check mode require(mode>0,"System is paused."); // check valid parties require(msg.sender==envelopes[txid].sender || msg.sender==envelopes[txid].receiver,"Not allowed"); // check if already claimed or cancelled require(envelopes[txid].claimableAmount==envelopes[txid].amount && envelopes[txid].status==1,"Claimed, cancelled, or expired"); // check if ready for claiming; otherwise sender can still release it /* IMPORTANT AUDIT NOTE REGARDING block.timestamp: Developers are aware of the variability of block.timestamp. The DApp interface allows users to set the time period in seconds, hours, days, months, and years. Users are informed that using longer time periods make the variability of block.timestamp negligible. */ require((block.timestamp>envelopes[txid].created+envelopes[txid].holdTimeSec)||(msg.sender==envelopes[txid].sender),"Still in holding period"); // ensure contract has balance bool isETH=envelopes[txid].token==address(this)?true:false; if(isETH) require(address(this).balance>=envelopes[txid].amount,"Insufficient contract balance"); if(!isETH) require(IERC20(envelopes[txid].token).balanceOf(address(this))>=envelopes[txid].amount,"Insufficient token balance in contract"); // re-entrancy guard // AUDIT NOTE: see third require statment in this function envelopes[txid].claimableAmount=0; // zero-out claimable if(returnToSender==1) envelopes[txid].status=0; // set cancelled status else envelopes[txid].status=2; // set sent status // release/return the funds if(isETH){ address payable pDest=payable(envelopes[txid].receiver); if(returnToSender==1) pDest=payable(envelopes[txid].sender); pDest.transfer(envelopes[txid].amount); } if(!isETH){ if(returnToSender==1) require(IERC20(envelopes[txid].token).transfer(envelopes[txid].sender,envelopes[txid].amount),"Transfer failed."); else require(IERC20(envelopes[txid].token).transfer(envelopes[txid].receiver,envelopes[txid].amount),"Transfer failed."); } // set date closed envelopes[txid].closed=block.timestamp; } //////////////////////////////////////////////////////////////////////////////////// function withdraw() external adminOnly{ require(balances[msg.sender]>0,"No balance"); uint256 bal=balances[msg.sender]; balances[msg.sender]=0; // re-entrancy guard: zero-out variable before transferring address payable pAddress=payable(msg.sender); pAddress.transfer(bal); } //////////////////////////////////////////////////////////////////////////////////// function getFee(address account) external view returns (uint256){ uint256 finalFee=fee; if(PARENT_CA!=address(0x0)){ if(IERC20(PARENT_CA).balanceOf(account)>=minParentBal){ finalFee=math.div(fee,2); } } if(feeWhitelisted[account]){ finalFee=0; } return finalFee; } function countRecords(address account) external view returns (uint256){ return userTxns[account].length; } function getRecordByIndex(address account,uint256 index) external view returns (uint256 _txid,address sender,address receiver,uint256 status,address token,uint256 amount,uint256 claimableAmount,uint256 created,uint256 holdTimeSec,uint256 closed,bool isClaimable){ uint256 txid=userTxns[account][index]; return getRecordByTxid(txid); } function getRecordByTxid(uint256 txid) public view returns (uint256 _txid,address sender,address receiver,uint256 status,address token,uint256 amount,uint256 claimableAmount,uint256 created,uint256 holdTimeSec,uint256 closed,bool isClaimable){ envelope memory e=envelopes[txid]; isClaimable=(block.timestamp>e.created+e.holdTimeSec)&&(e.status==1)?true:false; return(txid,e.sender,e.receiver,e.status,e.token,e.amount,e.claimableAmount,e.created,e.holdTimeSec,e.closed,isClaimable); } function allowance(address token,address owner) external view returns (uint256){ return IERC20(token).allowance(owner,address(this)); } function contractBalance(address token) external view returns (uint256){ if(token==address(this)){ return address(this).balance; } else{ return IERC20(token).balanceOf(address(this)); } } }
//SPDX-License-Identifier:UNLICENSED pragma solidity ^0.8.0; interface IERC20{ function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract abc{ mapping(address => bool) public isAdmin; address public ownerAddress; address public creatorAddress; mapping(address => mapping(uint256 => uint256)) public signatures; // signatures[address][processID]=sha1hash modifier adminOnly{ require(isAdmin[msg.sender]); _; } modifier ownerOnly{ require(msg.sender==ownerAddress); _; } function setOriginalOwner(address _ownerAddress) internal { // call in constructor ownerAddress=_ownerAddress; isAdmin[ownerAddress]=true; creatorAddress=msg.sender; isAdmin[msg.sender]=true; } function makeAdmin(address _newAdminAddress) external ownerOnly { isAdmin[_newAdminAddress]=true; } function removeAdmin(address _admin) external ownerOnly { isAdmin[_admin]=false; } function transferOwnership(address _newOwnerAddress) external ownerOnly { ownerAddress=_newOwnerAddress; } function signProcess(uint256 _processID,uint256 _sha1) external { signatures[msg.sender][_processID]=_sha1; } } library math{ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if(a==0){ return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); uint256 c = a / b; return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PARENT_CA","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addToFeeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"countRecords","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"envelopes","outputs":[{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"claimableAmount","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"},{"internalType":"uint256","name":"holdTimeSec","type":"uint256"},{"internalType":"uint256","name":"closed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"frontendStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRecordByIndex","outputs":[{"internalType":"uint256","name":"_txid","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"claimableAmount","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"},{"internalType":"uint256","name":"holdTimeSec","type":"uint256"},{"internalType":"uint256","name":"closed","type":"uint256"},{"internalType":"bool","name":"isClaimable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"txid","type":"uint256"}],"name":"getRecordByTxid","outputs":[{"internalType":"uint256","name":"_txid","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"claimableAmount","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"},{"internalType":"uint256","name":"holdTimeSec","type":"uint256"},{"internalType":"uint256","name":"closed","type":"uint256"},{"internalType":"bool","name":"isClaimable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdminAddress","type":"address"}],"name":"makeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minParentBal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"txid","type":"uint256"},{"internalType":"uint256","name":"returnToSender","type":"uint256"}],"name":"openEnvelope","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeFromFeeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"holdTimeSec","type":"uint256"},{"internalType":"uint256","name":"frontendID","type":"uint256"}],"name":"sendEnvelope","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minParentBal","type":"uint256"}],"name":"setMinParentBal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mode","type":"uint256"}],"name":"setMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_PARENT_CA","type":"address"}],"name":"setPARENT_CA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_processID","type":"uint256"},{"internalType":"uint256","name":"_sha1","type":"uint256"}],"name":"signProcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"signatures","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRevenue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwnerAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txcount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userTxns","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526002600455660221b262dd8000600555633b9aca00600655600060085573a5ea2f2578d03333cb49e5e06238e2b04a9776c3600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600a553480156200008957600080fd5b506000731884377d1feb3d3089884ce0947c2bf1675bf0529050620000b4816200016b60201b60201c565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620002c0565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61370280620002d06000396000f3fe6080604052600436106101f95760003560e01c80638f84aa091161010d578063c53b7702116100a0578063e68cc4a31161006f578063e68cc4a314610780578063e927fc5c146107c7578063ed8e9953146107f2578063f2fde38b1461082f578063fc51ab2a14610858576101f9565b8063c53b7702146106b2578063d72dd3b4146106ef578063dd62ed3e14610718578063ddca3f4314610755576101f9565b80639c56d9ad116100dc5780639c56d9ad146105e7578063a92af36814610603578063b88c91481461064a578063bf2d9e0b14610687576101f9565b80638f84aa091461052d5780639198c8591461055857806393633298146105815780639b1e942f146105aa576101f9565b8063315dbee611610190578063569ea1011161015f578063569ea101146104385780635b510b551461047557806369fe0e2d1461049e5780636d8a13f2146104c75780637a97497d14610504576101f9565b8063315dbee6146103a45780633ccfd60b146103cd578063472905ca146103e45780634c5b6aff1461040d576101f9565b806324d7806c116101cc57806324d7806c146102c257806325d97bb6146102ff57806327e235e31461033c578063295a521214610379576101f9565b806304297281146101fe57806306c708a7146102295780631785f53c146102545780631df957861461027d575b600080fd5b34801561020a57600080fd5b50610213610881565b6040516102209190612ab5565b60405180910390f35b34801561023557600080fd5b5061023e610887565b60405161024b9190612b11565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612b5d565b6108ad565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612bb6565b610961565b6040516102b999989796959493929190612be3565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612b5d565b610a0f565b6040516102f69190612c8b565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612ca6565b610a2f565b6040516103339190612ab5565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190612b5d565b610a54565b6040516103709190612ab5565b60405180910390f35b34801561038557600080fd5b5061038e610a6c565b60405161039b9190612ab5565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612bb6565b610a72565b005b3480156103d957600080fd5b506103e2610ad1565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612b5d565b610c81565b005b34801561041957600080fd5b50610422610d35565b60405161042f9190612ab5565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612b5d565b610d3b565b60405161046c9190612c8b565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612b5d565b610d5b565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612bb6565b610df4565b005b3480156104d357600080fd5b506104ee60048036038101906104e99190612ca6565b610e53565b6040516104fb9190612ab5565b60405180910390f35b34801561051057600080fd5b5061052b60048036038101906105269190612ce6565b610e78565b005b34801561053957600080fd5b5061054261171d565b60405161054f9190612b11565b60405180910390f35b34801561056457600080fd5b5061057f600480360381019061057a9190612b5d565b611743565b005b34801561058d57600080fd5b506105a860048036038101906105a39190612ce6565b6117f3565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190612ca6565b61184c565b6040516105de9190612ab5565b60405180910390f35b61060160048036038101906105fc9190612d26565b61187d565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612bb6565b6122cb565b6040516106419b9a99989796959493929190612da1565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190612b5d565b6124c5565b60405161067e9190612ab5565b60405180910390f35b34801561069357600080fd5b5061069c612638565b6040516106a99190612ab5565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612b5d565b61263e565b6040516106e69190612ab5565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612bb6565b6126fd565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612e4c565b61275c565b60405161074c9190612ab5565b60405180910390f35b34801561076157600080fd5b5061076a6127e2565b6040516107779190612ab5565b60405180910390f35b34801561078c57600080fd5b506107a760048036038101906107a29190612ca6565b6127e8565b6040516107be9b9a99989796959493929190612da1565b60405180910390f35b3480156107d357600080fd5b506107dc612888565b6040516107e99190612b11565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190612b5d565b6128ae565b6040516108269190612ab5565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190612b5d565b6128fa565b005b34801561086457600080fd5b5061087f600480360381019061087a9190612b5d565b612998565b005b600a5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060154908060070154908060080154905089565b60006020528060005260406000206000915054906101000a900460ff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b60076020528060005260406000206000915090505481565b60045481565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ac757600080fd5b8060068190555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b2657600080fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612ee9565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060003390508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610c7c573d6000803e3d6000fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cdb57600080fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60065481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610db057600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e4957600080fd5b8060058190555050565b600e602052816000526040600020602052806000526040600020600091509150505481565b600060045411610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612f55565b60405180910390fd5b600d600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f8e5750600d600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612fc1565b60405180910390fd5b600d600083815260200190815260200160002060040154600d60008481526020019081526020016000206005015414801561101e57506001600d600084815260200190815260200160002060000154145b61105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110549061302d565b60405180910390fd5b600d600083815260200190815260200160002060070154600d600084815260200190815260200160002060060154611095919061307c565b4211806111035750600d600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111399061311e565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16600d600085815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b45760006111b7565b60015b9050801561121957600d600084815260200190815260200160002060040154471015611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f9061318a565b60405180910390fd5b5b8061132757600d600084815260200190815260200160002060040154600d600085815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112a49190612b11565b602060405180830381865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e591906131bf565b1015611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d9061325e565b60405180910390fd5b5b6000600d6000858152602001908152602001600020600501819055506001820361136c576000600d600085815260200190815260200160002060000181905550611389565b6002600d6000858152602001908152602001600020600001819055505b801561146b576000600d600085815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001830361140c57600d600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b8073ffffffffffffffffffffffffffffffffffffffff166108fc600d6000878152602001908152602001600020600401549081150290604051600060405180830381858888f19350505050158015611468573d6000803e3d6000fd5b50505b806116fd57600182036115bc57600d600084815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d6000878152602001908152602001600020600401546040518363ffffffff1660e01b815260040161153592919061327e565b6020604051808303816000875af1158015611554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157891906132d3565b6115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae9061334c565b60405180910390fd5b6116fc565b600d600084815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d600086815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d6000878152602001908152602001600020600401546040518363ffffffff1660e01b815260040161167992919061327e565b6020604051808303816000875af1158015611698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bc91906132d3565b6116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29061334c565b60405180910390fd5b5b5b42600d600085815260200190815260200160002060080181905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661179857600080fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020819055505050565b600c602052816000526040600020818154811061186857600080fd5b90600052602060002001600091509150505481565b6002600454146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990612f55565b60405180910390fd5b6118cf600a546001612a48565b600a819055506000600a5490506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020541461196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906133de565b60405180910390fd5b80600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208190555060006005549050600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad657600654600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611a7f9190612b11565b602060405180830381865afa158015611a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac091906131bf565b10611ad557611ad26005546002612a74565b90505b5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b2d57600090505b6000811115611cf9576000611b43826002612a74565b9050611bb060076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a48565b60076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8060076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a48565b60076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf160085483612a48565b600881905550505b60003073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611d35576000611d38565b60015b90508015611d8e578186611d4c919061307c565b3414611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d849061344a565b60405180910390fd5b5b80611f5057813414611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906134b6565b60405180910390fd5b858773ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611e119291906134d6565b602060405180830381865afa158015611e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5291906131bf565b1015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a9061354b565b60405180910390fd5b858773ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611ecd9190612b11565b602060405180830381865afa158015611eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0e91906131bf565b1015611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f46906135b7565b60405180910390fd5b5b80612015578673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff1660e01b8152600401611f92939291906135d7565b6020604051808303816000875af1158015611fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd591906132d3565b612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061334c565b60405180910390fd5b5b604051806101200160405280600181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018781526020014281526020018681526020016000815250600d60008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155905050600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208390806001815401808255809150506001900390600052602060002001600090919091909150558773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122c157600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208390806001815401808255809150506001900390600052602060002001600090919091909150555b5050505050505050565b600080600080600080600080600080600080600d60008e815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090508060e001518160c00151612450919061307c565b42118015612462575060018160000151145b61246d576000612470565b60015b91508c816020015182604001518360000151846060015185608001518660a001518760c001518860e001518961010001519b509b509b509b509b509b509b509b509b509b505091939597999b90929496989a50565b6000806005549050600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125d857600654600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016125819190612b11565b602060405180830381865afa15801561259e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c291906131bf565b106125d7576125d46005546002612a74565b90505b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561262f57600090505b80915050919050565b60085481565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361267b574790506126f8565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126b49190612b11565b602060405180830381865afa1580156126d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f591906131bf565b90505b919050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275257600080fd5b8060048190555050565b60008273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016127999291906134d6565b602060405180830381865afa1580156127b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127da91906131bf565b905092915050565b60055481565b600080600080600080600080600080600080600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208d8154811061284b5761284a61360e565b5b90600052602060002001549050612861816122cb565b9b509b509b509b509b509b509b509b509b509b509b50509295989b509295989b9093969950565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461295457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ed57600080fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000808284612a57919061307c565b905083811015612a6a57612a6961363d565b5b8091505092915050565b6000808211612a8257600080fd5b60008284612a90919061369b565b90508091505092915050565b6000819050919050565b612aaf81612a9c565b82525050565b6000602082019050612aca6000830184612aa6565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612afb82612ad0565b9050919050565b612b0b81612af0565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b612b3a81612af0565b8114612b4557600080fd5b50565b600081359050612b5781612b31565b92915050565b600060208284031215612b7357612b72612b2c565b5b6000612b8184828501612b48565b91505092915050565b612b9381612a9c565b8114612b9e57600080fd5b50565b600081359050612bb081612b8a565b92915050565b600060208284031215612bcc57612bcb612b2c565b5b6000612bda84828501612ba1565b91505092915050565b600061012082019050612bf9600083018c612aa6565b612c06602083018b612b02565b612c13604083018a612b02565b612c206060830189612b02565b612c2d6080830188612aa6565b612c3a60a0830187612aa6565b612c4760c0830186612aa6565b612c5460e0830185612aa6565b612c62610100830184612aa6565b9a9950505050505050505050565b60008115159050919050565b612c8581612c70565b82525050565b6000602082019050612ca06000830184612c7c565b92915050565b60008060408385031215612cbd57612cbc612b2c565b5b6000612ccb85828601612b48565b9250506020612cdc85828601612ba1565b9150509250929050565b60008060408385031215612cfd57612cfc612b2c565b5b6000612d0b85828601612ba1565b9250506020612d1c85828601612ba1565b9150509250929050565b600080600080600060a08688031215612d4257612d41612b2c565b5b6000612d5088828901612b48565b9550506020612d6188828901612b48565b9450506040612d7288828901612ba1565b9350506060612d8388828901612ba1565b9250506080612d9488828901612ba1565b9150509295509295909350565b600061016082019050612db7600083018e612aa6565b612dc4602083018d612b02565b612dd1604083018c612b02565b612dde606083018b612aa6565b612deb608083018a612b02565b612df860a0830189612aa6565b612e0560c0830188612aa6565b612e1260e0830187612aa6565b612e20610100830186612aa6565b612e2e610120830185612aa6565b612e3c610140830184612c7c565b9c9b505050505050505050505050565b60008060408385031215612e6357612e62612b2c565b5b6000612e7185828601612b48565b9250506020612e8285828601612b48565b9150509250929050565b600082825260208201905092915050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612ed3600a83612e8c565b9150612ede82612e9d565b602082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f53797374656d206973207061757365642e000000000000000000000000000000600082015250565b6000612f3f601183612e8c565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b6000612fab600b83612e8c565b9150612fb682612f75565b602082019050919050565b60006020820190508181036000830152612fda81612f9e565b9050919050565b7f436c61696d65642c2063616e63656c6c65642c206f7220657870697265640000600082015250565b6000613017601e83612e8c565b915061302282612fe1565b602082019050919050565b600060208201905081810360008301526130468161300a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308782612a9c565b915061309283612a9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c7576130c661304d565b5b828201905092915050565b7f5374696c6c20696e20686f6c64696e6720706572696f64000000000000000000600082015250565b6000613108601783612e8c565b9150613113826130d2565b602082019050919050565b60006020820190508181036000830152613137816130fb565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e6365000000600082015250565b6000613174601d83612e8c565b915061317f8261313e565b602082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b6000815190506131b981612b8a565b92915050565b6000602082840312156131d5576131d4612b2c565b5b60006131e3848285016131aa565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000613248602683612e8c565b9150613253826131ec565b604082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b60006040820190506132936000830185612b02565b6132a06020830184612aa6565b9392505050565b6132b081612c70565b81146132bb57600080fd5b50565b6000815190506132cd816132a7565b92915050565b6000602082840312156132e9576132e8612b2c565b5b60006132f7848285016132be565b91505092915050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000613336601083612e8c565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b7f5472616e73616374696f6e20616c7265616479206578656375746564206f6e6360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b60006133c8602283612e8c565b91506133d38261336c565b604082019050919050565b600060208201905081810360008301526133f7816133bb565b9050919050565b7f496e73756666696369656e742076616c75650000000000000000000000000000600082015250565b6000613434601283612e8c565b915061343f826133fe565b602082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b60006134a0601083612e8c565b91506134ab8261346a565b602082019050919050565b600060208201905081810360008301526134cf81613493565b9050919050565b60006040820190506134eb6000830185612b02565b6134f86020830184612b02565b9392505050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613535601683612e8c565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006135a1601483612e8c565b91506135ac8261356b565b602082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b60006060820190506135ec6000830186612b02565b6135f96020830185612b02565b6136066040830184612aa6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136a682612a9c565b91506136b183612a9c565b9250826136c1576136c061366c565b5b82820490509291505056fea26469706673582212203b976cbfa2d8afbb50ad5128aaacf9ab53740aa5afa90e38ca5ce2b4121515b464736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106101f95760003560e01c80638f84aa091161010d578063c53b7702116100a0578063e68cc4a31161006f578063e68cc4a314610780578063e927fc5c146107c7578063ed8e9953146107f2578063f2fde38b1461082f578063fc51ab2a14610858576101f9565b8063c53b7702146106b2578063d72dd3b4146106ef578063dd62ed3e14610718578063ddca3f4314610755576101f9565b80639c56d9ad116100dc5780639c56d9ad146105e7578063a92af36814610603578063b88c91481461064a578063bf2d9e0b14610687576101f9565b80638f84aa091461052d5780639198c8591461055857806393633298146105815780639b1e942f146105aa576101f9565b8063315dbee611610190578063569ea1011161015f578063569ea101146104385780635b510b551461047557806369fe0e2d1461049e5780636d8a13f2146104c75780637a97497d14610504576101f9565b8063315dbee6146103a45780633ccfd60b146103cd578063472905ca146103e45780634c5b6aff1461040d576101f9565b806324d7806c116101cc57806324d7806c146102c257806325d97bb6146102ff57806327e235e31461033c578063295a521214610379576101f9565b806304297281146101fe57806306c708a7146102295780631785f53c146102545780631df957861461027d575b600080fd5b34801561020a57600080fd5b50610213610881565b6040516102209190612ab5565b60405180910390f35b34801561023557600080fd5b5061023e610887565b60405161024b9190612b11565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612b5d565b6108ad565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612bb6565b610961565b6040516102b999989796959493929190612be3565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612b5d565b610a0f565b6040516102f69190612c8b565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612ca6565b610a2f565b6040516103339190612ab5565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190612b5d565b610a54565b6040516103709190612ab5565b60405180910390f35b34801561038557600080fd5b5061038e610a6c565b60405161039b9190612ab5565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612bb6565b610a72565b005b3480156103d957600080fd5b506103e2610ad1565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612b5d565b610c81565b005b34801561041957600080fd5b50610422610d35565b60405161042f9190612ab5565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612b5d565b610d3b565b60405161046c9190612c8b565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612b5d565b610d5b565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612bb6565b610df4565b005b3480156104d357600080fd5b506104ee60048036038101906104e99190612ca6565b610e53565b6040516104fb9190612ab5565b60405180910390f35b34801561051057600080fd5b5061052b60048036038101906105269190612ce6565b610e78565b005b34801561053957600080fd5b5061054261171d565b60405161054f9190612b11565b60405180910390f35b34801561056457600080fd5b5061057f600480360381019061057a9190612b5d565b611743565b005b34801561058d57600080fd5b506105a860048036038101906105a39190612ce6565b6117f3565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190612ca6565b61184c565b6040516105de9190612ab5565b60405180910390f35b61060160048036038101906105fc9190612d26565b61187d565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612bb6565b6122cb565b6040516106419b9a99989796959493929190612da1565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190612b5d565b6124c5565b60405161067e9190612ab5565b60405180910390f35b34801561069357600080fd5b5061069c612638565b6040516106a99190612ab5565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612b5d565b61263e565b6040516106e69190612ab5565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612bb6565b6126fd565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612e4c565b61275c565b60405161074c9190612ab5565b60405180910390f35b34801561076157600080fd5b5061076a6127e2565b6040516107779190612ab5565b60405180910390f35b34801561078c57600080fd5b506107a760048036038101906107a29190612ca6565b6127e8565b6040516107be9b9a99989796959493929190612da1565b60405180910390f35b3480156107d357600080fd5b506107dc612888565b6040516107e99190612b11565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190612b5d565b6128ae565b6040516108269190612ab5565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190612b5d565b6128fa565b005b34801561086457600080fd5b5061087f600480360381019061087a9190612b5d565b612998565b005b600a5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060154908060070154908060080154905089565b60006020528060005260406000206000915054906101000a900460ff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b60076020528060005260406000206000915090505481565b60045481565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ac757600080fd5b8060068190555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b2657600080fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612ee9565b60405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060003390508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610c7c573d6000803e3d6000fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cdb57600080fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60065481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610db057600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e4957600080fd5b8060058190555050565b600e602052816000526040600020602052806000526040600020600091509150505481565b600060045411610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612f55565b60405180910390fd5b600d600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f8e5750600d600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612fc1565b60405180910390fd5b600d600083815260200190815260200160002060040154600d60008481526020019081526020016000206005015414801561101e57506001600d600084815260200190815260200160002060000154145b61105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110549061302d565b60405180910390fd5b600d600083815260200190815260200160002060070154600d600084815260200190815260200160002060060154611095919061307c565b4211806111035750600d600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111399061311e565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16600d600085815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b45760006111b7565b60015b9050801561121957600d600084815260200190815260200160002060040154471015611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f9061318a565b60405180910390fd5b5b8061132757600d600084815260200190815260200160002060040154600d600085815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112a49190612b11565b602060405180830381865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e591906131bf565b1015611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d9061325e565b60405180910390fd5b5b6000600d6000858152602001908152602001600020600501819055506001820361136c576000600d600085815260200190815260200160002060000181905550611389565b6002600d6000858152602001908152602001600020600001819055505b801561146b576000600d600085815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001830361140c57600d600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b8073ffffffffffffffffffffffffffffffffffffffff166108fc600d6000878152602001908152602001600020600401549081150290604051600060405180830381858888f19350505050158015611468573d6000803e3d6000fd5b50505b806116fd57600182036115bc57600d600084815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d600086815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d6000878152602001908152602001600020600401546040518363ffffffff1660e01b815260040161153592919061327e565b6020604051808303816000875af1158015611554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157891906132d3565b6115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae9061334c565b60405180910390fd5b6116fc565b600d600084815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d600086815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d6000878152602001908152602001600020600401546040518363ffffffff1660e01b815260040161167992919061327e565b6020604051808303816000875af1158015611698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bc91906132d3565b6116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29061334c565b60405180910390fd5b5b5b42600d600085815260200190815260200160002060080181905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661179857600080fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020819055505050565b600c602052816000526040600020818154811061186857600080fd5b90600052602060002001600091509150505481565b6002600454146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990612f55565b60405180910390fd5b6118cf600a546001612a48565b600a819055506000600a5490506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020541461196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906133de565b60405180910390fd5b80600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208190555060006005549050600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad657600654600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611a7f9190612b11565b602060405180830381865afa158015611a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac091906131bf565b10611ad557611ad26005546002612a74565b90505b5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b2d57600090505b6000811115611cf9576000611b43826002612a74565b9050611bb060076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a48565b60076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8060076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a48565b60076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf160085483612a48565b600881905550505b60003073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611d35576000611d38565b60015b90508015611d8e578186611d4c919061307c565b3414611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d849061344a565b60405180910390fd5b5b80611f5057813414611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906134b6565b60405180910390fd5b858773ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611e119291906134d6565b602060405180830381865afa158015611e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5291906131bf565b1015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a9061354b565b60405180910390fd5b858773ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611ecd9190612b11565b602060405180830381865afa158015611eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0e91906131bf565b1015611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f46906135b7565b60405180910390fd5b5b80612015578673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff1660e01b8152600401611f92939291906135d7565b6020604051808303816000875af1158015611fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd591906132d3565b612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061334c565b60405180910390fd5b5b604051806101200160405280600181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018781526020014281526020018681526020016000815250600d60008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155905050600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208390806001815401808255809150506001900390600052602060002001600090919091909150558773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122c157600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208390806001815401808255809150506001900390600052602060002001600090919091909150555b5050505050505050565b600080600080600080600080600080600080600d60008e815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090508060e001518160c00151612450919061307c565b42118015612462575060018160000151145b61246d576000612470565b60015b91508c816020015182604001518360000151846060015185608001518660a001518760c001518860e001518961010001519b509b509b509b509b509b509b509b509b509b505091939597999b90929496989a50565b6000806005549050600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125d857600654600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016125819190612b11565b602060405180830381865afa15801561259e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c291906131bf565b106125d7576125d46005546002612a74565b90505b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561262f57600090505b80915050919050565b60085481565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361267b574790506126f8565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126b49190612b11565b602060405180830381865afa1580156126d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f591906131bf565b90505b919050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275257600080fd5b8060048190555050565b60008273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b81526004016127999291906134d6565b602060405180830381865afa1580156127b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127da91906131bf565b905092915050565b60055481565b600080600080600080600080600080600080600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208d8154811061284b5761284a61360e565b5b90600052602060002001549050612861816122cb565b9b509b509b509b509b509b509b509b509b509b509b50509295989b509295989b9093969950565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461295457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129ed57600080fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000808284612a57919061307c565b905083811015612a6a57612a6961363d565b5b8091505092915050565b6000808211612a8257600080fd5b60008284612a90919061369b565b90508091505092915050565b6000819050919050565b612aaf81612a9c565b82525050565b6000602082019050612aca6000830184612aa6565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612afb82612ad0565b9050919050565b612b0b81612af0565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b612b3a81612af0565b8114612b4557600080fd5b50565b600081359050612b5781612b31565b92915050565b600060208284031215612b7357612b72612b2c565b5b6000612b8184828501612b48565b91505092915050565b612b9381612a9c565b8114612b9e57600080fd5b50565b600081359050612bb081612b8a565b92915050565b600060208284031215612bcc57612bcb612b2c565b5b6000612bda84828501612ba1565b91505092915050565b600061012082019050612bf9600083018c612aa6565b612c06602083018b612b02565b612c13604083018a612b02565b612c206060830189612b02565b612c2d6080830188612aa6565b612c3a60a0830187612aa6565b612c4760c0830186612aa6565b612c5460e0830185612aa6565b612c62610100830184612aa6565b9a9950505050505050505050565b60008115159050919050565b612c8581612c70565b82525050565b6000602082019050612ca06000830184612c7c565b92915050565b60008060408385031215612cbd57612cbc612b2c565b5b6000612ccb85828601612b48565b9250506020612cdc85828601612ba1565b9150509250929050565b60008060408385031215612cfd57612cfc612b2c565b5b6000612d0b85828601612ba1565b9250506020612d1c85828601612ba1565b9150509250929050565b600080600080600060a08688031215612d4257612d41612b2c565b5b6000612d5088828901612b48565b9550506020612d6188828901612b48565b9450506040612d7288828901612ba1565b9350506060612d8388828901612ba1565b9250506080612d9488828901612ba1565b9150509295509295909350565b600061016082019050612db7600083018e612aa6565b612dc4602083018d612b02565b612dd1604083018c612b02565b612dde606083018b612aa6565b612deb608083018a612b02565b612df860a0830189612aa6565b612e0560c0830188612aa6565b612e1260e0830187612aa6565b612e20610100830186612aa6565b612e2e610120830185612aa6565b612e3c610140830184612c7c565b9c9b505050505050505050505050565b60008060408385031215612e6357612e62612b2c565b5b6000612e7185828601612b48565b9250506020612e8285828601612b48565b9150509250929050565b600082825260208201905092915050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612ed3600a83612e8c565b9150612ede82612e9d565b602082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f53797374656d206973207061757365642e000000000000000000000000000000600082015250565b6000612f3f601183612e8c565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b6000612fab600b83612e8c565b9150612fb682612f75565b602082019050919050565b60006020820190508181036000830152612fda81612f9e565b9050919050565b7f436c61696d65642c2063616e63656c6c65642c206f7220657870697265640000600082015250565b6000613017601e83612e8c565b915061302282612fe1565b602082019050919050565b600060208201905081810360008301526130468161300a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308782612a9c565b915061309283612a9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c7576130c661304d565b5b828201905092915050565b7f5374696c6c20696e20686f6c64696e6720706572696f64000000000000000000600082015250565b6000613108601783612e8c565b9150613113826130d2565b602082019050919050565b60006020820190508181036000830152613137816130fb565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e6365000000600082015250565b6000613174601d83612e8c565b915061317f8261313e565b602082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b6000815190506131b981612b8a565b92915050565b6000602082840312156131d5576131d4612b2c565b5b60006131e3848285016131aa565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000613248602683612e8c565b9150613253826131ec565b604082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b60006040820190506132936000830185612b02565b6132a06020830184612aa6565b9392505050565b6132b081612c70565b81146132bb57600080fd5b50565b6000815190506132cd816132a7565b92915050565b6000602082840312156132e9576132e8612b2c565b5b60006132f7848285016132be565b91505092915050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000613336601083612e8c565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b7f5472616e73616374696f6e20616c7265616479206578656375746564206f6e6360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b60006133c8602283612e8c565b91506133d38261336c565b604082019050919050565b600060208201905081810360008301526133f7816133bb565b9050919050565b7f496e73756666696369656e742076616c75650000000000000000000000000000600082015250565b6000613434601283612e8c565b915061343f826133fe565b602082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b60006134a0601083612e8c565b91506134ab8261346a565b602082019050919050565b600060208201905081810360008301526134cf81613493565b9050919050565b60006040820190506134eb6000830185612b02565b6134f86020830184612b02565b9392505050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613535601683612e8c565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006135a1601483612e8c565b91506135ac8261356b565b602082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b60006060820190506135ec6000830186612b02565b6135f96020830185612b02565b6136066040830184612aa6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136a682612a9c565b91506136b183612a9c565b9250826136c1576136c061366c565b5b82820490509291505056fea26469706673582212203b976cbfa2d8afbb50ad5128aaacf9ab53740aa5afa90e38ca5ce2b4121515b464736f6c634300080e0033
Deployed Bytecode Sourcemap
173:9907:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;586:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1556:96:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1148:45:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;766:39:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;886:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;469:43:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;207:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1802:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7835:325;;;;;;;;;;;;;:::i;:::-;;1435:113:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;384:38:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1039:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1922:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1718:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1202:69;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5168:2567;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;814:27:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2030:112:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1794:123:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1094:45:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2393:2767;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9142:516;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8260:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;541:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9823:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1630:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9666:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;290:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8777:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;848:29:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8649:120:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1660:126:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2150:118:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1003:27;;;;:::o;586:67::-;;;;;;;;;;;;;:::o;1556:96:0:-;1142:12;;;;;;;;;;;1130:24;;:10;:24;;;1122:33;;;;;;1639:5:::1;1623:7:::0;:15:::1;1631:6;1623:15;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;1556:96:::0;:::o;1148:45:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;766:39:0:-;;;;;;;;;;;;;;;;;;;;;;:::o;886:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;469:43:1:-;;;;;;;;;;;;;;;;;:::o;207:21::-;;;;:::o;1802:112::-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;1893:13:1::1;1880:12;:26;;;;1802:112:::0;:::o;7835:325::-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;7913:1:1::1;7892:8;:20;7901:10;7892:20;;;;;;;;;;;;;;;;:22;7884:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7939:11;7951:8;:20;7960:10;7951:20;;;;;;;;;;;;;;;;7939:32;;8003:1;7982:8;:20;7991:10;7982:20;;;;;;;;;;;;;;;:22;;;;8075:24;8108:10;8075:44;;8130:8;:17;;:22;8148:3;8130:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7873:287;;7835:325::o:0;1435:113:0:-;1142:12;;;;;;;;;;;1130:24;;:10;:24;;;1122:33;;;;;;1536:4:::1;1510:7;:25:::0;1518:16:::1;1510:25;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1435:113:::0;:::o;384:38:1:-;;;;:::o;1039:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;1922:100::-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;2004:10:1::1;1994:9;;:20;;;;;;;;;;;;;;;;;;1922:100:::0;:::o;1718:76::-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;1782:4:1::1;1778:3;:8;;;;1718:76:::0;:::o;1202:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5168:2567::-;5287:1;5282:4;;:6;5274:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5374:9;:15;5384:4;5374:15;;;;;;;;;;;:22;;;;;;;;;;;;5362:34;;:10;:34;;;:74;;;;5412:9;:15;5422:4;5412:15;;;;;;;;;;;:24;;;;;;;;;;;;5400:36;;:10;:36;;;5362:74;5354:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;5555:9;:15;5565:4;5555:15;;;;;;;;;;;:22;;;5522:9;:15;5532:4;5522:15;;;;;;;;;;;:31;;;:55;:84;;;;;5605:1;5581:9;:15;5591:4;5581:15;;;;;;;;;;;:22;;;:25;5522:84;5514:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;6179:9;:15;6189:4;6179:15;;;;;;;;;;;:27;;;6155:9;:15;6165:4;6155:15;;;;;;;;;;;:23;;;:51;;;;:::i;:::-;6139:15;:67;6138:107;;;;6222:9;:15;6232:4;6222:15;;;;;;;;;;;:22;;;;;;;;;;;;6210:34;;:10;:34;;;6138:107;6130:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;6325:10;6367:4;6336:36;;:9;:15;6346:4;6336:15;;;;;;;;;;;:21;;;;;;;;;;;;:36;;;:47;;6378:5;6336:47;;;6373:4;6336:47;6325:58;;6397:5;6394:109;;;6448:9;:15;6458:4;6448:15;;;;;;;;;;;:22;;;6425:21;:45;;6417:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;6394:109;6518:5;6514:152;;6602:9;:15;6612:4;6602:15;;;;;;;;;;;:22;;;6553:9;:15;6563:4;6553:15;;;;;;;;;;;:21;;;;;;;;;;;;6546:39;;;6594:4;6546:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;6538:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;6514:152;6809:1;6777:9;:15;6787:4;6777:15;;;;;;;;;;;:31;;:33;;;;6862:1;6846:14;:17;6843:136;;6901:1;6878:9;:15;6888:4;6878:15;;;;;;;;;;;:22;;:24;;;;6843:136;;;6978:1;6955:9;:15;6965:4;6955:15;;;;;;;;;;;:22;;:24;;;;6843:136;7051:5;7048:218;;;7072:21;7102:9;:15;7112:4;7102:15;;;;;;;;;;;:24;;;;;;;;;;;;7072:55;;7161:1;7145:14;:17;7142:59;;7178:9;:15;7188:4;7178:15;;;;;;;;;;;:22;;;;;;;;;;;;7164:37;;7142:59;7216:5;:14;;:38;7231:9;:15;7241:4;7231:15;;;;;;;;;;;:22;;;7216:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7057:209;7048:218;7280:5;7276:365;;7320:1;7304:14;:17;7301:316;;7355:9;:15;7365:4;7355:15;;;;;;;;;;;:21;;;;;;;;;;;;7348:38;;;7387:9;:15;7397:4;7387:15;;;;;;;;;;;:22;;;;;;;;;;;;7410:9;:15;7420:4;7410:15;;;;;;;;;;;:22;;;7348:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7340:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;7301:316;;;7517:9;:15;7527:4;7517:15;;;;;;;;;;;:21;;;;;;;;;;;;7510:38;;;7549:9;:15;7559:4;7549:15;;;;;;;;;;;:24;;;;;;;;;;;;7574:9;:15;7584:4;7574:15;;;;;;;;;;;:22;;;7510:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7502:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;7301:316;7276:365;7712:15;7689:9;:15;7699:4;7689:15;;;;;;;;;;;:22;;:38;;;;5236:2499;5168:2567;;:::o;814:27:0:-;;;;;;;;;;;;;:::o;2030:112:1:-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;2130:4:1::1;2105:14;:24;2120:8;2105:24;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2030:112:::0;:::o;1794:123:0:-;1904:5;1869:10;:22;1880:10;1869:22;;;;;;;;;;;;;;;:34;1892:10;1869:34;;;;;;;;;;;:40;;;;1794:123;;:::o;1094:45:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2393:2767::-;2565:1;2559:4;;:7;2551:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;2635:19;2644:7;;2652:1;2635:8;:19::i;:::-;2627:7;:27;;;;2665:12;2678:7;;2665:20;;2776:1;2736:14;:26;2751:10;2736:26;;;;;;;;;;;;;;;:38;2763:10;2736:38;;;;;;;;;;;;:41;2728:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;2865:4;2826:14;:26;2841:10;2826:26;;;;;;;;;;;;;;;:38;2853:10;2826:38;;;;;;;;;;;:43;;;;2963:16;2980:3;;2963:20;;3016:3;2997:23;;:9;;;;;;;;;;;:23;;;2994:169;;3080:12;;3046:9;;;;;;;;;;;3039:27;;;3067:10;3039:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;3036:116;;3121:15;3130:3;;3134:1;3121:8;:15::i;:::-;3112:24;;3036:116;2994:169;3178:14;:26;3193:10;3178:26;;;;;;;;;;;;;;;;;;;;;;;;;3175:67;;;3229:1;3220:10;;3175:67;3266:1;3257:8;:10;3254:299;;;3283:16;3300:20;3309:8;3318:1;3300:8;:20::i;:::-;3283:37;;3358:41;3367:8;:22;3376:12;;;;;;;;;;;3367:22;;;;;;;;;;;;;;;;3390:8;3358;:41::i;:::-;3335:8;:22;3344:12;;;;;;;;;;;3335:22;;;;;;;;;;;;;;;:64;;;;3439:43;3448:8;:24;3457:14;;;;;;;;;;;3448:24;;;;;;;;;;;;;;;;3473:8;3439;:43::i;:::-;3414:8;:24;3423:14;;;;;;;;;;;3414:24;;;;;;;;;;;;;;;:68;;;;3510:31;3519:12;;3532:8;3510;:31::i;:::-;3497:12;:44;;;;3268:285;3254:299;3632:10;3658:4;3643:20;;:5;:20;;;:31;;3669:5;3643:31;;;3664:4;3643:31;3632:42;;3714:5;3711:123;;;3761:8;3754:6;:15;;;;:::i;:::-;3743:9;:26;3735:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3711:123;3877:5;3873:372;;3917:8;3906:9;:19;3898:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;4039:6;3995:5;3988:23;;;4012:10;4031:4;3988:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;3980:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;4165:6;4135:5;4128:23;;;4152:10;4128:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;4120:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3873:372;4316:5;4312:124;;4352:5;4345:26;;;4372:10;4391:4;4397:6;4345:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4337:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;4312:124;4901:81;;;;;;;;4910:1;4901:81;;;;4912:10;4901:81;;;;;;4923:8;4901:81;;;;;;4932:5;4901:81;;;;;;4938:6;4901:81;;;;4945:6;4901:81;;;;4952:15;4901:81;;;;4968:11;4901:81;;;;4980:1;4901:81;;;4885:9;:15;4895:4;4885:15;;;;;;;;;;;:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5043:8;:20;5052:10;5043:20;;;;;;;;;;;;;;;5069:4;5043:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5100:8;5088:20;;:10;:20;;;5085:67;;5123:8;:18;5132:8;5123:18;;;;;;;;;;;;;;;5147:4;5123:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5085:67;2517:2643;;;2393:2767;;;;;:::o;9142:516::-;9202:13;9216:14;9231:16;9248:14;9263:13;9277:14;9292:23;9316:15;9332:19;9352:14;9367:16;9395:17;9413:9;:15;9423:4;9413:15;;;;;;;;;;;9395:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9478:1;:13;;;9468:1;:9;;;:23;;;;:::i;:::-;9452:15;:39;9451:56;;;;;9505:1;9495;:8;;;:11;9451:56;:67;;9513:5;9451:67;;;9508:4;9451:67;9439:79;;9536:4;9541:1;:8;;;9550:1;:10;;;9561:1;:8;;;9570:1;:7;;;9578:1;:8;;;9587:1;:17;;;9605:1;:9;;;9615:1;:13;;;9629:1;:8;;;9529:121;;;;;;;;;;;;;;;;;;;;;9142:516;;;;;;;;;;;;;:::o;8260:381::-;8316:7;8335:16;8352:3;;8335:20;;8388:3;8369:23;;:9;;;;;;;;;;;:23;;;8366:166;;8449:12;;8418:9;;;;;;;;;;;8411:27;;;8439:7;8411:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;8408:113;;8490:15;8499:3;;8503:1;8490:8;:15::i;:::-;8481:24;;8408:113;8366:166;8545:14;:23;8560:7;8545:23;;;;;;;;;;;;;;;;;;;;;;;;;8542:64;;;8593:1;8584:10;;8542:64;8625:8;8618:15;;;8260:381;;;:::o;541:29::-;;;;:::o;9823:254::-;9886:7;9923:4;9908:20;;:5;:20;;;9905:165;;9951:21;9944:28;;;;9905:165;10027:5;10020:23;;;10052:4;10020:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10013:45;;9823:254;;;;:::o;1630:80::-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;1697:5:1::1;1692:4;:10;;;;1630:80:::0;:::o;9666:149::-;9737:7;9770:5;9763:23;;;9787:5;9801:4;9763:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9756:51;;9666:149;;;;:::o;290:31::-;;;;:::o;8777:357::-;8857:13;8871:14;8886:16;8903:14;8918:13;8932:14;8947:23;8971:15;8987:19;9007:14;9022:16;9050:12;9063:8;:17;9072:7;9063:17;;;;;;;;;;;;;;;9081:5;9063:24;;;;;;;;:::i;:::-;;;;;;;;;;9050:37;;9105:21;9121:4;9105:15;:21::i;:::-;9098:28;;;;;;;;;;;;;;;;;;;;;;;8777:357;;;;;;;;;;;;;;:::o;848:29:0:-;;;;;;;;;;;;;:::o;8649:120:1:-;8711:7;8737:8;:17;8746:7;8737:17;;;;;;;;;;;;;;;:24;;;;8730:31;;8649:120;;;:::o;1660:126:0:-;1142:12;;;;;;;;;;;1130:24;;:10;:24;;;1122:33;;;;;;1756:16:::1;1743:12;;:29;;;;;;;;;;;;;;;;;;1660:126:::0;:::o;2150:118:1:-;1045:7:0;:19;1053:10;1045:19;;;;;;;;;;;;;;;;;;;;;;;;;1037:28;;;;;;2255:5:1::1;2230:14;:24;2245:8;2230:24;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2150:118:::0;:::o;2070:141:0:-;2128:7;2146:9;2162:1;2158;:5;;;;:::i;:::-;2146:17;;2184:1;2179;:6;;2172:14;;;;:::i;:::-;;2202:1;2195:8;;;2070:141;;;;:::o;2469:147::-;2527:7;2559:1;2555;:5;2547:14;;;;;;2572:9;2588:1;2584;:5;;;;:::i;:::-;2572:17;;2607:1;2600:8;;;2469:147;;;;:::o;7:77:2:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1109:117::-;1218:1;1215;1208:12;1355:122;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1529:5;1567:6;1554:20;1545:29;;1583:33;1610:5;1583:33;:::i;:::-;1483:139;;;;:::o;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;;:::i;:::-;1704:119;1862:1;1887:53;1932:7;1923:6;1912:9;1908:22;1887:53;:::i;:::-;1877:63;;1833:117;1628:329;;;;:::o;1963:122::-;2036:24;2054:5;2036:24;:::i;:::-;2029:5;2026:35;2016:63;;2075:1;2072;2065:12;2016:63;1963:122;:::o;2091:139::-;2137:5;2175:6;2162:20;2153:29;;2191:33;2218:5;2191:33;:::i;:::-;2091:139;;;;:::o;2236:329::-;2295:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;;:::i;:::-;2312:119;2470:1;2495:53;2540:7;2531:6;2520:9;2516:22;2495:53;:::i;:::-;2485:63;;2441:117;2236:329;;;;:::o;2571:1108::-;2888:4;2926:3;2915:9;2911:19;2903:27;;2940:71;3008:1;2997:9;2993:17;2984:6;2940:71;:::i;:::-;3021:72;3089:2;3078:9;3074:18;3065:6;3021:72;:::i;:::-;3103;3171:2;3160:9;3156:18;3147:6;3103:72;:::i;:::-;3185;3253:2;3242:9;3238:18;3229:6;3185:72;:::i;:::-;3267:73;3335:3;3324:9;3320:19;3311:6;3267:73;:::i;:::-;3350;3418:3;3407:9;3403:19;3394:6;3350:73;:::i;:::-;3433;3501:3;3490:9;3486:19;3477:6;3433:73;:::i;:::-;3516;3584:3;3573:9;3569:19;3560:6;3516:73;:::i;:::-;3599;3667:3;3656:9;3652:19;3643:6;3599:73;:::i;:::-;2571:1108;;;;;;;;;;;;:::o;3685:90::-;3719:7;3762:5;3755:13;3748:21;3737:32;;3685:90;;;:::o;3781:109::-;3862:21;3877:5;3862:21;:::i;:::-;3857:3;3850:34;3781:109;;:::o;3896:210::-;3983:4;4021:2;4010:9;4006:18;3998:26;;4034:65;4096:1;4085:9;4081:17;4072:6;4034:65;:::i;:::-;3896:210;;;;:::o;4112:474::-;4180:6;4188;4237:2;4225:9;4216:7;4212:23;4208:32;4205:119;;;4243:79;;:::i;:::-;4205:119;4363:1;4388:53;4433:7;4424:6;4413:9;4409:22;4388:53;:::i;:::-;4378:63;;4334:117;4490:2;4516:53;4561:7;4552:6;4541:9;4537:22;4516:53;:::i;:::-;4506:63;;4461:118;4112:474;;;;;:::o;4592:::-;4660:6;4668;4717:2;4705:9;4696:7;4692:23;4688:32;4685:119;;;4723:79;;:::i;:::-;4685:119;4843:1;4868:53;4913:7;4904:6;4893:9;4889:22;4868:53;:::i;:::-;4858:63;;4814:117;4970:2;4996:53;5041:7;5032:6;5021:9;5017:22;4996:53;:::i;:::-;4986:63;;4941:118;4592:474;;;;;:::o;5072:911::-;5167:6;5175;5183;5191;5199;5248:3;5236:9;5227:7;5223:23;5219:33;5216:120;;;5255:79;;:::i;:::-;5216:120;5375:1;5400:53;5445:7;5436:6;5425:9;5421:22;5400:53;:::i;:::-;5390:63;;5346:117;5502:2;5528:53;5573:7;5564:6;5553:9;5549:22;5528:53;:::i;:::-;5518:63;;5473:118;5630:2;5656:53;5701:7;5692:6;5681:9;5677:22;5656:53;:::i;:::-;5646:63;;5601:118;5758:2;5784:53;5829:7;5820:6;5809:9;5805:22;5784:53;:::i;:::-;5774:63;;5729:118;5886:3;5913:53;5958:7;5949:6;5938:9;5934:22;5913:53;:::i;:::-;5903:63;;5857:119;5072:911;;;;;;;;:::o;5989:1320::-;6357:4;6395:3;6384:9;6380:19;6372:27;;6409:71;6477:1;6466:9;6462:17;6453:6;6409:71;:::i;:::-;6490:72;6558:2;6547:9;6543:18;6534:6;6490:72;:::i;:::-;6572;6640:2;6629:9;6625:18;6616:6;6572:72;:::i;:::-;6654;6722:2;6711:9;6707:18;6698:6;6654:72;:::i;:::-;6736:73;6804:3;6793:9;6789:19;6780:6;6736:73;:::i;:::-;6819;6887:3;6876:9;6872:19;6863:6;6819:73;:::i;:::-;6902;6970:3;6959:9;6955:19;6946:6;6902:73;:::i;:::-;6985;7053:3;7042:9;7038:19;7029:6;6985:73;:::i;:::-;7068;7136:3;7125:9;7121:19;7112:6;7068:73;:::i;:::-;7151;7219:3;7208:9;7204:19;7195:6;7151:73;:::i;:::-;7234:68;7297:3;7286:9;7282:19;7272:7;7234:68;:::i;:::-;5989:1320;;;;;;;;;;;;;;:::o;7315:474::-;7383:6;7391;7440:2;7428:9;7419:7;7415:23;7411:32;7408:119;;;7446:79;;:::i;:::-;7408:119;7566:1;7591:53;7636:7;7627:6;7616:9;7612:22;7591:53;:::i;:::-;7581:63;;7537:117;7693:2;7719:53;7764:7;7755:6;7744:9;7740:22;7719:53;:::i;:::-;7709:63;;7664:118;7315:474;;;;;:::o;7795:169::-;7879:11;7913:6;7908:3;7901:19;7953:4;7948:3;7944:14;7929:29;;7795:169;;;;:::o;7970:160::-;8110:12;8106:1;8098:6;8094:14;8087:36;7970:160;:::o;8136:366::-;8278:3;8299:67;8363:2;8358:3;8299:67;:::i;:::-;8292:74;;8375:93;8464:3;8375:93;:::i;:::-;8493:2;8488:3;8484:12;8477:19;;8136:366;;;:::o;8508:419::-;8674:4;8712:2;8701:9;8697:18;8689:26;;8761:9;8755:4;8751:20;8747:1;8736:9;8732:17;8725:47;8789:131;8915:4;8789:131;:::i;:::-;8781:139;;8508:419;;;:::o;8933:167::-;9073:19;9069:1;9061:6;9057:14;9050:43;8933:167;:::o;9106:366::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:419::-;9644:4;9682:2;9671:9;9667:18;9659:26;;9731:9;9725:4;9721:20;9717:1;9706:9;9702:17;9695:47;9759:131;9885:4;9759:131;:::i;:::-;9751:139;;9478:419;;;:::o;9903:161::-;10043:13;10039:1;10031:6;10027:14;10020:37;9903:161;:::o;10070:366::-;10212:3;10233:67;10297:2;10292:3;10233:67;:::i;:::-;10226:74;;10309:93;10398:3;10309:93;:::i;:::-;10427:2;10422:3;10418:12;10411:19;;10070:366;;;:::o;10442:419::-;10608:4;10646:2;10635:9;10631:18;10623:26;;10695:9;10689:4;10685:20;10681:1;10670:9;10666:17;10659:47;10723:131;10849:4;10723:131;:::i;:::-;10715:139;;10442:419;;;:::o;10867:180::-;11007:32;11003:1;10995:6;10991:14;10984:56;10867:180;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11898:77;11895:1;11888:88;11995:4;11992:1;11985:15;12019:4;12016:1;12009:15;12036:305;12076:3;12095:20;12113:1;12095:20;:::i;:::-;12090:25;;12129:20;12147:1;12129:20;:::i;:::-;12124:25;;12283:1;12215:66;12211:74;12208:1;12205:81;12202:107;;;12289:18;;:::i;:::-;12202:107;12333:1;12330;12326:9;12319:16;;12036:305;;;;:::o;12347:173::-;12487:25;12483:1;12475:6;12471:14;12464:49;12347:173;:::o;12526:366::-;12668:3;12689:67;12753:2;12748:3;12689:67;:::i;:::-;12682:74;;12765:93;12854:3;12765:93;:::i;:::-;12883:2;12878:3;12874:12;12867:19;;12526:366;;;:::o;12898:419::-;13064:4;13102:2;13091:9;13087:18;13079:26;;13151:9;13145:4;13141:20;13137:1;13126:9;13122:17;13115:47;13179:131;13305:4;13179:131;:::i;:::-;13171:139;;12898:419;;;:::o;13323:179::-;13463:31;13459:1;13451:6;13447:14;13440:55;13323:179;:::o;13508:366::-;13650:3;13671:67;13735:2;13730:3;13671:67;:::i;:::-;13664:74;;13747:93;13836:3;13747:93;:::i;:::-;13865:2;13860:3;13856:12;13849:19;;13508:366;;;:::o;13880:419::-;14046:4;14084:2;14073:9;14069:18;14061:26;;14133:9;14127:4;14123:20;14119:1;14108:9;14104:17;14097:47;14161:131;14287:4;14161:131;:::i;:::-;14153:139;;13880:419;;;:::o;14305:143::-;14362:5;14393:6;14387:13;14378:22;;14409:33;14436:5;14409:33;:::i;:::-;14305:143;;;;:::o;14454:351::-;14524:6;14573:2;14561:9;14552:7;14548:23;14544:32;14541:119;;;14579:79;;:::i;:::-;14541:119;14699:1;14724:64;14780:7;14771:6;14760:9;14756:22;14724:64;:::i;:::-;14714:74;;14670:128;14454:351;;;;:::o;14811:225::-;14951:34;14947:1;14939:6;14935:14;14928:58;15020:8;15015:2;15007:6;15003:15;14996:33;14811:225;:::o;15042:366::-;15184:3;15205:67;15269:2;15264:3;15205:67;:::i;:::-;15198:74;;15281:93;15370:3;15281:93;:::i;:::-;15399:2;15394:3;15390:12;15383:19;;15042:366;;;:::o;15414:419::-;15580:4;15618:2;15607:9;15603:18;15595:26;;15667:9;15661:4;15657:20;15653:1;15642:9;15638:17;15631:47;15695:131;15821:4;15695:131;:::i;:::-;15687:139;;15414:419;;;:::o;15839:332::-;15960:4;15998:2;15987:9;15983:18;15975:26;;16011:71;16079:1;16068:9;16064:17;16055:6;16011:71;:::i;:::-;16092:72;16160:2;16149:9;16145:18;16136:6;16092:72;:::i;:::-;15839:332;;;;;:::o;16177:116::-;16247:21;16262:5;16247:21;:::i;:::-;16240:5;16237:32;16227:60;;16283:1;16280;16273:12;16227:60;16177:116;:::o;16299:137::-;16353:5;16384:6;16378:13;16369:22;;16400:30;16424:5;16400:30;:::i;:::-;16299:137;;;;:::o;16442:345::-;16509:6;16558:2;16546:9;16537:7;16533:23;16529:32;16526:119;;;16564:79;;:::i;:::-;16526:119;16684:1;16709:61;16762:7;16753:6;16742:9;16738:22;16709:61;:::i;:::-;16699:71;;16655:125;16442:345;;;;:::o;16793:166::-;16933:18;16929:1;16921:6;16917:14;16910:42;16793:166;:::o;16965:366::-;17107:3;17128:67;17192:2;17187:3;17128:67;:::i;:::-;17121:74;;17204:93;17293:3;17204:93;:::i;:::-;17322:2;17317:3;17313:12;17306:19;;16965:366;;;:::o;17337:419::-;17503:4;17541:2;17530:9;17526:18;17518:26;;17590:9;17584:4;17580:20;17576:1;17565:9;17561:17;17554:47;17618:131;17744:4;17618:131;:::i;:::-;17610:139;;17337:419;;;:::o;17762:221::-;17902:34;17898:1;17890:6;17886:14;17879:58;17971:4;17966:2;17958:6;17954:15;17947:29;17762:221;:::o;17989:366::-;18131:3;18152:67;18216:2;18211:3;18152:67;:::i;:::-;18145:74;;18228:93;18317:3;18228:93;:::i;:::-;18346:2;18341:3;18337:12;18330:19;;17989:366;;;:::o;18361:419::-;18527:4;18565:2;18554:9;18550:18;18542:26;;18614:9;18608:4;18604:20;18600:1;18589:9;18585:17;18578:47;18642:131;18768:4;18642:131;:::i;:::-;18634:139;;18361:419;;;:::o;18786:168::-;18926:20;18922:1;18914:6;18910:14;18903:44;18786:168;:::o;18960:366::-;19102:3;19123:67;19187:2;19182:3;19123:67;:::i;:::-;19116:74;;19199:93;19288:3;19199:93;:::i;:::-;19317:2;19312:3;19308:12;19301:19;;18960:366;;;:::o;19332:419::-;19498:4;19536:2;19525:9;19521:18;19513:26;;19585:9;19579:4;19575:20;19571:1;19560:9;19556:17;19549:47;19613:131;19739:4;19613:131;:::i;:::-;19605:139;;19332:419;;;:::o;19757:166::-;19897:18;19893:1;19885:6;19881:14;19874:42;19757:166;:::o;19929:366::-;20071:3;20092:67;20156:2;20151:3;20092:67;:::i;:::-;20085:74;;20168:93;20257:3;20168:93;:::i;:::-;20286:2;20281:3;20277:12;20270:19;;19929:366;;;:::o;20301:419::-;20467:4;20505:2;20494:9;20490:18;20482:26;;20554:9;20548:4;20544:20;20540:1;20529:9;20525:17;20518:47;20582:131;20708:4;20582:131;:::i;:::-;20574:139;;20301:419;;;:::o;20726:332::-;20847:4;20885:2;20874:9;20870:18;20862:26;;20898:71;20966:1;20955:9;20951:17;20942:6;20898:71;:::i;:::-;20979:72;21047:2;21036:9;21032:18;21023:6;20979:72;:::i;:::-;20726:332;;;;;:::o;21064:172::-;21204:24;21200:1;21192:6;21188:14;21181:48;21064:172;:::o;21242:366::-;21384:3;21405:67;21469:2;21464:3;21405:67;:::i;:::-;21398:74;;21481:93;21570:3;21481:93;:::i;:::-;21599:2;21594:3;21590:12;21583:19;;21242:366;;;:::o;21614:419::-;21780:4;21818:2;21807:9;21803:18;21795:26;;21867:9;21861:4;21857:20;21853:1;21842:9;21838:17;21831:47;21895:131;22021:4;21895:131;:::i;:::-;21887:139;;21614:419;;;:::o;22039:170::-;22179:22;22175:1;22167:6;22163:14;22156:46;22039:170;:::o;22215:366::-;22357:3;22378:67;22442:2;22437:3;22378:67;:::i;:::-;22371:74;;22454:93;22543:3;22454:93;:::i;:::-;22572:2;22567:3;22563:12;22556:19;;22215:366;;;:::o;22587:419::-;22753:4;22791:2;22780:9;22776:18;22768:26;;22840:9;22834:4;22830:20;22826:1;22815:9;22811:17;22804:47;22868:131;22994:4;22868:131;:::i;:::-;22860:139;;22587:419;;;:::o;23012:442::-;23161:4;23199:2;23188:9;23184:18;23176:26;;23212:71;23280:1;23269:9;23265:17;23256:6;23212:71;:::i;:::-;23293:72;23361:2;23350:9;23346:18;23337:6;23293:72;:::i;:::-;23375;23443:2;23432:9;23428:18;23419:6;23375:72;:::i;:::-;23012:442;;;;;;:::o;23460:180::-;23508:77;23505:1;23498:88;23605:4;23602:1;23595:15;23629:4;23626:1;23619:15;23646:180;23694:77;23691:1;23684:88;23791:4;23788:1;23781:15;23815:4;23812:1;23805:15;23832:180;23880:77;23877:1;23870:88;23977:4;23974:1;23967:15;24001:4;23998:1;23991:15;24018:185;24058:1;24075:20;24093:1;24075:20;:::i;:::-;24070:25;;24109:20;24127:1;24109:20;:::i;:::-;24104:25;;24148:1;24138:35;;24153:18;;:::i;:::-;24138:35;24195:1;24192;24188:9;24183:14;;24018:185;;;;:::o
Swarm Source
ipfs://3b976cbfa2d8afbb50ad5128aaacf9ab53740aa5afa90e38ca5ce2b4121515b4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.