{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20MintBurnProxied",
  "sourceName": "contracts/token/ERC20/preset/proxied/ERC20MintBurnProxied.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "increment",
          "type": "uint256"
        }
      ],
      "name": "ERC20AllowanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20ApprovalToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20BatchMintValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20BatchTransferValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "decrement",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "ERC20PermitExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitFromAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitInvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "ERC20SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20TotalSupplyOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        }
      ],
      "name": "IncorrectTokenContractType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeERC20FailedOperation",
      "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": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "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"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "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": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchBurnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "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": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "tokenDecimals",
          "type": "uint8"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC721[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "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": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "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": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "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": "result",
          "type": "bool"
        }
      ],
      "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": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034607457601f6142c138819003918201601f19168301916001600160401b03831184841017607957808492602094604052833981010312607457516001600160a01b03811681036074576080526040516142319081610090823960805181818161291d01528181612e080152613f7d0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714612b6757806306fdde0314612b0c578063095ea7b314612a9f57806318160ddd14612a445780631b9a752914612a0057806323b872dd146129415780632b4c9f16146128d25780632f2ff15d14612746578063313ce567146126e85780633644e515146126a757806339509351146124775780633c130d901461241c57806340c10f191461225957806342966c68146121f55780634885b25414612147578063572b6c05146120fc5780636857310714611fe157806370a0823114611f5c57806373c8a95814611dd957806379cc679014611d245780637ecebe0014611c9f57806388d695b214611c5b5780638bb9c5bf14611aec5780638da5cb5b14611a7b57806391d14854146119e357806395d89b4114611970578063a457c2d714611903578063a9059cbb14611896578063b88d4fde14611786578063c3666c3614611549578063d505accf146112d6578063d53913931461127d578063d547741f146110f4578063dd62ed3e14611045578063e0df5b6f14610e29578063eb79554914610d64578063f2fde38b14610c70578063f57b0182146103865763f7ba94bd146101c957600080fd5b3461032a576101d736612cc4565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610218613f66565b9254169116908103610359575081810361032f5760005b81811061023857005b61024381838761310d565b3573ffffffffffffffffffffffffffffffffffffffff811680910361032a5761026d82858761310d565b35908147106102f857600080809381935af13d156102f0573d9061029082613edd565b9161029e6040519384612e50565b82523d6000602084013e5b156102b7575060010161022f565b8051156102c657602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102a9565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043567ffffffffffffffff811161032a576103d5903690600401612dc3565b60243567ffffffffffffffff811161032a576103f5903690600401612dc3565b6000939193506044359160ff831680930361032a577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc610433613f66565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015610be9575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081610c1b575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60208190527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80548216831790557fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a6680548216831790557f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480548216831790557f56711464edcafe4e82a7e7542dffa87959622899ee5b1c678e1763c8a0b334a980548216831790557f9a550f00726f29dff2bade56048512cf1b1705f05a832e2f404d59756e57d41580548216831790557f20c07ed1000000000000000000000000000000000000000000000000000000006000527f0fe906604d4cc705ea1b9f113133426bf04f7f63322b0f5653f6f8d581e44fb48054909116821790557fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745491957f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a819390929091811015610be9575060017fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745567ffffffffffffffff8211610aba5781906106c28454612f33565b601f8111610b96575b50600090601f8311600114610af457600092610ae9575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610aba5761074d7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8254612f33565b601f8111610a36575b506000601f821160011461093a578192939460009261092f575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a83557fa219a0250000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f3c130d900000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f9d8ff7da00000000000000000000000000000000000000000000000000000000600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b013590508480610770565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef91805b878110610a1e5750836001959697106109e6575b505050811b017f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82556107c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806109b9565b909260206001819286860135815501940191016109a5565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a826000527f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef601f830160051c81019160208410610ab0575b601f0160051c01905b818110610aa45750610756565b60008155600101610a97565b9091508190610a8e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806106e2565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110610b7e5750908460019594939210610b46575b505050811b019055610714565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080610b39565b91936020600181928787013581550195019201610b23565b909150836000526020600020601f840160051c81019160208510610bdf575b90601f859493920160051c01905b818110610bd057506106cb565b60008155849350600101610bc3565b9091508190610bb5565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a385806104a0565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610ca7612c4d565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610cd1613f66565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610359575073ffffffffffffffffffffffffffffffffffffffff1691828203610d1557005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610d9b612c4d565b60243560443567ffffffffffffffff811161032a57610dbe903690600401612dc3565b9190927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92610df78383610df0613f66565b8097613d88565b813b610e09575b602060405160018152f35b610e1f94610e18913691613f17565b928061407a565b8080808080610dfe565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043567ffffffffffffffff811161032a57610e78903690600401612dc3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610eb7613f66565b925416911690810361035957507ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea9067ffffffffffffffff8111610aba57610eff8254612f33565b601f8111610ffd575b506000601f8211600114610f6257819293600092610f57575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916179055600080f35b013590508380610f21565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216938382526020822091805b868110610fe55750836001959610610fad575b505050811b019055005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055838080610fa3565b90926020600181928686013581550194019101610f90565b826000526020600020601f830160051c8101916020841061103b575b601f0160051c01905b81811061102f5750610f08565b60008155600101611022565b9091508190611019565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761107c612c4d565b73ffffffffffffffffffffffffffffffffffffffff611099612c70565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043561112e612c70565b611136613f66565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361035957507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166111e857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461032a5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761130d612c4d565b611315612c70565b6044359060643560843560ff811680910361032a5773ffffffffffffffffffffffffffffffffffffffff8516917f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d831561151f578142116114f1576020926000926080928685528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9845288604084015273ffffffffffffffffffffffffffffffffffffffff8a1660608401528a8684015260a083015260c082015260c081526113f760e082612e50565b5190206114026132b7565b9060405190868201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611447606282612e50565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156114e55773ffffffffffffffffffffffffffffffffffffffff60005116036114bb576114b9927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee613048565b005b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b3461032a5761155736612d34565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061159c613f66565b9254169116908103610359575080821480159061177c575b61032f5760005b8281106115c457005b73ffffffffffffffffffffffffffffffffffffffff6115ec6115e783858a61310d565b61314c565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156114e55760009161174e575b5015611721575073ffffffffffffffffffffffffffffffffffffffff61167b6115e783858a61310d565b169061168b6115e782868961310d565b9161169782878b61310d565b3592813b1561032a57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156114e557600192611710575b50016115bb565b600061171b91612e50565b88611709565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61176f915060203d8111611775575b6117678183612e50565b810190613f4e565b89611651565b503d61175d565b50828214156115b4565b3461032a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576117bd612c4d565b6117c5612c70565b60443560643567ffffffffffffffff811161032a576117e8903690600401612dc3565b9290937f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9361185484848461181b613f66565b9873ffffffffffffffffffffffffffffffffffffffff8a1673ffffffffffffffffffffffffffffffffffffffff83160361188557613d88565b823b61186557602060405160018152f35b61187a95611874913691613f17565b9361407a565b808080808080610dfe565b611891848b8484613baa565b613d88565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe6118d0612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6118fd613f66565b90613d88565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe61193d612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61196a613f66565b90613baa565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82612f86565b604051918291602083526020830190612bee565b0390f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611a1a612c70565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611b47613f66565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615611c135760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101611278565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461032a57610dfe611c6c36612cc4565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611c99613f66565b90613951565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611cd6612c4d565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe611d5e612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611d8b613f66565b8373ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603611dc7575b5050613420565b611dd2918484613baa565b8483611dc0565b3461032a57611de736612d34565b949293917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611e2a613f66565b92541691169081036103595750808314801590611f52575b61032f5760005b838110611e5257005b611e5d81838861310d565b3573ffffffffffffffffffffffffffffffffffffffff81169081810361032a5760006020918a82611e9e87611e976115e7828f8f9061310d565b938b61310d565b356040519073ffffffffffffffffffffffffffffffffffffffff878301947fa9059cbb000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611ef9606482612e50565b51925af1156114e5576000513d611f495750803b155b611f1c5750600101611e49565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611f0f565b5085831415611e42565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611f93612c4d565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b3461032a57611fef36612cc4565b9290916120247fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261201e613f66565b9061335e565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9061204f81612e91565b9261205d6040519485612e50565b818452602084019160051b81019036821161032a57915b8183106120cf5750505061208784612e91565b926120956040519485612e50565b848452602084019460051b81019036821161032a57945b8186106120bf5750506114b99350613801565b85358152602095860195016120ac565b823573ffffffffffffffffffffffffffffffffffffffff8116810361032a57815260209283019201612074565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602061213d612138612c4d565b612df1565b6040519015158152f35b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761217e612c4d565b60243567ffffffffffffffff811161032a5761219e903690600401612c93565b916044359267ffffffffffffffff841161032a576121c3610dfe943690600401612c93565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6121ef613f66565b90613541565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe6004357f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612253613f66565b90613420565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57612290612c4d565b6024356122bf7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261201e613f66565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92169182156123f25781612334575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092604051908152a3005b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf05482810190808211156123c057507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf0556000838152602091909152604090208054820190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612304565b83907f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea612f86565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576124ae612c4d565b6024356124b9613f66565b9073ffffffffffffffffffffffffffffffffffffffff83169283156126635773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef602052604060002084600052602052604060002054918061257e575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561260857505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8352604060002086600052835280604060002055925061252f565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760206126e06132b7565b604051908152f35b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602060ff7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57600435612780612c70565b612788613f66565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361035957507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561283b57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101611278565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe61297b612c4d565b612983612c70565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee916129ad613f66565b92604435938473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8516036129ee575b5050613d88565b6129f9918484613baa565b85846129e7565b3461032a57610dfe612a1136612cc4565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612a3e613f66565b9061316d565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe612ad9612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612b06613f66565b90613048565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81612f86565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361032a5761213d6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d612ea9565b919082519283825260005b848110612c385750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201612bf9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361032a57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361032a57565b9181601f8401121561032a5782359167ffffffffffffffff831161032a576020808501948460051b01011161032a57565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261032a5760043567ffffffffffffffff811161032a5781612d0d91600401612c93565b929092916024359067ffffffffffffffff821161032a57612d3091600401612c93565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261032a5760043567ffffffffffffffff811161032a5781612d7d91600401612c93565b9290929160243567ffffffffffffffff811161032a5781612da091600401612c93565b929092916044359067ffffffffffffffff821161032a57612d3091600401612c93565b9181601f8401121561032a5782359167ffffffffffffffff831161032a576020838186019501011161032a57565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115612e495773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610aba57604052565b67ffffffffffffffff8111610aba5760051b60200190565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114612e49577f01ffc9a7000000000000000000000000000000000000000000000000000000008114612f2c5760005260205260ff6040600020541690565b5050600190565b90600182811c92168015612f7c575b6020831014612f4d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691612f42565b9060405191826000825492612f9a84612f33565b80845293600181169081156130085750600114612fc1575b50612fbf92500383612e50565b565b90506000929192526020600020906000915b818310612fec575050906020612fbf9282010138612fb2565b6020919350806001915483858901015201910190918492612fd3565b60209350612fbf9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138612fb2565b929173ffffffffffffffffffffffffffffffffffffffff169283156130c95773ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259260016020938383166000520183526040600020866000528352846040600020556040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff827ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b919081101561311d5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff8116810361032a5790565b93929480860361032f5785156132af5760009560005b8181106131a45750505050505081613199575050565b600201908154039055565b6131b26115e782848861310d565b6131bd82858961310d565b3573ffffffffffffffffffffffffffffffffffffffff821691818773ffffffffffffffffffffffffffffffffffffffff8116850361329d575b509050613235575b600192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093604051908152a301613183565b98604060008381528a60205220548a810390808210156132675750600083815260208b905260409020558901986131fe565b8b90847fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6132a7928c613baa565b3881876131f6565b505050505050565b6132e07f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81612f86565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261335860c082612e50565b51902090565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff60406000205416156133b85750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b8261346e575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff6000946040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff82166000528060205260406000205483810390808210156134f5575073ffffffffffffffffffffffffffffffffffffffff8316600090815260208390526040902055600201805483900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613426565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b9594909392919285810361032f5780156137e45773ffffffffffffffffffffffffffffffffffffffff8416600052866020526040600020549160009660009260005b8181106135dd575050505050505073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8216036135cb575b50505050565b6135d493613baa565b388080806135c5565b73ffffffffffffffffffffffffffffffffffffffff6136006115e783858b61310d565b1680156137a05761361282858761310d565b35806136dc575b906020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8c16938492604051908152a38a1515806136d2575b613676575b50600101613583565b8a8703908782101561369c57600090815260208d9052604090209086019055600161366d565b878c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858b1415613668565b9a8b810190811115613776579a8c73ffffffffffffffffffffffffffffffffffffffff8b168381146137285750906040602093926000908482528552208181540190555b909150613619565b90508882989211613740575090866020920196613720565b8888917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff897f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b805182101561311d5760209160051b010190565b90918251908051820361032f5781156135c55760009360005b83811061387557505050508161382e575050565b600201805491808301928084111561384557505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff61389482846137ed565b511680156123f2576138a682856137ed565b51806138e4575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a30161381a565b969190878301928311156139275773ffffffffffffffffffffffffffffffffffffffff8116600090815260208890526040902080548901905591969091906138ad565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361032f5784156132af5773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b818110613a4357505050505080151580613a39575b6139b2575b5050505050565b80850394808610156139ef57505073ffffffffffffffffffffffffffffffffffffffff1660005260205260406000209101905538808080806139ab565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50838114156139a6565b73ffffffffffffffffffffffffffffffffffffffff613a666115e783858961310d565b168015613b6657613a7882858761310d565b3580613acc575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a301613991565b9687810190811115613776579673ffffffffffffffffffffffffffffffffffffffff8916828114613b1957509060019291604060008381528c602052208181540190555b90919250613a7f565b8c829c9211613b305750908a60019392019a613b10565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b92909173ffffffffffffffffffffffffffffffffffffffff8116938415613d44576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580613d3b575b613c77575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015613ce05750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592613c2f565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515613c2a565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff16928315613e995782613df2575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff82166000528060205260406000205483810390808210156134f557508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603613e72575b5050925050613dad565b83831660005281855260406000205586600052835260406000208581540190553880613e68565b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b67ffffffffffffffff8111610aba57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613f2382613edd565b91613f316040519384612e50565b82948184528183011161032a578281602093846000960137010152565b9081602091031261032a5751801515810361032a5790565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561406b573233148015614070575b61406b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613ff1575b50613fee57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156114e55760009161404c575b5038613fe4565b614065915060203d602011611775576117678183612e50565b38614045565b503390565b5060183610613fad565b6140e973ffffffffffffffffffffffffffffffffffffffff9294958360209516968460405197889687967f4fc358590000000000000000000000000000000000000000000000000000000088521660048701521660248501526044840152608060648401526084830190612bee565b03816000865af19081156114e557600091614179575b507fffffffff000000000000000000000000000000000000000000000000000000007f4fc358590000000000000000000000000000000000000000000000000000000091160361414c5750565b7f6d4497360000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6020813d6020116141f3575b8161419260209383612e50565b810103126141ef5751907fffffffff00000000000000000000000000000000000000000000000000000000821682036141ec57507fffffffff000000000000000000000000000000000000000000000000000000006140ff565b80fd5b5080fd5b3d915061418556fea2646970667358221220eabadbf30c69722191daa63950a85e5afde95961d2811b65f29642accd0c910464736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714612b6757806306fdde0314612b0c578063095ea7b314612a9f57806318160ddd14612a445780631b9a752914612a0057806323b872dd146129415780632b4c9f16146128d25780632f2ff15d14612746578063313ce567146126e85780633644e515146126a757806339509351146124775780633c130d901461241c57806340c10f191461225957806342966c68146121f55780634885b25414612147578063572b6c05146120fc5780636857310714611fe157806370a0823114611f5c57806373c8a95814611dd957806379cc679014611d245780637ecebe0014611c9f57806388d695b214611c5b5780638bb9c5bf14611aec5780638da5cb5b14611a7b57806391d14854146119e357806395d89b4114611970578063a457c2d714611903578063a9059cbb14611896578063b88d4fde14611786578063c3666c3614611549578063d505accf146112d6578063d53913931461127d578063d547741f146110f4578063dd62ed3e14611045578063e0df5b6f14610e29578063eb79554914610d64578063f2fde38b14610c70578063f57b0182146103865763f7ba94bd146101c957600080fd5b3461032a576101d736612cc4565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610218613f66565b9254169116908103610359575081810361032f5760005b81811061023857005b61024381838761310d565b3573ffffffffffffffffffffffffffffffffffffffff811680910361032a5761026d82858761310d565b35908147106102f857600080809381935af13d156102f0573d9061029082613edd565b9161029e6040519384612e50565b82523d6000602084013e5b156102b7575060010161022f565b8051156102c657602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102a9565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043567ffffffffffffffff811161032a576103d5903690600401612dc3565b60243567ffffffffffffffff811161032a576103f5903690600401612dc3565b6000939193506044359160ff831680930361032a577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc610433613f66565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015610be9575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081610c1b575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60208190527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80548216831790557fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a6680548216831790557f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480548216831790557f56711464edcafe4e82a7e7542dffa87959622899ee5b1c678e1763c8a0b334a980548216831790557f9a550f00726f29dff2bade56048512cf1b1705f05a832e2f404d59756e57d41580548216831790557f20c07ed1000000000000000000000000000000000000000000000000000000006000527f0fe906604d4cc705ea1b9f113133426bf04f7f63322b0f5653f6f8d581e44fb48054909116821790557fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745491957f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a819390929091811015610be9575060017fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745567ffffffffffffffff8211610aba5781906106c28454612f33565b601f8111610b96575b50600090601f8311600114610af457600092610ae9575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610aba5761074d7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8254612f33565b601f8111610a36575b506000601f821160011461093a578192939460009261092f575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a83557fa219a0250000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f3c130d900000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f9d8ff7da00000000000000000000000000000000000000000000000000000000600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b013590508480610770565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef91805b878110610a1e5750836001959697106109e6575b505050811b017f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82556107c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806109b9565b909260206001819286860135815501940191016109a5565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a826000527f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef601f830160051c81019160208410610ab0575b601f0160051c01905b818110610aa45750610756565b60008155600101610a97565b9091508190610a8e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806106e2565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110610b7e5750908460019594939210610b46575b505050811b019055610714565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080610b39565b91936020600181928787013581550195019201610b23565b909150836000526020600020601f840160051c81019160208510610bdf575b90601f859493920160051c01905b818110610bd057506106cb565b60008155849350600101610bc3565b9091508190610bb5565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a385806104a0565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610ca7612c4d565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610cd1613f66565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610359575073ffffffffffffffffffffffffffffffffffffffff1691828203610d1557005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610d9b612c4d565b60243560443567ffffffffffffffff811161032a57610dbe903690600401612dc3565b9190927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92610df78383610df0613f66565b8097613d88565b813b610e09575b602060405160018152f35b610e1f94610e18913691613f17565b928061407a565b8080808080610dfe565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043567ffffffffffffffff811161032a57610e78903690600401612dc3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610eb7613f66565b925416911690810361035957507ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea9067ffffffffffffffff8111610aba57610eff8254612f33565b601f8111610ffd575b506000601f8211600114610f6257819293600092610f57575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916179055600080f35b013590508380610f21565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216938382526020822091805b868110610fe55750836001959610610fad575b505050811b019055005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055838080610fa3565b90926020600181928686013581550194019101610f90565b826000526020600020601f830160051c8101916020841061103b575b601f0160051c01905b81811061102f5750610f08565b60008155600101611022565b9091508190611019565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761107c612c4d565b73ffffffffffffffffffffffffffffffffffffffff611099612c70565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760043561112e612c70565b611136613f66565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361035957507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166111e857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461032a5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761130d612c4d565b611315612c70565b6044359060643560843560ff811680910361032a5773ffffffffffffffffffffffffffffffffffffffff8516917f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d831561151f578142116114f1576020926000926080928685528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9845288604084015273ffffffffffffffffffffffffffffffffffffffff8a1660608401528a8684015260a083015260c082015260c081526113f760e082612e50565b5190206114026132b7565b9060405190868201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611447606282612e50565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156114e55773ffffffffffffffffffffffffffffffffffffffff60005116036114bb576114b9927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee613048565b005b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b3461032a5761155736612d34565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061159c613f66565b9254169116908103610359575080821480159061177c575b61032f5760005b8281106115c457005b73ffffffffffffffffffffffffffffffffffffffff6115ec6115e783858a61310d565b61314c565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156114e55760009161174e575b5015611721575073ffffffffffffffffffffffffffffffffffffffff61167b6115e783858a61310d565b169061168b6115e782868961310d565b9161169782878b61310d565b3592813b1561032a57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156114e557600192611710575b50016115bb565b600061171b91612e50565b88611709565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61176f915060203d8111611775575b6117678183612e50565b810190613f4e565b89611651565b503d61175d565b50828214156115b4565b3461032a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576117bd612c4d565b6117c5612c70565b60443560643567ffffffffffffffff811161032a576117e8903690600401612dc3565b9290937f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9361185484848461181b613f66565b9873ffffffffffffffffffffffffffffffffffffffff8a1673ffffffffffffffffffffffffffffffffffffffff83160361188557613d88565b823b61186557602060405160018152f35b61187a95611874913691613f17565b9361407a565b808080808080610dfe565b611891848b8484613baa565b613d88565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe6118d0612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6118fd613f66565b90613d88565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe61193d612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61196a613f66565b90613baa565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82612f86565b604051918291602083526020830190612bee565b0390f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611a1a612c70565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611b47613f66565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615611c135760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101611278565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461032a57610dfe611c6c36612cc4565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611c99613f66565b90613951565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611cd6612c4d565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe611d5e612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611d8b613f66565b8373ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603611dc7575b5050613420565b611dd2918484613baa565b8483611dc0565b3461032a57611de736612d34565b949293917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611e2a613f66565b92541691169081036103595750808314801590611f52575b61032f5760005b838110611e5257005b611e5d81838861310d565b3573ffffffffffffffffffffffffffffffffffffffff81169081810361032a5760006020918a82611e9e87611e976115e7828f8f9061310d565b938b61310d565b356040519073ffffffffffffffffffffffffffffffffffffffff878301947fa9059cbb000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611ef9606482612e50565b51925af1156114e5576000513d611f495750803b155b611f1c5750600101611e49565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611f0f565b5085831415611e42565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57611f93612c4d565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b3461032a57611fef36612cc4565b9290916120247fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261201e613f66565b9061335e565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9061204f81612e91565b9261205d6040519485612e50565b818452602084019160051b81019036821161032a57915b8183106120cf5750505061208784612e91565b926120956040519485612e50565b848452602084019460051b81019036821161032a57945b8186106120bf5750506114b99350613801565b85358152602095860195016120ac565b823573ffffffffffffffffffffffffffffffffffffffff8116810361032a57815260209283019201612074565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602061213d612138612c4d565b612df1565b6040519015158152f35b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5761217e612c4d565b60243567ffffffffffffffff811161032a5761219e903690600401612c93565b916044359267ffffffffffffffff841161032a576121c3610dfe943690600401612c93565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6121ef613f66565b90613541565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe6004357f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612253613f66565b90613420565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57612290612c4d565b6024356122bf7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2261201e613f66565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92169182156123f25781612334575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092604051908152a3005b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf05482810190808211156123c057507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf0556000838152602091909152604090208054820190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612304565b83907f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea612f86565b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576124ae612c4d565b6024356124b9613f66565b9073ffffffffffffffffffffffffffffffffffffffff83169283156126635773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef602052604060002084600052602052604060002054918061257e575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561260857505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8352604060002086600052835280604060002055925061252f565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760206126e06132b7565b604051908152f35b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602060ff7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57600435612780612c70565b612788613f66565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361035957507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561283b57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101611278565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461032a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe61297b612c4d565b612983612c70565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee916129ad613f66565b92604435938473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8516036129ee575b5050613d88565b6129f9918484613baa565b85846129e7565b3461032a57610dfe612a1136612cc4565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612a3e613f66565b9061316d565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a5760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b3461032a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a57610dfe612ad9612c4d565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612b06613f66565b90613048565b3461032a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576119df6119cb7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81612f86565b3461032a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032a576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361032a5761213d6020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d612ea9565b919082519283825260005b848110612c385750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201612bf9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361032a57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361032a57565b9181601f8401121561032a5782359167ffffffffffffffff831161032a576020808501948460051b01011161032a57565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261032a5760043567ffffffffffffffff811161032a5781612d0d91600401612c93565b929092916024359067ffffffffffffffff821161032a57612d3091600401612c93565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261032a5760043567ffffffffffffffff811161032a5781612d7d91600401612c93565b9290929160243567ffffffffffffffff811161032a5781612da091600401612c93565b929092916044359067ffffffffffffffff821161032a57612d3091600401612c93565b9181601f8401121561032a5782359167ffffffffffffffff831161032a576020838186019501011161032a57565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115612e495773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610aba57604052565b67ffffffffffffffff8111610aba5760051b60200190565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114612e49577f01ffc9a7000000000000000000000000000000000000000000000000000000008114612f2c5760005260205260ff6040600020541690565b5050600190565b90600182811c92168015612f7c575b6020831014612f4d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691612f42565b9060405191826000825492612f9a84612f33565b80845293600181169081156130085750600114612fc1575b50612fbf92500383612e50565b565b90506000929192526020600020906000915b818310612fec575050906020612fbf9282010138612fb2565b6020919350806001915483858901015201910190918492612fd3565b60209350612fbf9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138612fb2565b929173ffffffffffffffffffffffffffffffffffffffff169283156130c95773ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259260016020938383166000520183526040600020866000528352846040600020556040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff827ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b919081101561311d5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff8116810361032a5790565b93929480860361032f5785156132af5760009560005b8181106131a45750505050505081613199575050565b600201908154039055565b6131b26115e782848861310d565b6131bd82858961310d565b3573ffffffffffffffffffffffffffffffffffffffff821691818773ffffffffffffffffffffffffffffffffffffffff8116850361329d575b509050613235575b600192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093604051908152a301613183565b98604060008381528a60205220548a810390808210156132675750600083815260208b905260409020558901986131fe565b8b90847fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6132a7928c613baa565b3881876131f6565b505050505050565b6132e07f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81612f86565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261335860c082612e50565b51902090565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff60406000205416156133b85750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b8261346e575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff6000946040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff82166000528060205260406000205483810390808210156134f5575073ffffffffffffffffffffffffffffffffffffffff8316600090815260208390526040902055600201805483900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef613426565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b9594909392919285810361032f5780156137e45773ffffffffffffffffffffffffffffffffffffffff8416600052866020526040600020549160009660009260005b8181106135dd575050505050505073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8216036135cb575b50505050565b6135d493613baa565b388080806135c5565b73ffffffffffffffffffffffffffffffffffffffff6136006115e783858b61310d565b1680156137a05761361282858761310d565b35806136dc575b906020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8c16938492604051908152a38a1515806136d2575b613676575b50600101613583565b8a8703908782101561369c57600090815260208d9052604090209086019055600161366d565b878c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858b1415613668565b9a8b810190811115613776579a8c73ffffffffffffffffffffffffffffffffffffffff8b168381146137285750906040602093926000908482528552208181540190555b909150613619565b90508882989211613740575090866020920196613720565b8888917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff897f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b805182101561311d5760209160051b010190565b90918251908051820361032f5781156135c55760009360005b83811061387557505050508161382e575050565b600201805491808301928084111561384557505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff61389482846137ed565b511680156123f2576138a682856137ed565b51806138e4575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a30161381a565b969190878301928311156139275773ffffffffffffffffffffffffffffffffffffffff8116600090815260208890526040902080548901905591969091906138ad565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361032f5784156132af5773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b818110613a4357505050505080151580613a39575b6139b2575b5050505050565b80850394808610156139ef57505073ffffffffffffffffffffffffffffffffffffffff1660005260205260406000209101905538808080806139ab565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50838114156139a6565b73ffffffffffffffffffffffffffffffffffffffff613a666115e783858961310d565b168015613b6657613a7882858761310d565b3580613acc575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a301613991565b9687810190811115613776579673ffffffffffffffffffffffffffffffffffffffff8916828114613b1957509060019291604060008381528c602052208181540190555b90919250613a7f565b8c829c9211613b305750908a60019392019a613b10565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b92909173ffffffffffffffffffffffffffffffffffffffff8116938415613d44576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580613d3b575b613c77575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015613ce05750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592613c2f565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515613c2a565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff16928315613e995782613df2575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff82166000528060205260406000205483810390808210156134f557508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603613e72575b5050925050613dad565b83831660005281855260406000205586600052835260406000208581540190553880613e68565b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b67ffffffffffffffff8111610aba57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613f2382613edd565b91613f316040519384612e50565b82948184528183011161032a578281602093846000960137010152565b9081602091031261032a5751801515810361032a5790565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561406b573233148015614070575b61406b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613ff1575b50613fee57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156114e55760009161404c575b5038613fe4565b614065915060203d602011611775576117678183612e50565b38614045565b503390565b5060183610613fad565b6140e973ffffffffffffffffffffffffffffffffffffffff9294958360209516968460405197889687967f4fc358590000000000000000000000000000000000000000000000000000000088521660048701521660248501526044840152608060648401526084830190612bee565b03816000865af19081156114e557600091614179575b507fffffffff000000000000000000000000000000000000000000000000000000007f4fc358590000000000000000000000000000000000000000000000000000000091160361414c5750565b7f6d4497360000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6020813d6020116141f3575b8161419260209383612e50565b810103126141ef5751907fffffffff00000000000000000000000000000000000000000000000000000000821682036141ec57507fffffffff000000000000000000000000000000000000000000000000000000006140ff565b80fd5b5080fd5b3d915061418556fea2646970667358221220eabadbf30c69722191daa63950a85e5afde95961d2811b65f29642accd0c910464736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
