mirror of
https://github.com/luxfhe/example-blind-auction-v2.git
synced 2026-10-30 18:13:35 +00:00
1054 lines
96 KiB
JSON
1054 lines
96 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "ExampleToken",
|
|
"sourceName": "contracts/ExampleToken.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "symbol",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "initialBalance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "encryptedBalance",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AccessControlBadConfirmation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "neededRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "AccessControlUnauthorizedAccount",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ECDSAInvalidSignature",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "length",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureLength",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "s",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureS",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "allowance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "needed",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ERC20InsufficientAllowance",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "needed",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ERC20InsufficientBalance",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "approver",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ERC20InvalidApprover",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "receiver",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ERC20InvalidReceiver",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ERC20InvalidSender",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ERC20InvalidSpender",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ErrorInsufficientFunds",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidShortString",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "SignerNotMessageSender",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "SignerNotOwner",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "str",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "StringTooLong",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "Approval",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ApprovalEncrypted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [],
|
|
"name": "EIP712DomainChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "previousAdminRole",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "newAdminRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "RoleAdminChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RoleGranted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RoleRevoked",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "Transfer",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "TransferEncrypted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "MINTER_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "_allowanceEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "allowance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "publicKey",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "signature",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct Permission",
|
|
"name": "permission",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "allowanceEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "approve",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "value",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "approveEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "balanceOf",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "publicKey",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "signature",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct Permission",
|
|
"name": "auth",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "balanceOfEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "decimals",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "eip712Domain",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes1",
|
|
"name": "fields",
|
|
"type": "bytes1"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "version",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "chainId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "verifyingContract",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "salt",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256[]",
|
|
"name": "extensions",
|
|
"type": "uint256[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "getRoleAdmin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "grantRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "hasRole",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "amount",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "mintEncrypted",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "amount",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "mintEncryptedDebug",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "name",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "callerConfirmation",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "renounceRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "revokeRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "symbol",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "totalSupply",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transfer",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "encryptedAmount",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "transferEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transferEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transferFrom",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct inEuint32",
|
|
"name": "value",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "transferFromEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transferFromEncrypted",
|
|
"outputs": [
|
|
{
|
|
"internalType": "euint32",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "amount",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"name": "unwrap",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint32",
|
|
"name": "amount",
|
|
"type": "uint32"
|
|
}
|
|
],
|
|
"name": "wrap",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x610160604052620000176000620001f660201b60201c565b6009553480156200002757600080fd5b50604051620055e2380380620055e283398181016040528101906200004d919062000ead565b83836040518060400160405280601181526020017f4668656e6978205065726d697373696f6e0000000000000000000000000000008152506040518060400160405280600381526020017f312e30000000000000000000000000000000000000000000000000000000000081525083838160039081620000ce9190620011bd565b508060049081620000e09190620011bd565b505050620000f96005836200021260201b90919060201c565b6101208181525050620001176006826200021260201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001566200026a60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050505050620001a73383620002c760201b60201c565b620001b933826200035460201b60201c565b620001eb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200041060201b60201c565b5050505050620016df565b60006200020b8260026200051460201b60201c565b9050919050565b600060208351101562000238576200023083620005cb60201b60201c565b905062000264565b826200024a836200063860201b60201c565b60000190816200025b9190620011bd565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620002ac95949392919062001315565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200033c5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000333919062001372565b60405180910390fd5b62000350600083836200064260201b60201c565b5050565b600062000367826200087260201b60201c565b9050620003b4600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548262000890565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004056009548262000890565b600981905550505050565b6000620004248383620008ac60201b60201c565b62000509576001600a600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004a56200091760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506200050e565b600090505b92915050565b60006060608073ffffffffffffffffffffffffffffffffffffffff166319e1c5c462000546866200091f60201b60201c565b856040518363ffffffff1660e01b8152600401620005669291906200140a565b600060405180830381865afa15801562000584573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620005af91906200143e565b9050620005c2816200098060201b60201c565b91505092915050565b600080829050601f815111156200061b57826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620006129190620014e1565b60405180910390fd5b80518162000629906200152c565b60001c1760001b915050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006985780600260008282546200068b9190620015cb565b925050819055506200076e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000727578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200071e9392919062001606565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007b9578060026000828254039250508190555062000806565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000865919062001643565b60405180910390a3505050565b60006200088982600001516200098e60201b60201c565b9050919050565b6000620008a48383620009aa60201b60201c565b905092915050565b6000600a600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6060602067ffffffffffffffff8111156200093f576200093e62000bee565b5b6040519080825280601f01601f191660200182016040528015620009725781602001600182028036833780820191505090505b509050816020820152919050565b600060208201519050919050565b6000620009a382600262000a4c60201b60201c565b9050919050565b6000620009bd8362000af360201b60201c565b620009d757620009d46000620001f660201b60201c565b92505b620009e88262000af360201b60201c565b62000a0257620009ff6000620001f660201b60201c565b91505b60008390506000839050600062000a3e60028484608073ffffffffffffffffffffffffffffffffffffffff16622df61962000b0060201b60201c565b905080935050505092915050565b60006060608073ffffffffffffffffffffffffffffffffffffffff16635fa55ca784866040518363ffffffff1660e01b815260040162000a8e92919062001660565b600060405180830381865afa15801562000aac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062000ad791906200143e565b905062000aea816200098060201b60201c565b91505092915050565b6000808214159050919050565b6000606083838862000b18896200091f60201b60201c565b62000b29896200091f60201b60201c565b6040518463ffffffff1660e01b815260040162000b499392919062001694565b600060405180830381865afa15801562000b67573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062000b9291906200143e565b905062000ba58162000bb160201b60201c565b91505095945050505050565b600060208201519050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000c288262000bdd565b810181811067ffffffffffffffff8211171562000c4a5762000c4962000bee565b5b80604052505050565b600062000c5f62000bbf565b905062000c6d828262000c1d565b919050565b600067ffffffffffffffff82111562000c905762000c8f62000bee565b5b62000c9b8262000bdd565b9050602081019050919050565b60005b8381101562000cc857808201518184015260208101905062000cab565b60008484015250505050565b600062000ceb62000ce58462000c72565b62000c53565b90508281526020810184848401111562000d0a5762000d0962000bd8565b5b62000d1784828562000ca8565b509392505050565b600082601f83011262000d375762000d3662000bd3565b5b815162000d4984826020860162000cd4565b91505092915050565b6000819050919050565b62000d678162000d52565b811462000d7357600080fd5b50565b60008151905062000d878162000d5c565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111562000db55762000db462000bee565b5b62000dc08262000bdd565b9050602081019050919050565b600062000de462000dde8462000d97565b62000c53565b90508281526020810184848401111562000e035762000e0262000bd8565b5b62000e1084828562000ca8565b509392505050565b600082601f83011262000e305762000e2f62000bd3565b5b815162000e4284826020860162000dcd565b91505092915050565b60006020828403121562000e645762000e6362000d8d565b5b62000e70602062000c53565b9050600082015167ffffffffffffffff81111562000e935762000e9262000d92565b5b62000ea18482850162000e18565b60008301525092915050565b6000806000806080858703121562000eca5762000ec962000bc9565b5b600085015167ffffffffffffffff81111562000eeb5762000eea62000bce565b5b62000ef98782880162000d1f565b945050602085015167ffffffffffffffff81111562000f1d5762000f1c62000bce565b5b62000f2b8782880162000d1f565b935050604062000f3e8782880162000d76565b925050606085015167ffffffffffffffff81111562000f625762000f6162000bce565b5b62000f708782880162000e4b565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fcf57607f821691505b60208210810362000fe55762000fe462000f87565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200104f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001010565b6200105b868362001010565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200109e62001098620010928462000d52565b62001073565b62000d52565b9050919050565b6000819050919050565b620010ba836200107d565b620010d2620010c982620010a5565b8484546200101d565b825550505050565b600090565b620010e9620010da565b620010f6818484620010af565b505050565b5b818110156200111e5762001112600082620010df565b600181019050620010fc565b5050565b601f8211156200116d57620011378162000feb565b620011428462001000565b8101602085101562001152578190505b6200116a620011618562001000565b830182620010fb565b50505b505050565b600082821c905092915050565b6000620011926000198460080262001172565b1980831691505092915050565b6000620011ad83836200117f565b9150826002028217905092915050565b620011c88262000f7c565b67ffffffffffffffff811115620011e457620011e362000bee565b5b620011f0825462000fb6565b620011fd82828562001122565b600060209050601f83116001811462001235576000841562001220578287015190505b6200122c85826200119f565b8655506200129c565b601f198416620012458662000feb565b60005b828110156200126f5784890151825560018201915060208501945060208101905062001248565b868310156200128f57848901516200128b601f8916826200117f565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b620012b981620012a4565b82525050565b620012ca8162000d52565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012fd82620012d0565b9050919050565b6200130f81620012f0565b82525050565b600060a0820190506200132c6000830188620012ae565b6200133b6020830187620012ae565b6200134a6040830186620012ae565b620013596060830185620012bf565b62001368608083018462001304565b9695505050505050565b600060208201905062001389600083018462001304565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620013b8826200138f565b620013c481856200139a565b9350620013d681856020860162000ca8565b620013e18162000bdd565b840191505092915050565b600060ff82169050919050565b6200140481620013ec565b82525050565b60006040820190508181036000830152620014268185620013ab565b9050620014376020830184620013f9565b9392505050565b60006020828403121562001457576200145662000bc9565b5b600082015167ffffffffffffffff81111562001478576200147762000bce565b5b620014868482850162000e18565b91505092915050565b600082825260208201905092915050565b6000620014ad8262000f7c565b620014b981856200148f565b9350620014cb81856020860162000ca8565b620014d68162000bdd565b840191505092915050565b60006020820190508181036000830152620014fd8184620014a0565b905092915050565b6000819050602082019050919050565b6000620015238251620012a4565b80915050919050565b600062001539826200138f565b82620015458462001505565b9050620015528162001515565b925060208210156200159557620015907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262001010565b831692505b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620015d88262000d52565b9150620015e58362000d52565b92508282019050808211156200160057620015ff6200159c565b5b92915050565b60006060820190506200161d600083018662001304565b6200162c6020830185620012bf565b6200163b6040830184620012bf565b949350505050565b60006020820190506200165a6000830184620012bf565b92915050565b6000604082019050620016776000830185620013f9565b81810360208301526200168b8184620013ab565b90509392505050565b6000606082019050620016ab6000830186620013f9565b8181036020830152620016bf8185620013ab565b90508181036040830152620016d58184620013ab565b9050949350505050565b60805160a05160c05160e051610100516101205161014051613ea86200173a60003960006119440152600061190901526000612a8501526000612a64015260006121a5015260006121fb015260006122240152613ea86000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636e0505e111610104578063a217fddf116100a2578063d539139311610071578063d5391393146105e1578063d547741f146105ff578063d918156e1461061b578063dd62ed3e1461064b576101da565b8063a217fddf14610533578063a9059cbb14610551578063af575a0014610581578063c4224c19146105b1576101da565b80638624a349116100de5780638624a3491461049957806391d14854146104c957806395d89b41146104f95780639f284be714610517576101da565b80636e0505e11461042957806370a082311461044557806384b0196e14610475576101da565b8063248a9ca31161017c57806339c217f71161014b57806339c217f71461037d5780634e6db477146103ad5780635356c429146103c957806360277204146103f9576101da565b8063248a9ca3146102f75780632f2ff15d14610327578063313ce5671461034357806336568abe14610361576101da565b80631656cef3116101b85780631656cef31461025d57806318160ddd1461027957806323b872dd1461029757806323db9354146102c7576101da565b806301ffc9a7146101df57806306fdde031461020f578063095ea7b31461022d575b600080fd5b6101f960048036038101906101f49190612e22565b61067b565b6040516102069190612e6a565b60405180910390f35b6102176106f5565b6040516102249190612f15565b60405180910390f35b61024760048036038101906102429190612fcb565b610787565b6040516102549190612e6a565b60405180910390f35b610277600480360381019061027291906131a2565b6107aa565b005b6102816107b7565b60405161028e91906131fa565b60405180910390f35b6102b160048036038101906102ac9190613215565b6107c1565b6040516102be9190612e6a565b60405180910390f35b6102e160048036038101906102dc9190613268565b6107f0565b6040516102ee91906132e3565b60405180910390f35b610311600480360381019061030c9190613334565b610877565b60405161031e9190613370565b60405180910390f35b610341600480360381019061033c919061338b565b610897565b005b61034b6108b9565b60405161035891906133e7565b60405180910390f35b61037b6004803603810190610376919061338b565b6108c2565b005b61039760048036038101906103929190613426565b61093d565b6040516103a491906132e3565b60405180910390f35b6103c760048036038101906103c29190613482565b610962565b005b6103e360048036038101906103de91906134fd565b6109a0565b6040516103f091906135ae565b60405180910390f35b610413600480360381019061040e919061363c565b610a9e565b60405161042091906135ae565b60405180910390f35b610443600480360381019061043e91906136d4565b610bd4565b005b61045f600480360381019061045a9190613701565b610d0b565b60405161046c91906131fa565b60405180910390f35b61047d610d53565b6040516104909796959493929190613836565b60405180910390f35b6104b360048036038101906104ae91906138ba565b610dfd565b6040516104c091906132e3565b60405180910390f35b6104e360048036038101906104de919061338b565b610e3b565b6040516104f09190612e6a565b60405180910390f35b610501610ea6565b60405161050e9190612f15565b60405180910390f35b610531600480360381019061052c91906136d4565b610f38565b005b61053b611045565b6040516105489190613370565b60405180910390f35b61056b60048036038101906105669190612fcb565b61104c565b6040516105789190612e6a565b60405180910390f35b61059b60048036038101906105969190613955565b61106f565b6040516105a891906132e3565b60405180910390f35b6105cb60048036038101906105c691906139a8565b61109c565b6040516105d891906132e3565b60405180910390f35b6105e96110b1565b6040516105f69190613370565b60405180910390f35b6106196004803603810190610614919061338b565b6110d5565b005b61063560048036038101906106309190613426565b6110f7565b6040516106429190612e6a565b60405180910390f35b61066560048036038101906106609190613268565b61111f565b60405161067291906131fa565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106ee57506106ed826111a6565b5b9050919050565b60606003805461070490613a17565b80601f016020809104026020016040519081016040528092919081815260200182805461073090613a17565b801561077d5780601f106107525761010080835404028352916020019161077d565b820191906000526020600020905b81548152906001019060200180831161076057829003601f168201915b5050505050905090565b600080610792611210565b905061079f818585611218565b600191505092915050565b6107b4338261122a565b50565b6000600254905090565b6000806107cc611210565b90506107d98582856112da565b6107e485858561136e565b60019150509392505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a6000838152602001908152602001600020600101549050919050565b6108a082610877565b6108a981611462565b6108b38383611476565b50505050565b60006012905090565b6108ca611210565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461092e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109388282611568565b505050565b600061095a836109558461095090613a48565b61165b565b61109c565b905092915050565b61098c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610e3b565b1561099c5761099b828261122a565b5b5050565b6060816109ac90613a5b565b6000610a037f6bdaeb2d29561f159c7ef98b16b27015fb2aeb87209c7ee656226d912f59927d83600001516040516020016109e8929190613a6e565b60405160208183030381529060405280519060200120611671565b90506000610a1582846020015161168b565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f3093a27700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a93610a8933886107f0565b86600001356116b7565b935050505092915050565b606081836000610af97f6bdaeb2d29561f159c7ef98b16b27015fb2aeb87209c7ee656226d912f59927d8460000151604051602001610ade929190613a6e565b60405160208183030381529060405280519060200120611671565b90506000610b0b82856020015161168b565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f51c65eae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bc88660000151600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ed90919063ffffffff16565b94505050505092915050565b6000610be58263ffffffff16611701565b90506000610c4e610c3e83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171590919063ffffffff16565b610c486000611701565b84611729565b9050610c99600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826117a7565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce8600954826117a7565b600981905550610d0633610cfb836117bb565b63ffffffff1661187e565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060608060008060006060610d67611900565b610d6f61193b565b46306000801b600067ffffffffffffffff811115610d9057610d8f613010565b5b604051908082528060200260200182016040528015610dbe5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b600080610e1283610e0d90613a48565b61165b565b90506000610e21863384611976565b9050610e2e8686836119b3565b5080925050509392505050565b6000600a600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054610eb590613a17565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee190613a17565b8015610f2e5780601f10610f0357610100808354040283529160200191610f2e565b820191906000526020600020905b815481529060010190602001808311610f1157829003601f168201915b5050505050905090565b8063ffffffff16610f4833610d0b565b1015610f80576040517ffda7bbda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f90338263ffffffff16611b40565b6000610fa18263ffffffff16611701565b9050610fec600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061103b60095482611bc2565b6009819055505050565b6000801b81565b600080611057611210565b905061106481858561136e565b600191505092915050565b6000808290506000611082863384611976565b905061108f8686836119b3565b5080925050509392505050565b60006110a93384846119b3565b905092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6110de82610877565b6110e781611462565b6110f18383611568565b50505050565b600061111533846111108561110b90613a48565b61165b565b611bd6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6112258383836001611d40565b505050565b60006112358261165b565b9050611280600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112cf60095482611bc2565b600981905550505050565b60006112e6848461111f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113685781811015611358578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161134f93929190613a97565b60405180910390fd5b61136784848484036000611d40565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016113d79190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114525760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114499190613ace565b60405180910390fd5b61145d838383611f17565b505050565b6114738161146e611210565b61213c565b50565b60006114828383610e3b565b61155d576001600a600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114fa611210565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611562565b600090505b92915050565b60006115748383610e3b565b15611650576000600a600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115ed611210565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611655565b600090505b92915050565b600061166a826000015161218d565b9050919050565b600061168461167e6121a1565b83612258565b9050919050565b60008060008061169b8686612299565b9250925092506116ab82826122f5565b82935050505092915050565b60606116c283612459565b6116d3576116d06000611701565b92505b60008390506116e460028285612466565b91505092915050565b60606116f983836116b7565b905092915050565b600061170e82600261251c565b9050919050565b600061172183836125be565b905092915050565b600061173484612637565b611745576117426000612644565b93505b61174e83612459565b61175f5761175c6000611701565b92505b61176882612459565b611779576117766000611701565b91505b60008490506000849050600084905060006117976002858585612658565b9050809450505050509392505050565b60006117b38383612710565b905092915050565b60006117c682612459565b6117d7576117d46000611701565b91505b600082905060006117e782612789565b90506000608073ffffffffffffffffffffffffffffffffffffffff166373cc01546002846040518363ffffffff1660e01b8152600401611828929190613ae9565b602060405180830381865afa158015611845573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190613b2e565b9050611874816127e6565b9350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f05760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016118e79190613ace565b60405180910390fd5b6118fc60008383611f17565b5050565b606061193660057f00000000000000000000000000000000000000000000000000000000000000006127f090919063ffffffff16565b905090565b606061197160067f00000000000000000000000000000000000000000000000000000000000000006127f090919063ffffffff16565b905090565b60008061198385856107f0565b9050600061199182856128a0565b90506119a786866119a285856117a7565b611bd6565b80925050509392505050565b600080611a1b611a0b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561291990919063ffffffff16565b84611a166000611701565b611729565b9050611a66600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af2600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826117a7565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bb25760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ba99190613ace565b60405180910390fd5b611bbe82600083611f17565b5050565b6000611bce838361292d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c485760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611c3f9190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cba5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611cb19190613ace565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611db25760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611da99190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e245760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611e1b9190613ace565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015611f11578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f0891906131fa565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f69578060026000828254611f5d9190613b8a565b9250508190555061203c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ff5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611fec93929190613a97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208557806002600082825403925050819055506120d2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161212f91906131fa565b60405180910390a3505050565b6121468282610e3b565b6121895780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612180929190613bbe565b60405180910390fd5b5050565b600061219a8260026129a5565b9050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561221d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561224a577f00000000000000000000000000000000000000000000000000000000000000009050612255565b612252612a3f565b90505b90565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b600080600060418451036122de5760008060006020870151925060408701519150606087015160001a90506122d088828585612ad5565b9550955095505050506122ee565b60006002855160001b9250925092505b9250925092565b6000600381111561230957612308613be7565b5b82600381111561231c5761231b613be7565b5b0315612455576001600381111561233657612335613be7565b5b82600381111561234957612348613be7565b5b03612380576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561239457612393613be7565b5b8260038111156123a7576123a6613be7565b5b036123ec578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016123e391906131fa565b60405180910390fd5b6003808111156123ff576123fe613be7565b5b82600381111561241257612411613be7565b5b0361245457806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161244b9190613370565b60405180910390fd5b5b5050565b6000808214159050919050565b6060608073ffffffffffffffffffffffffffffffffffffffff1663a1848ff38561248f86612789565b856040516020016124a09190613c37565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016124cd93929190613c52565b600060405180830381865afa1580156124ea573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125139190613d07565b90509392505050565b60006060608073ffffffffffffffffffffffffffffffffffffffff166319e1c5c461254686612789565b856040518363ffffffff1660e01b8152600401612564929190613d50565b600060405180830381865afa158015612581573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125aa9190613d07565b90506125b581612bc9565b91505092915050565b60006125c983612459565b6125da576125d76000611701565b92505b6125e382612459565b6125f4576125f16000611701565b91505b60008390506000839050600061262960028484608073ffffffffffffffffffffffffffffffffffffffff1663874b1c10612bd7565b905080935050505092915050565b6000808214159050919050565b600061265182600061251c565b9050919050565b60006060608073ffffffffffffffffffffffffffffffffffffffff1663c2d969528761268388612789565b61268c88612789565b61269588612789565b6040518563ffffffff1660e01b81526004016126b49493929190613d80565b600060405180830381865afa1580156126d1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906126fa9190613d07565b905061270581612bc9565b915050949350505050565b600061271b83612459565b61272c576127296000611701565b92505b61273582612459565b612746576127436000611701565b91505b60008390506000839050600061277b60028484608073ffffffffffffffffffffffffffffffffffffffff1663cc2cbeff612bd7565b905080935050505092915050565b6060602067ffffffffffffffff8111156127a6576127a5613010565b5b6040519080825280601f01601f1916602001820160405280156127d85781602001600182028036833780820191505090505b509050816020820152919050565b6000819050919050565b606060ff60001b831461280d5761280683612c6b565b905061289a565b81805461281990613a17565b80601f016020809104026020016040519081016040528092919081815260200182805461284590613a17565b80156128925780601f1061286757610100808354040283529160200191612892565b820191906000526020600020905b81548152906001019060200180831161287557829003601f168201915b505050505090505b92915050565b60006128ab83612459565b6128bc576128b96000611701565b92505b6128c582612459565b6128d6576128d36000611701565b91505b60008390506000839050600061290b60028484608073ffffffffffffffffffffffffffffffffffffffff16635211c679612bd7565b905080935050505092915050565b60006129258383612cdf565b905092915050565b600061293883612459565b612949576129466000611701565b92505b61295282612459565b612963576129606000611701565b91505b60008390506000839050600061299760028484608073ffffffffffffffffffffffffffffffffffffffff16622df619612bd7565b905080935050505092915050565b60006060608073ffffffffffffffffffffffffffffffffffffffff16635fa55ca784866040518363ffffffff1660e01b81526004016129e5929190613ae9565b600060405180830381865afa158015612a02573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612a2b9190613d07565b9050612a3681612bc9565b91505092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612aba959493929190613dda565b60405160208183030381529060405280519060200120905090565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115612b15576000600385925092509250612bbf565b600060018888888860405160008152602001604052604051612b3a9493929190613e2d565b6020604051602081039080840390855afa158015612b5c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bb057600060016000801b93509350935050612bbf565b8060008060001b935093509350505b9450945094915050565b600060208201519050919050565b60006060838388612be789612789565b612bf089612789565b6040518463ffffffff1660e01b8152600401612c0e93929190613c52565b600060405180830381865afa158015612c2b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612c549190613d07565b9050612c5f81612d58565b91505095945050505050565b60606000612c7883612d66565b90506000602067ffffffffffffffff811115612c9757612c96613010565b5b6040519080825280601f01601f191660200182016040528015612cc95781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6000612cea83612459565b612cfb57612cf86000611701565b92505b612d0482612459565b612d1557612d126000611701565b91505b600083905060008390506000612d4a60028484608073ffffffffffffffffffffffffffffffffffffffff1663b9c7a54b612bd7565b905080935050505092915050565b600060208201519050919050565b60008060ff8360001c169050601f811115612dad576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612dff81612dca565b8114612e0a57600080fd5b50565b600081359050612e1c81612df6565b92915050565b600060208284031215612e3857612e37612dc0565b5b6000612e4684828501612e0d565b91505092915050565b60008115159050919050565b612e6481612e4f565b82525050565b6000602082019050612e7f6000830184612e5b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ebf578082015181840152602081019050612ea4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ee782612e85565b612ef18185612e90565b9350612f01818560208601612ea1565b612f0a81612ecb565b840191505092915050565b60006020820190508181036000830152612f2f8184612edc565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6282612f37565b9050919050565b612f7281612f57565b8114612f7d57600080fd5b50565b600081359050612f8f81612f69565b92915050565b6000819050919050565b612fa881612f95565b8114612fb357600080fd5b50565b600081359050612fc581612f9f565b92915050565b60008060408385031215612fe257612fe1612dc0565b5b6000612ff085828601612f80565b925050602061300185828601612fb6565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61304882612ecb565b810181811067ffffffffffffffff8211171561306757613066613010565b5b80604052505050565b600061307a612db6565b9050613086828261303f565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff8211156130b5576130b4613010565b5b6130be82612ecb565b9050602081019050919050565b82818337600083830152505050565b60006130ed6130e88461309a565b613070565b90508281526020810184848401111561310957613108613095565b5b6131148482856130cb565b509392505050565b600082601f83011261313157613130613090565b5b81356131418482602086016130da565b91505092915050565b6000602082840312156131605761315f61300b565b5b61316a6020613070565b9050600082013567ffffffffffffffff81111561318a5761318961308b565b5b6131968482850161311c565b60008301525092915050565b6000602082840312156131b8576131b7612dc0565b5b600082013567ffffffffffffffff8111156131d6576131d5612dc5565b5b6131e28482850161314a565b91505092915050565b6131f481612f95565b82525050565b600060208201905061320f60008301846131eb565b92915050565b60008060006060848603121561322e5761322d612dc0565b5b600061323c86828701612f80565b935050602061324d86828701612f80565b925050604061325e86828701612fb6565b9150509250925092565b6000806040838503121561327f5761327e612dc0565b5b600061328d85828601612f80565b925050602061329e85828601612f80565b9150509250929050565b6000819050919050565b60006132cd6132c86132c384612f95565b6132a8565b612f95565b9050919050565b6132dd816132b2565b82525050565b60006020820190506132f860008301846132d4565b92915050565b6000819050919050565b613311816132fe565b811461331c57600080fd5b50565b60008135905061332e81613308565b92915050565b60006020828403121561334a57613349612dc0565b5b60006133588482850161331f565b91505092915050565b61336a816132fe565b82525050565b60006020820190506133856000830184613361565b92915050565b600080604083850312156133a2576133a1612dc0565b5b60006133b08582860161331f565b92505060206133c185828601612f80565b9150509250929050565b600060ff82169050919050565b6133e1816133cb565b82525050565b60006020820190506133fc60008301846133d8565b92915050565b600080fd5b60006020828403121561341d5761341c613402565b5b81905092915050565b6000806040838503121561343d5761343c612dc0565b5b600061344b85828601612f80565b925050602083013567ffffffffffffffff81111561346c5761346b612dc5565b5b61347885828601613407565b9150509250929050565b6000806040838503121561349957613498612dc0565b5b60006134a785828601612f80565b925050602083013567ffffffffffffffff8111156134c8576134c7612dc5565b5b6134d48582860161314a565b9150509250929050565b6000604082840312156134f4576134f3613402565b5b81905092915050565b6000806040838503121561351457613513612dc0565b5b600061352285828601612f80565b925050602083013567ffffffffffffffff81111561354357613542612dc5565b5b61354f858286016134de565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b600061358082613559565b61358a8185613564565b935061359a818560208601612ea1565b6135a381612ecb565b840191505092915050565b600060208201905081810360008301526135c88184613575565b905092915050565b6000604082840312156135e6576135e561300b565b5b6135f06040613070565b905060006136008482850161331f565b600083015250602082013567ffffffffffffffff8111156136245761362361308b565b5b6136308482850161311c565b60208301525092915050565b6000806040838503121561365357613652612dc0565b5b600061366185828601612f80565b925050602083013567ffffffffffffffff81111561368257613681612dc5565b5b61368e858286016135d0565b9150509250929050565b600063ffffffff82169050919050565b6136b181613698565b81146136bc57600080fd5b50565b6000813590506136ce816136a8565b92915050565b6000602082840312156136ea576136e9612dc0565b5b60006136f8848285016136bf565b91505092915050565b60006020828403121561371757613716612dc0565b5b600061372584828501612f80565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6137638161372e565b82525050565b61377281612f57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137ad81612f95565b82525050565b60006137bf83836137a4565b60208301905092915050565b6000602082019050919050565b60006137e382613778565b6137ed8185613783565b93506137f883613794565b8060005b8381101561382957815161381088826137b3565b975061381b836137cb565b9250506001810190506137fc565b5085935050505092915050565b600060e08201905061384b600083018a61375a565b818103602083015261385d8189612edc565b905081810360408301526138718188612edc565b905061388060608301876131eb565b61388d6080830186613769565b61389a60a0830185613361565b81810360c08301526138ac81846137d8565b905098975050505050505050565b6000806000606084860312156138d3576138d2612dc0565b5b60006138e186828701612f80565b93505060206138f286828701612f80565b925050604084013567ffffffffffffffff81111561391357613912612dc5565b5b61391f86828701613407565b9150509250925092565b61393281612f95565b811461393d57600080fd5b50565b60008135905061394f81613929565b92915050565b60008060006060848603121561396e5761396d612dc0565b5b600061397c86828701612f80565b935050602061398d86828701612f80565b925050604061399e86828701613940565b9150509250925092565b600080604083850312156139bf576139be612dc0565b5b60006139cd85828601612f80565b92505060206139de85828601613940565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a2f57607f821691505b602082108103613a4257613a416139e8565b5b50919050565b6000613a54368361314a565b9050919050565b6000613a6736836135d0565b9050919050565b6000604082019050613a836000830185613361565b613a906020830184613361565b9392505050565b6000606082019050613aac6000830186613769565b613ab960208301856131eb565b613ac660408301846131eb565b949350505050565b6000602082019050613ae36000830184613769565b92915050565b6000604082019050613afe60008301856133d8565b8181036020830152613b108184613575565b90509392505050565b600081519050613b2881612f9f565b92915050565b600060208284031215613b4457613b43612dc0565b5b6000613b5284828501613b19565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b9582612f95565b9150613ba083612f95565b9250828201905080821115613bb857613bb7613b5b565b5b92915050565b6000604082019050613bd36000830185613769565b613be06020830184613361565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000819050919050565b613c31613c2c826132fe565b613c16565b82525050565b6000613c438284613c20565b60208201915081905092915050565b6000606082019050613c6760008301866133d8565b8181036020830152613c798185613575565b90508181036040830152613c8d8184613575565b9050949350505050565b6000613caa613ca58461309a565b613070565b905082815260208101848484011115613cc657613cc5613095565b5b613cd1848285612ea1565b509392505050565b600082601f830112613cee57613ced613090565b5b8151613cfe848260208601613c97565b91505092915050565b600060208284031215613d1d57613d1c612dc0565b5b600082015167ffffffffffffffff811115613d3b57613d3a612dc5565b5b613d4784828501613cd9565b91505092915050565b60006040820190508181036000830152613d6a8185613575565b9050613d7960208301846133d8565b9392505050565b6000608082019050613d9560008301876133d8565b8181036020830152613da78186613575565b90508181036040830152613dbb8185613575565b90508181036060830152613dcf8184613575565b905095945050505050565b600060a082019050613def6000830188613361565b613dfc6020830187613361565b613e096040830186613361565b613e1660608301856131eb565b613e236080830184613769565b9695505050505050565b6000608082019050613e426000830187613361565b613e4f60208301866133d8565b613e5c6040830185613361565b613e696060830184613361565b9594505050505056fea26469706673582212204191ca7fde56ed184a434d6a38197d5ffb5e7a470de07e023d16d13dd5cfb83b64736f6c63430008140033",
|
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636e0505e111610104578063a217fddf116100a2578063d539139311610071578063d5391393146105e1578063d547741f146105ff578063d918156e1461061b578063dd62ed3e1461064b576101da565b8063a217fddf14610533578063a9059cbb14610551578063af575a0014610581578063c4224c19146105b1576101da565b80638624a349116100de5780638624a3491461049957806391d14854146104c957806395d89b41146104f95780639f284be714610517576101da565b80636e0505e11461042957806370a082311461044557806384b0196e14610475576101da565b8063248a9ca31161017c57806339c217f71161014b57806339c217f71461037d5780634e6db477146103ad5780635356c429146103c957806360277204146103f9576101da565b8063248a9ca3146102f75780632f2ff15d14610327578063313ce5671461034357806336568abe14610361576101da565b80631656cef3116101b85780631656cef31461025d57806318160ddd1461027957806323b872dd1461029757806323db9354146102c7576101da565b806301ffc9a7146101df57806306fdde031461020f578063095ea7b31461022d575b600080fd5b6101f960048036038101906101f49190612e22565b61067b565b6040516102069190612e6a565b60405180910390f35b6102176106f5565b6040516102249190612f15565b60405180910390f35b61024760048036038101906102429190612fcb565b610787565b6040516102549190612e6a565b60405180910390f35b610277600480360381019061027291906131a2565b6107aa565b005b6102816107b7565b60405161028e91906131fa565b60405180910390f35b6102b160048036038101906102ac9190613215565b6107c1565b6040516102be9190612e6a565b60405180910390f35b6102e160048036038101906102dc9190613268565b6107f0565b6040516102ee91906132e3565b60405180910390f35b610311600480360381019061030c9190613334565b610877565b60405161031e9190613370565b60405180910390f35b610341600480360381019061033c919061338b565b610897565b005b61034b6108b9565b60405161035891906133e7565b60405180910390f35b61037b6004803603810190610376919061338b565b6108c2565b005b61039760048036038101906103929190613426565b61093d565b6040516103a491906132e3565b60405180910390f35b6103c760048036038101906103c29190613482565b610962565b005b6103e360048036038101906103de91906134fd565b6109a0565b6040516103f091906135ae565b60405180910390f35b610413600480360381019061040e919061363c565b610a9e565b60405161042091906135ae565b60405180910390f35b610443600480360381019061043e91906136d4565b610bd4565b005b61045f600480360381019061045a9190613701565b610d0b565b60405161046c91906131fa565b60405180910390f35b61047d610d53565b6040516104909796959493929190613836565b60405180910390f35b6104b360048036038101906104ae91906138ba565b610dfd565b6040516104c091906132e3565b60405180910390f35b6104e360048036038101906104de919061338b565b610e3b565b6040516104f09190612e6a565b60405180910390f35b610501610ea6565b60405161050e9190612f15565b60405180910390f35b610531600480360381019061052c91906136d4565b610f38565b005b61053b611045565b6040516105489190613370565b60405180910390f35b61056b60048036038101906105669190612fcb565b61104c565b6040516105789190612e6a565b60405180910390f35b61059b60048036038101906105969190613955565b61106f565b6040516105a891906132e3565b60405180910390f35b6105cb60048036038101906105c691906139a8565b61109c565b6040516105d891906132e3565b60405180910390f35b6105e96110b1565b6040516105f69190613370565b60405180910390f35b6106196004803603810190610614919061338b565b6110d5565b005b61063560048036038101906106309190613426565b6110f7565b6040516106429190612e6a565b60405180910390f35b61066560048036038101906106609190613268565b61111f565b60405161067291906131fa565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106ee57506106ed826111a6565b5b9050919050565b60606003805461070490613a17565b80601f016020809104026020016040519081016040528092919081815260200182805461073090613a17565b801561077d5780601f106107525761010080835404028352916020019161077d565b820191906000526020600020905b81548152906001019060200180831161076057829003601f168201915b5050505050905090565b600080610792611210565b905061079f818585611218565b600191505092915050565b6107b4338261122a565b50565b6000600254905090565b6000806107cc611210565b90506107d98582856112da565b6107e485858561136e565b60019150509392505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a6000838152602001908152602001600020600101549050919050565b6108a082610877565b6108a981611462565b6108b38383611476565b50505050565b60006012905090565b6108ca611210565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461092e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109388282611568565b505050565b600061095a836109558461095090613a48565b61165b565b61109c565b905092915050565b61098c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610e3b565b1561099c5761099b828261122a565b5b5050565b6060816109ac90613a5b565b6000610a037f6bdaeb2d29561f159c7ef98b16b27015fb2aeb87209c7ee656226d912f59927d83600001516040516020016109e8929190613a6e565b60405160208183030381529060405280519060200120611671565b90506000610a1582846020015161168b565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f3093a27700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a93610a8933886107f0565b86600001356116b7565b935050505092915050565b606081836000610af97f6bdaeb2d29561f159c7ef98b16b27015fb2aeb87209c7ee656226d912f59927d8460000151604051602001610ade929190613a6e565b60405160208183030381529060405280519060200120611671565b90506000610b0b82856020015161168b565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f51c65eae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bc88660000151600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ed90919063ffffffff16565b94505050505092915050565b6000610be58263ffffffff16611701565b90506000610c4e610c3e83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171590919063ffffffff16565b610c486000611701565b84611729565b9050610c99600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826117a7565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce8600954826117a7565b600981905550610d0633610cfb836117bb565b63ffffffff1661187e565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060608060008060006060610d67611900565b610d6f61193b565b46306000801b600067ffffffffffffffff811115610d9057610d8f613010565b5b604051908082528060200260200182016040528015610dbe5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b600080610e1283610e0d90613a48565b61165b565b90506000610e21863384611976565b9050610e2e8686836119b3565b5080925050509392505050565b6000600a600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054610eb590613a17565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee190613a17565b8015610f2e5780601f10610f0357610100808354040283529160200191610f2e565b820191906000526020600020905b815481529060010190602001808311610f1157829003601f168201915b5050505050905090565b8063ffffffff16610f4833610d0b565b1015610f80576040517ffda7bbda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f90338263ffffffff16611b40565b6000610fa18263ffffffff16611701565b9050610fec600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061103b60095482611bc2565b6009819055505050565b6000801b81565b600080611057611210565b905061106481858561136e565b600191505092915050565b6000808290506000611082863384611976565b905061108f8686836119b3565b5080925050509392505050565b60006110a93384846119b3565b905092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6110de82610877565b6110e781611462565b6110f18383611568565b50505050565b600061111533846111108561110b90613a48565b61165b565b611bd6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6112258383836001611d40565b505050565b60006112358261165b565b9050611280600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112cf60095482611bc2565b600981905550505050565b60006112e6848461111f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113685781811015611358578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161134f93929190613a97565b60405180910390fd5b61136784848484036000611d40565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016113d79190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114525760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114499190613ace565b60405180910390fd5b61145d838383611f17565b505050565b6114738161146e611210565b61213c565b50565b60006114828383610e3b565b61155d576001600a600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114fa611210565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611562565b600090505b92915050565b60006115748383610e3b565b15611650576000600a600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115ed611210565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611655565b600090505b92915050565b600061166a826000015161218d565b9050919050565b600061168461167e6121a1565b83612258565b9050919050565b60008060008061169b8686612299565b9250925092506116ab82826122f5565b82935050505092915050565b60606116c283612459565b6116d3576116d06000611701565b92505b60008390506116e460028285612466565b91505092915050565b60606116f983836116b7565b905092915050565b600061170e82600261251c565b9050919050565b600061172183836125be565b905092915050565b600061173484612637565b611745576117426000612644565b93505b61174e83612459565b61175f5761175c6000611701565b92505b61176882612459565b611779576117766000611701565b91505b60008490506000849050600084905060006117976002858585612658565b9050809450505050509392505050565b60006117b38383612710565b905092915050565b60006117c682612459565b6117d7576117d46000611701565b91505b600082905060006117e782612789565b90506000608073ffffffffffffffffffffffffffffffffffffffff166373cc01546002846040518363ffffffff1660e01b8152600401611828929190613ae9565b602060405180830381865afa158015611845573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190613b2e565b9050611874816127e6565b9350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f05760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016118e79190613ace565b60405180910390fd5b6118fc60008383611f17565b5050565b606061193660057f00000000000000000000000000000000000000000000000000000000000000006127f090919063ffffffff16565b905090565b606061197160067f00000000000000000000000000000000000000000000000000000000000000006127f090919063ffffffff16565b905090565b60008061198385856107f0565b9050600061199182856128a0565b90506119a786866119a285856117a7565b611bd6565b80925050509392505050565b600080611a1b611a0b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561291990919063ffffffff16565b84611a166000611701565b611729565b9050611a66600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611bc2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af2600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826117a7565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bb25760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ba99190613ace565b60405180910390fd5b611bbe82600083611f17565b5050565b6000611bce838361292d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c485760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611c3f9190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cba5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611cb19190613ace565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611db25760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611da99190613ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e245760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611e1b9190613ace565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015611f11578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611f0891906131fa565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f69578060026000828254611f5d9190613b8a565b9250508190555061203c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ff5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611fec93929190613a97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208557806002600082825403925050819055506120d2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161212f91906131fa565b60405180910390a3505050565b6121468282610e3b565b6121895780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612180929190613bbe565b60405180910390fd5b5050565b600061219a8260026129a5565b9050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561221d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561224a577f00000000000000000000000000000000000000000000000000000000000000009050612255565b612252612a3f565b90505b90565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b600080600060418451036122de5760008060006020870151925060408701519150606087015160001a90506122d088828585612ad5565b9550955095505050506122ee565b60006002855160001b9250925092505b9250925092565b6000600381111561230957612308613be7565b5b82600381111561231c5761231b613be7565b5b0315612455576001600381111561233657612335613be7565b5b82600381111561234957612348613be7565b5b03612380576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561239457612393613be7565b5b8260038111156123a7576123a6613be7565b5b036123ec578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016123e391906131fa565b60405180910390fd5b6003808111156123ff576123fe613be7565b5b82600381111561241257612411613be7565b5b0361245457806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161244b9190613370565b60405180910390fd5b5b5050565b6000808214159050919050565b6060608073ffffffffffffffffffffffffffffffffffffffff1663a1848ff38561248f86612789565b856040516020016124a09190613c37565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016124cd93929190613c52565b600060405180830381865afa1580156124ea573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125139190613d07565b90509392505050565b60006060608073ffffffffffffffffffffffffffffffffffffffff166319e1c5c461254686612789565b856040518363ffffffff1660e01b8152600401612564929190613d50565b600060405180830381865afa158015612581573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906125aa9190613d07565b90506125b581612bc9565b91505092915050565b60006125c983612459565b6125da576125d76000611701565b92505b6125e382612459565b6125f4576125f16000611701565b91505b60008390506000839050600061262960028484608073ffffffffffffffffffffffffffffffffffffffff1663874b1c10612bd7565b905080935050505092915050565b6000808214159050919050565b600061265182600061251c565b9050919050565b60006060608073ffffffffffffffffffffffffffffffffffffffff1663c2d969528761268388612789565b61268c88612789565b61269588612789565b6040518563ffffffff1660e01b81526004016126b49493929190613d80565b600060405180830381865afa1580156126d1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906126fa9190613d07565b905061270581612bc9565b915050949350505050565b600061271b83612459565b61272c576127296000611701565b92505b61273582612459565b612746576127436000611701565b91505b60008390506000839050600061277b60028484608073ffffffffffffffffffffffffffffffffffffffff1663cc2cbeff612bd7565b905080935050505092915050565b6060602067ffffffffffffffff8111156127a6576127a5613010565b5b6040519080825280601f01601f1916602001820160405280156127d85781602001600182028036833780820191505090505b509050816020820152919050565b6000819050919050565b606060ff60001b831461280d5761280683612c6b565b905061289a565b81805461281990613a17565b80601f016020809104026020016040519081016040528092919081815260200182805461284590613a17565b80156128925780601f1061286757610100808354040283529160200191612892565b820191906000526020600020905b81548152906001019060200180831161287557829003601f168201915b505050505090505b92915050565b60006128ab83612459565b6128bc576128b96000611701565b92505b6128c582612459565b6128d6576128d36000611701565b91505b60008390506000839050600061290b60028484608073ffffffffffffffffffffffffffffffffffffffff16635211c679612bd7565b905080935050505092915050565b60006129258383612cdf565b905092915050565b600061293883612459565b612949576129466000611701565b92505b61295282612459565b612963576129606000611701565b91505b60008390506000839050600061299760028484608073ffffffffffffffffffffffffffffffffffffffff16622df619612bd7565b905080935050505092915050565b60006060608073ffffffffffffffffffffffffffffffffffffffff16635fa55ca784866040518363ffffffff1660e01b81526004016129e5929190613ae9565b600060405180830381865afa158015612a02573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612a2b9190613d07565b9050612a3681612bc9565b91505092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612aba959493929190613dda565b60405160208183030381529060405280519060200120905090565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115612b15576000600385925092509250612bbf565b600060018888888860405160008152602001604052604051612b3a9493929190613e2d565b6020604051602081039080840390855afa158015612b5c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bb057600060016000801b93509350935050612bbf565b8060008060001b935093509350505b9450945094915050565b600060208201519050919050565b60006060838388612be789612789565b612bf089612789565b6040518463ffffffff1660e01b8152600401612c0e93929190613c52565b600060405180830381865afa158015612c2b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612c549190613d07565b9050612c5f81612d58565b91505095945050505050565b60606000612c7883612d66565b90506000602067ffffffffffffffff811115612c9757612c96613010565b5b6040519080825280601f01601f191660200182016040528015612cc95781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6000612cea83612459565b612cfb57612cf86000611701565b92505b612d0482612459565b612d1557612d126000611701565b91505b600083905060008390506000612d4a60028484608073ffffffffffffffffffffffffffffffffffffffff1663b9c7a54b612bd7565b905080935050505092915050565b600060208201519050919050565b60008060ff8360001c169050601f811115612dad576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612dff81612dca565b8114612e0a57600080fd5b50565b600081359050612e1c81612df6565b92915050565b600060208284031215612e3857612e37612dc0565b5b6000612e4684828501612e0d565b91505092915050565b60008115159050919050565b612e6481612e4f565b82525050565b6000602082019050612e7f6000830184612e5b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ebf578082015181840152602081019050612ea4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ee782612e85565b612ef18185612e90565b9350612f01818560208601612ea1565b612f0a81612ecb565b840191505092915050565b60006020820190508181036000830152612f2f8184612edc565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6282612f37565b9050919050565b612f7281612f57565b8114612f7d57600080fd5b50565b600081359050612f8f81612f69565b92915050565b6000819050919050565b612fa881612f95565b8114612fb357600080fd5b50565b600081359050612fc581612f9f565b92915050565b60008060408385031215612fe257612fe1612dc0565b5b6000612ff085828601612f80565b925050602061300185828601612fb6565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61304882612ecb565b810181811067ffffffffffffffff8211171561306757613066613010565b5b80604052505050565b600061307a612db6565b9050613086828261303f565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff8211156130b5576130b4613010565b5b6130be82612ecb565b9050602081019050919050565b82818337600083830152505050565b60006130ed6130e88461309a565b613070565b90508281526020810184848401111561310957613108613095565b5b6131148482856130cb565b509392505050565b600082601f83011261313157613130613090565b5b81356131418482602086016130da565b91505092915050565b6000602082840312156131605761315f61300b565b5b61316a6020613070565b9050600082013567ffffffffffffffff81111561318a5761318961308b565b5b6131968482850161311c565b60008301525092915050565b6000602082840312156131b8576131b7612dc0565b5b600082013567ffffffffffffffff8111156131d6576131d5612dc5565b5b6131e28482850161314a565b91505092915050565b6131f481612f95565b82525050565b600060208201905061320f60008301846131eb565b92915050565b60008060006060848603121561322e5761322d612dc0565b5b600061323c86828701612f80565b935050602061324d86828701612f80565b925050604061325e86828701612fb6565b9150509250925092565b6000806040838503121561327f5761327e612dc0565b5b600061328d85828601612f80565b925050602061329e85828601612f80565b9150509250929050565b6000819050919050565b60006132cd6132c86132c384612f95565b6132a8565b612f95565b9050919050565b6132dd816132b2565b82525050565b60006020820190506132f860008301846132d4565b92915050565b6000819050919050565b613311816132fe565b811461331c57600080fd5b50565b60008135905061332e81613308565b92915050565b60006020828403121561334a57613349612dc0565b5b60006133588482850161331f565b91505092915050565b61336a816132fe565b82525050565b60006020820190506133856000830184613361565b92915050565b600080604083850312156133a2576133a1612dc0565b5b60006133b08582860161331f565b92505060206133c185828601612f80565b9150509250929050565b600060ff82169050919050565b6133e1816133cb565b82525050565b60006020820190506133fc60008301846133d8565b92915050565b600080fd5b60006020828403121561341d5761341c613402565b5b81905092915050565b6000806040838503121561343d5761343c612dc0565b5b600061344b85828601612f80565b925050602083013567ffffffffffffffff81111561346c5761346b612dc5565b5b61347885828601613407565b9150509250929050565b6000806040838503121561349957613498612dc0565b5b60006134a785828601612f80565b925050602083013567ffffffffffffffff8111156134c8576134c7612dc5565b5b6134d48582860161314a565b9150509250929050565b6000604082840312156134f4576134f3613402565b5b81905092915050565b6000806040838503121561351457613513612dc0565b5b600061352285828601612f80565b925050602083013567ffffffffffffffff81111561354357613542612dc5565b5b61354f858286016134de565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b600061358082613559565b61358a8185613564565b935061359a818560208601612ea1565b6135a381612ecb565b840191505092915050565b600060208201905081810360008301526135c88184613575565b905092915050565b6000604082840312156135e6576135e561300b565b5b6135f06040613070565b905060006136008482850161331f565b600083015250602082013567ffffffffffffffff8111156136245761362361308b565b5b6136308482850161311c565b60208301525092915050565b6000806040838503121561365357613652612dc0565b5b600061366185828601612f80565b925050602083013567ffffffffffffffff81111561368257613681612dc5565b5b61368e858286016135d0565b9150509250929050565b600063ffffffff82169050919050565b6136b181613698565b81146136bc57600080fd5b50565b6000813590506136ce816136a8565b92915050565b6000602082840312156136ea576136e9612dc0565b5b60006136f8848285016136bf565b91505092915050565b60006020828403121561371757613716612dc0565b5b600061372584828501612f80565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6137638161372e565b82525050565b61377281612f57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137ad81612f95565b82525050565b60006137bf83836137a4565b60208301905092915050565b6000602082019050919050565b60006137e382613778565b6137ed8185613783565b93506137f883613794565b8060005b8381101561382957815161381088826137b3565b975061381b836137cb565b9250506001810190506137fc565b5085935050505092915050565b600060e08201905061384b600083018a61375a565b818103602083015261385d8189612edc565b905081810360408301526138718188612edc565b905061388060608301876131eb565b61388d6080830186613769565b61389a60a0830185613361565b81810360c08301526138ac81846137d8565b905098975050505050505050565b6000806000606084860312156138d3576138d2612dc0565b5b60006138e186828701612f80565b93505060206138f286828701612f80565b925050604084013567ffffffffffffffff81111561391357613912612dc5565b5b61391f86828701613407565b9150509250925092565b61393281612f95565b811461393d57600080fd5b50565b60008135905061394f81613929565b92915050565b60008060006060848603121561396e5761396d612dc0565b5b600061397c86828701612f80565b935050602061398d86828701612f80565b925050604061399e86828701613940565b9150509250925092565b600080604083850312156139bf576139be612dc0565b5b60006139cd85828601612f80565b92505060206139de85828601613940565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a2f57607f821691505b602082108103613a4257613a416139e8565b5b50919050565b6000613a54368361314a565b9050919050565b6000613a6736836135d0565b9050919050565b6000604082019050613a836000830185613361565b613a906020830184613361565b9392505050565b6000606082019050613aac6000830186613769565b613ab960208301856131eb565b613ac660408301846131eb565b949350505050565b6000602082019050613ae36000830184613769565b92915050565b6000604082019050613afe60008301856133d8565b8181036020830152613b108184613575565b90509392505050565b600081519050613b2881612f9f565b92915050565b600060208284031215613b4457613b43612dc0565b5b6000613b5284828501613b19565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b9582612f95565b9150613ba083612f95565b9250828201905080821115613bb857613bb7613b5b565b5b92915050565b6000604082019050613bd36000830185613769565b613be06020830184613361565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000819050919050565b613c31613c2c826132fe565b613c16565b82525050565b6000613c438284613c20565b60208201915081905092915050565b6000606082019050613c6760008301866133d8565b8181036020830152613c798185613575565b90508181036040830152613c8d8184613575565b9050949350505050565b6000613caa613ca58461309a565b613070565b905082815260208101848484011115613cc657613cc5613095565b5b613cd1848285612ea1565b509392505050565b600082601f830112613cee57613ced613090565b5b8151613cfe848260208601613c97565b91505092915050565b600060208284031215613d1d57613d1c612dc0565b5b600082015167ffffffffffffffff811115613d3b57613d3a612dc5565b5b613d4784828501613cd9565b91505092915050565b60006040820190508181036000830152613d6a8185613575565b9050613d7960208301846133d8565b9392505050565b6000608082019050613d9560008301876133d8565b8181036020830152613da78186613575565b90508181036040830152613dbb8185613575565b90508181036060830152613dcf8184613575565b905095945050505050565b600060a082019050613def6000830188613361565b613dfc6020830187613361565b613e096040830186613361565b613e1660608301856131eb565b613e236080830184613769565b9695505050505050565b6000608082019050613e426000830187613361565b613e4f60208301866133d8565b613e5c6040830185613361565b613e696060830184613361565b9594505050505056fea26469706673582212204191ca7fde56ed184a434d6a38197d5ffb5e7a470de07e023d16d13dd5cfb83b64736f6c63430008140033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|