{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC1155FullProxiedMock",
  "sourceName": "contracts/mocks/token/ERC1155/preset/proxied/ERC1155FullProxiedMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ERC1155BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155BalanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC1155NonApproved",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "ERC1155SafeBatchTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC1155SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "ERC2981IncorrectRoyaltyPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC2981IncorrectRoyaltyReceiver",
      "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": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotMetadataResolver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "OperatorNotAllowed",
      "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": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "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": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROYALTY_FEE_DENOMINATOR",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "balances",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "tokenURIs",
          "type": "string[]"
        }
      ],
      "name": "batchSetTokenURI",
      "outputs": [],
      "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": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "metadataResolver",
          "type": "address"
        },
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "filterRegistry",
          "type": "address"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "approvedForAll",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataResolver",
      "outputs": [
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "tokenMetadataResolver",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "operatorFilterRegistry",
      "outputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "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": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "salePrice",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "royaltyAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeDeliver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setRoyaltyPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "setRoyaltyReceiver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "tokenURI",
          "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": "tokenSymbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "updateOperatorFilterRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a03461007f57601f61429538819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f576080526040516141fa908161009b8239608051818181612193015281816135a501528181613b2301526140950152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8062fdd58e1461318d57806301ffc9a71461310657806306fdde03146130ab5780630d6a5bbb14612e495780630e07f854146125b85780630e89341c14612461578063114ba8ee1461237a578063162094c4146122aa5780632a55205a146121b75780632b4c9f16146121485780632eb2c2d614611d095780632f2ff15d14611b7d57806331e66e1e14611b2f5780634e1273f414611a51578063572b6c0514611a065780635cfa92971461193c57806361ba27da146118205780636706467b146116af57806373c8a958146114ff5780638bb9c5bf146113905780638da5cb5b1461131f5780638dc251e3146111f257806391d148541461115a57806395d89b41146110e7578063a0c76f6214611076578063a22cb46514610f16578063b0ccc31e14610ea5578063c3666c3614610c68578063d539139314610c0f578063d547741f14610a86578063e1a8bf2c14610a4a578063e8ab9ccc1461083e578063e985e9c51461078a578063f242432a14610458578063f2fde38b146103645763f7ba94bd146101a757600080fd5b34610308576101b536613345565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806101f6613b0c565b9254169116908103610337575081810361030d5760005b81811061021657005b6102218183876135ed565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103085761024b8285876135ed565b35908147106102d657600080809381935af13d156102ce573d9061026e8261351d565b9161027c6040519384613478565b82523d6000602084013e5b15610295575060010161020d565b8051156102a457602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b606090610287565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761039b6131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103c5613b0c565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610337575073ffffffffffffffffffffffffffffffffffffffff169182820361040957005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103085760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761048f6131fb565b61049761321e565b604435906064359260843567ffffffffffffffff8111610308576104bf9036906004016132d8565b926104c8613b0c565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff82160361077a575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861286156107505761056b828783613e37565b156107065773ffffffffffffffffffffffffffffffffffffffff916105948a8a878a8796613eb7565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105d157005b6020926105df913691613557565b9261063560405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a4830190613264565b03816000865af19081156106fa577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106cb575b50160361069857005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106ed915060203d6020116106f3575b6106e58183613478565b810190613d14565b8661068f565b503d6106db565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61078391613d4c565b878561051f565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576107c16131fb565b73ffffffffffffffffffffffffffffffffffffffff6107de61321e565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760043567ffffffffffffffff81116103085761088d9036906004016132a7565b60243567ffffffffffffffff8111610308576108ad9036906004016132a7565b929060443567ffffffffffffffff8111610308576108cf9036906004016132a7565b93909160643567ffffffffffffffff8111610308576108f29036906004016132d8565b9390916108fd613b0c565b97610928897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861294610953816134b9565b97610961604051998a613478565b818952602089019160051b81019036821161030857915b818310610a1d575050509161099661099e926109a6959436916134d1565b9736916134d1565b933691613557565b9183519480518614801590610a12575b61030d5760005b8681106109c657005b80610a0c8673ffffffffffffffffffffffffffffffffffffffff6109ec6001958b6138d7565b51166109f884876138d7565b51610a0385896138d7565b51918d8a61398b565b016109bd565b5081518614156109b6565b823573ffffffffffffffffffffffffffffffffffffffff8116810361030857815260209283019201610978565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576020604051620186a08152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857600435610ac061321e565b610ac8613b0c565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361033757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b7a57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461030857610c76366133e9565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cbb613b0c565b92541691169081036103375750808214801590610e9b575b61030d5760005b828110610ce357005b73ffffffffffffffffffffffffffffffffffffffff610d0b610d0683858a6135ed565b61396a565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156106fa57600091610e6d575b5015610e40575073ffffffffffffffffffffffffffffffffffffffff610d9a610d0683858a6135ed565b1690610daa610d068286896135ed565b91610db682878b6135ed565b3592813b1561030857606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156106fa57600192610e2f575b5001610cda565b6000610e3a91613478565b88610e28565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e8e915060203d8111610e94575b610e868183613478565b810190613af4565b89610d70565b503d610e7c565b5082821415610cd3565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857610f4d6131fb565b602435908115159182810361030857611047575b73ffffffffffffffffffffffffffffffffffffffff80610f7f613b0c565b169116918183146110195760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611071817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613d4c565b610f61565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576111566111427f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5613753565b604051918291602083526020830190613264565b0390f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761119161321e565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576112296131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611268613b0c565b925416911690810361033757507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156112f55773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113eb613b0c565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114b75760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610c0a565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103085761150d366133e9565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611550613b0c565b925416911690810361033757508084148015906116a5575b61030d5760005b84811061157857005b6115838183886135ed565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036103085760006020916115b6610d06868b8e6135ed565b8261162061164c6115c8898d8d6135ed565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613478565b51925af1156106fa576000513d61169c5750803b155b61166f575060010161156f565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611662565b5082841415611568565b34610308576116bd36613345565b80839492930361030d5773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117f257916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b85811061173957005b848110156117c3578060051b820135838112156103085782019081359167ffffffffffffffff831161030857602001918036038313610308577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b6001936117a1848b8a6135ed565b35926117ba604051928392602084526020840191613306565b0390a201611730565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611891613b0c565b925416911690810361033757507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161190f57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576119736131fb565b6064359067ffffffffffffffff821161030857611997611a049236906004016132d8565b6119f66119a2613b0c565b926119cd847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612923691613557565b92604435926024359261398b565b005b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576020611a47611a426131fb565b61358e565b6040519015158152f35b3461030857611a5f36613345565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361030d57611a95856134b9565b94611aa36040519687613478565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611ad0826134b9565b0136602088013760005b818110611af757604051602080825281906111569082018a6133b5565b80611b1e611b0b610d06600194868b6135ed565b611b168387896135ed565b3590886135fd565b611b28828a6138d7565b5201611ada565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857611b6661407e565b611156604051928392602084526020840191613306565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857600435611bb761321e565b611bbf613b0c565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361033757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611c7257005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610c0a565b346103085760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857611d406131fb565b611d4861321e565b60443567ffffffffffffffff811161030857611d689036906004016132a7565b929060643567ffffffffffffffff811161030857611d8a9036906004016132a7565b9360843567ffffffffffffffff811161030857611dab9036906004016132d8565b939091611db6613b0c565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff821603612138575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561075057898b0361030d57611e60828483613e37565b156120ee5760005b8b81106120bf575050928992888a8897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb73ffffffffffffffffffffffffffffffffffffffff809b99169a8b9216988993611ee460405192839260408452611ed68d60408601908d61392d565b91848303602086015261392d565b0390a43b611eee57005b602094611f03611f0b92611f139536916134d1565b9936916134d1565b953691613557565b92611fc360405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a06044840152611f93611f6360a485018b6133b5565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858203016064860152886133b5565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc848303016084850152613264565b03816000875af19081156106fa577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916120a0575b50160361202657005b61209c9061206c6040519485947fc287817e00000000000000000000000000000000000000000000000000000000865260048601526060602486015260648501906133b5565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160448501526133b5565b0390fd5b6120b9915060203d6020116106f3576106e58183613478565b8661201d565b806120e88c6120de8f946120d6816001978d6135ed565b35928d6135ed565b3590888887613eb7565b01611e68565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b61214191613d4c565b8987611e0d565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156122a2575b1561226c57505061115660005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61115691620186a082101561228f5761228990620186a0926138eb565b0461223c565b620186a061229d92046138eb565b61223c565b50811561222f565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760243567ffffffffffffffff8111610308576122f99036906004016132d8565b9073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117f2576123757f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160208352600435956020840191613306565b0390a2005b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576123b16131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806123f0613b0c565b9254169116908103610337575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156106fa57600091612530575b6040516020808252819061115690820185613264565b3d8083833e61253f8183613478565b8101906020818303126125b05780519067ffffffffffffffff82116125b4570181601f820112156125b0578051926125768461351d565b926125846040519485613478565b848452602085840101116125ad5750611156926125a79160208085019101613241565b9061251a565b80fd5b8280fd5b8380fd5b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760043567ffffffffffffffff8111610308576126079036906004016132d8565b60243567ffffffffffffffff8111610308576126279036906004016132d8565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610308576064359373ffffffffffffffffffffffffffffffffffffffff85168503610308577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612695613b0c565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612b08575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612df4575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612b08575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612cc55781906128f48454613700565b601f8111612da1575b50600090601f8311600114612cff57600092612cf4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612cc55761297f7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613700565b601f8111612c41575b506000601f8211600114612b455781929394600092612b3a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612b08575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b0135905084806129a2565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612c29575083600195969710612bf1575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556129f4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612bc4565b90926020600181928686013581550194019101612bb0565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612cbb575b601f0160051c01905b818110612caf5750612988565b60008155600101612ca2565b9091508190612c99565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612914565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612d895750908460019594939210612d51575b505050811b019055612946565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612d44565b91936020600181928787013581550195019201612d2e565b909150836000526020600020601f840160051c81019160208510612dea575b90601f859493920160051c01905b818110612ddb57506128fd565b60008155849350600101612dce565b9091508190612dc0565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612702565b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857612e806131fb565b60243567ffffffffffffffff811161030857612ea09036906004016132a7565b909160443567ffffffffffffffff811161030857612ec29036906004016132a7565b93909160643567ffffffffffffffff811161030857612f5693612eec612f5e9236906004016132d8565b959091612f4e612efa613b0c565b96612f25887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129936916134d1565b9836916134d1565b943691613557565b9173ffffffffffffffffffffffffffffffffffffffff8216948515613081578651908551820361030d5760005b8281106130575750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb6040516040815280612ff8612fea8d60408401906133b5565b82810360208401528b6133b5565b0390a43b61300257005b611fc39160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a06044840152611f93611f6360a485018b6133b5565b8061307b6130676001938c6138d7565b51613072838b6138d7565b51908886613c37565b01612f8b565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576111566111427f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4613753565b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361030857611a476020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613676565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760206131f36131c96131fb565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86126135fd565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361030857565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361030857565b60005b8381106132545750506000910152565b8181015183820152602001613244565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936132a081518092818752878088019101613241565b0116010190565b9181601f840112156103085782359167ffffffffffffffff8311610308576020808501948460051b01011161030857565b9181601f840112156103085782359167ffffffffffffffff8311610308576020838186019501011161030857565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103085760043567ffffffffffffffff8111610308578161338e916004016132a7565b929092916024359067ffffffffffffffff8211610308576133b1916004016132a7565b9091565b906020808351928381520192019060005b8181106133d35750505090565b82518452602093840193909201916001016133c6565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103085760043567ffffffffffffffff81116103085781613432916004016132a7565b9290929160243567ffffffffffffffff81116103085781613455916004016132a7565b929092916044359067ffffffffffffffff8211610308576133b1916004016132a7565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612cc557604052565b67ffffffffffffffff8111612cc55760051b60200190565b9291906134dd816134b9565b936134eb6040519586613478565b602085838152019160051b810192831161030857905b82821061350d57505050565b8135815260209182019101613501565b67ffffffffffffffff8111612cc557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926135638261351d565b916135716040519384613478565b829481845281830111610308578281602093846000960137010152565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135e65773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156117c35760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff83161561364c5760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff0000000000000000000000000000000000000000000000000000000081146135e6577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136f95760005260205260ff6040600020541690565b5050600190565b90600182811c92168015613749575b602083101461371a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161370f565b906040519182600082549261376784613700565b80845293600181169081156137d5575060011461378e575b5061378c92500383613478565b565b90506000929192526020600020906000915b8183106137b957505090602061378c928201013861377f565b60209193508060019154838589010152019101909184926137a0565b6020935061378c9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861377f565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff604060002054161561386f5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156117c35760209160051b010190565b818102929181159184041417156138fe57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116103085760209260051b809284830137010190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103085790565b94919092939473ffffffffffffffffffffffffffffffffffffffff8216938415613081576139d087878573ffffffffffffffffffffffffffffffffffffffff95613c37565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b613a12575b5050505050565b613a6d9160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a4830190613264565b03816000865af19081156106fa577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613ad5575b501603610698578080613a0b565b613aee915060203d6020116106f3576106e58183613478565b38613ac7565b90816020910312610308575180151581036103085790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613c28573233148015613c2d575b613c28577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613b97575b50613b9457503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156106fa57600091613c09575b5038613b8a565b613c22915060203d602011610e9457610e868183613478565b38613c02565b503390565b5060183610613b53565b909183613c45575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613cbb57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613c3f565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b9081602091031261030857517fffffffff00000000000000000000000000000000000000000000000000000000811681036103085790565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613e2d575b613d75575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa9081156106fa57600091613e0e575b5015613de15750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613e27915060203d602011610e9457610e868183613478565b38613dd8565b50813b1515613d6d565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613e62575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613e5c565b91929084613ec6575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054908582039180831015614022575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603613f3e575b50613a0b565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff8616600052602052604060002054958087019680881115613fc457505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080613f38565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156141b25732331480156141ba575b6141b257803314908115614111575b506140e0576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103085760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156106fa57600091614193575b50386140d4565b6141ac915060203d602011610e9457610e868183613478565b3861418c565b506000903690565b50601836106140c556fea26469706673582212201ffeb232aba325dc0d2fe2bff23ed6622453aaf98baabad24dab6961165e57fb64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8062fdd58e1461318d57806301ffc9a71461310657806306fdde03146130ab5780630d6a5bbb14612e495780630e07f854146125b85780630e89341c14612461578063114ba8ee1461237a578063162094c4146122aa5780632a55205a146121b75780632b4c9f16146121485780632eb2c2d614611d095780632f2ff15d14611b7d57806331e66e1e14611b2f5780634e1273f414611a51578063572b6c0514611a065780635cfa92971461193c57806361ba27da146118205780636706467b146116af57806373c8a958146114ff5780638bb9c5bf146113905780638da5cb5b1461131f5780638dc251e3146111f257806391d148541461115a57806395d89b41146110e7578063a0c76f6214611076578063a22cb46514610f16578063b0ccc31e14610ea5578063c3666c3614610c68578063d539139314610c0f578063d547741f14610a86578063e1a8bf2c14610a4a578063e8ab9ccc1461083e578063e985e9c51461078a578063f242432a14610458578063f2fde38b146103645763f7ba94bd146101a757600080fd5b34610308576101b536613345565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806101f6613b0c565b9254169116908103610337575081810361030d5760005b81811061021657005b6102218183876135ed565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103085761024b8285876135ed565b35908147106102d657600080809381935af13d156102ce573d9061026e8261351d565b9161027c6040519384613478565b82523d6000602084013e5b15610295575060010161020d565b8051156102a457602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b606090610287565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761039b6131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103c5613b0c565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610337575073ffffffffffffffffffffffffffffffffffffffff169182820361040957005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103085760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761048f6131fb565b61049761321e565b604435906064359260843567ffffffffffffffff8111610308576104bf9036906004016132d8565b926104c8613b0c565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff82160361077a575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861286156107505761056b828783613e37565b156107065773ffffffffffffffffffffffffffffffffffffffff916105948a8a878a8796613eb7565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105d157005b6020926105df913691613557565b9261063560405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a4830190613264565b03816000865af19081156106fa577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106cb575b50160361069857005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106ed915060203d6020116106f3575b6106e58183613478565b810190613d14565b8661068f565b503d6106db565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61078391613d4c565b878561051f565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576107c16131fb565b73ffffffffffffffffffffffffffffffffffffffff6107de61321e565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760043567ffffffffffffffff81116103085761088d9036906004016132a7565b60243567ffffffffffffffff8111610308576108ad9036906004016132a7565b929060443567ffffffffffffffff8111610308576108cf9036906004016132a7565b93909160643567ffffffffffffffff8111610308576108f29036906004016132d8565b9390916108fd613b0c565b97610928897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861294610953816134b9565b97610961604051998a613478565b818952602089019160051b81019036821161030857915b818310610a1d575050509161099661099e926109a6959436916134d1565b9736916134d1565b933691613557565b9183519480518614801590610a12575b61030d5760005b8681106109c657005b80610a0c8673ffffffffffffffffffffffffffffffffffffffff6109ec6001958b6138d7565b51166109f884876138d7565b51610a0385896138d7565b51918d8a61398b565b016109bd565b5081518614156109b6565b823573ffffffffffffffffffffffffffffffffffffffff8116810361030857815260209283019201610978565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576020604051620186a08152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857600435610ac061321e565b610ac8613b0c565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361033757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b7a57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461030857610c76366133e9565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cbb613b0c565b92541691169081036103375750808214801590610e9b575b61030d5760005b828110610ce357005b73ffffffffffffffffffffffffffffffffffffffff610d0b610d0683858a6135ed565b61396a565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156106fa57600091610e6d575b5015610e40575073ffffffffffffffffffffffffffffffffffffffff610d9a610d0683858a6135ed565b1690610daa610d068286896135ed565b91610db682878b6135ed565b3592813b1561030857606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156106fa57600192610e2f575b5001610cda565b6000610e3a91613478565b88610e28565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e8e915060203d8111610e94575b610e868183613478565b810190613af4565b89610d70565b503d610e7c565b5082821415610cd3565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857610f4d6131fb565b602435908115159182810361030857611047575b73ffffffffffffffffffffffffffffffffffffffff80610f7f613b0c565b169116918183146110195760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611071817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613d4c565b610f61565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576111566111427f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5613753565b604051918291602083526020830190613264565b0390f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085761119161321e565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576112296131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611268613b0c565b925416911690810361033757507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156112f55773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113eb613b0c565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114b75760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610c0a565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346103085761150d366133e9565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611550613b0c565b925416911690810361033757508084148015906116a5575b61030d5760005b84811061157857005b6115838183886135ed565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036103085760006020916115b6610d06868b8e6135ed565b8261162061164c6115c8898d8d6135ed565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613478565b51925af1156106fa576000513d61169c5750803b155b61166f575060010161156f565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611662565b5082841415611568565b34610308576116bd36613345565b80839492930361030d5773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117f257916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b85811061173957005b848110156117c3578060051b820135838112156103085782019081359167ffffffffffffffff831161030857602001918036038313610308577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b6001936117a1848b8a6135ed565b35926117ba604051928392602084526020840191613306565b0390a201611730565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611891613b0c565b925416911690810361033757507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a0811161190f57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576119736131fb565b6064359067ffffffffffffffff821161030857611997611a049236906004016132d8565b6119f66119a2613b0c565b926119cd847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612923691613557565b92604435926024359261398b565b005b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576020611a47611a426131fb565b61358e565b6040519015158152f35b3461030857611a5f36613345565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361030d57611a95856134b9565b94611aa36040519687613478565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611ad0826134b9565b0136602088013760005b818110611af757604051602080825281906111569082018a6133b5565b80611b1e611b0b610d06600194868b6135ed565b611b168387896135ed565b3590886135fd565b611b28828a6138d7565b5201611ada565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857611b6661407e565b611156604051928392602084526020840191613306565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857600435611bb761321e565b611bbf613b0c565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361033757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611c7257005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610c0a565b346103085760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857611d406131fb565b611d4861321e565b60443567ffffffffffffffff811161030857611d689036906004016132a7565b929060643567ffffffffffffffff811161030857611d8a9036906004016132a7565b9360843567ffffffffffffffff811161030857611dab9036906004016132d8565b939091611db6613b0c565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff821603612138575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561075057898b0361030d57611e60828483613e37565b156120ee5760005b8b81106120bf575050928992888a8897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb73ffffffffffffffffffffffffffffffffffffffff809b99169a8b9216988993611ee460405192839260408452611ed68d60408601908d61392d565b91848303602086015261392d565b0390a43b611eee57005b602094611f03611f0b92611f139536916134d1565b9936916134d1565b953691613557565b92611fc360405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a06044840152611f93611f6360a485018b6133b5565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858203016064860152886133b5565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc848303016084850152613264565b03816000875af19081156106fa577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916120a0575b50160361202657005b61209c9061206c6040519485947fc287817e00000000000000000000000000000000000000000000000000000000865260048601526060602486015260648501906133b5565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160448501526133b5565b0390fd5b6120b9915060203d6020116106f3576106e58183613478565b8661201d565b806120e88c6120de8f946120d6816001978d6135ed565b35928d6135ed565b3590888887613eb7565b01611e68565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b61214191613d4c565b8987611e0d565b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c90801580156122a2575b1561226c57505061115660005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61115691620186a082101561228f5761228990620186a0926138eb565b0461223c565b620186a061229d92046138eb565b61223c565b50811561222f565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760243567ffffffffffffffff8111610308576122f99036906004016132d8565b9073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117f2576123757f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160208352600435956020840191613306565b0390a2005b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576123b16131fb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806123f0613b0c565b9254169116908103610337575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156106fa57600091612530575b6040516020808252819061115690820185613264565b3d8083833e61253f8183613478565b8101906020818303126125b05780519067ffffffffffffffff82116125b4570181601f820112156125b0578051926125768461351d565b926125846040519485613478565b848452602085840101116125ad5750611156926125a79160208085019101613241565b9061251a565b80fd5b8280fd5b8380fd5b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760043567ffffffffffffffff8111610308576126079036906004016132d8565b60243567ffffffffffffffff8111610308576126279036906004016132d8565b6044939193359173ffffffffffffffffffffffffffffffffffffffff83168303610308576064359373ffffffffffffffffffffffffffffffffffffffff85168503610308577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc612695613b0c565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612b08575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612df4575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612b08575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612cc55781906128f48454613700565b601f8111612da1575b50600090601f8311600114612cff57600092612cf4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612cc55761297f7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613700565b601f8111612c41575b506000601f8211600114612b455781929394600092612b3a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612b08575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b0135905084806129a2565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612c29575083600195969710612bf1575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556129f4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612bc4565b90926020600181928686013581550194019101612bb0565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612cbb575b601f0160051c01905b818110612caf5750612988565b60008155600101612ca2565b9091508190612c99565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612914565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612d895750908460019594939210612d51575b505050811b019055612946565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612d44565b91936020600181928787013581550195019201612d2e565b909150836000526020600020601f840160051c81019160208510612dea575b90601f859493920160051c01905b818110612ddb57506128fd565b60008155849350600101612dce565b9091508190612dc0565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612702565b346103085760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030857612e806131fb565b60243567ffffffffffffffff811161030857612ea09036906004016132a7565b909160443567ffffffffffffffff811161030857612ec29036906004016132a7565b93909160643567ffffffffffffffff811161030857612f5693612eec612f5e9236906004016132d8565b959091612f4e612efa613b0c565b96612f25887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22613815565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129936916134d1565b9836916134d1565b943691613557565b9173ffffffffffffffffffffffffffffffffffffffff8216948515613081578651908551820361030d5760005b8281106130575750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb6040516040815280612ff8612fea8d60408401906133b5565b82810360208401528b6133b5565b0390a43b61300257005b611fc39160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a06044840152611f93611f6360a485018b6133b5565b8061307b6130676001938c6138d7565b51613072838b6138d7565b51908886613c37565b01612f8b565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103085760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576111566111427f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4613753565b346103085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610308576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361030857611a476020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613676565b346103085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103085760206131f36131c96131fb565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86126135fd565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361030857565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361030857565b60005b8381106132545750506000910152565b8181015183820152602001613244565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936132a081518092818752878088019101613241565b0116010190565b9181601f840112156103085782359167ffffffffffffffff8311610308576020808501948460051b01011161030857565b9181601f840112156103085782359167ffffffffffffffff8311610308576020838186019501011161030857565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103085760043567ffffffffffffffff8111610308578161338e916004016132a7565b929092916024359067ffffffffffffffff8211610308576133b1916004016132a7565b9091565b906020808351928381520192019060005b8181106133d35750505090565b82518452602093840193909201916001016133c6565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103085760043567ffffffffffffffff81116103085781613432916004016132a7565b9290929160243567ffffffffffffffff81116103085781613455916004016132a7565b929092916044359067ffffffffffffffff8211610308576133b1916004016132a7565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612cc557604052565b67ffffffffffffffff8111612cc55760051b60200190565b9291906134dd816134b9565b936134eb6040519586613478565b602085838152019160051b810192831161030857905b82821061350d57505050565b8135815260209182019101613501565b67ffffffffffffffff8111612cc557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926135638261351d565b916135716040519384613478565b829481845281830111610308578281602093846000960137010152565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135e65773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156117c35760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff83161561364c5760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff0000000000000000000000000000000000000000000000000000000081146135e6577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136f95760005260205260ff6040600020541690565b5050600190565b90600182811c92168015613749575b602083101461371a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161370f565b906040519182600082549261376784613700565b80845293600181169081156137d5575060011461378e575b5061378c92500383613478565b565b90506000929192526020600020906000915b8183106137b957505090602061378c928201013861377f565b60209193508060019154838589010152019101909184926137a0565b6020935061378c9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861377f565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff604060002054161561386f5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156117c35760209160051b010190565b818102929181159184041417156138fe57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116103085760209260051b809284830137010190565b3573ffffffffffffffffffffffffffffffffffffffff811681036103085790565b94919092939473ffffffffffffffffffffffffffffffffffffffff8216938415613081576139d087878573ffffffffffffffffffffffffffffffffffffffff95613c37565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b613a12575b5050505050565b613a6d9160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a4830190613264565b03816000865af19081156106fa577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613ad5575b501603610698578080613a0b565b613aee915060203d6020116106f3576106e58183613478565b38613ac7565b90816020910312610308575180151581036103085790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613c28573233148015613c2d575b613c28577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613b97575b50613b9457503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156106fa57600091613c09575b5038613b8a565b613c22915060203d602011610e9457610e868183613478565b38613c02565b503390565b5060183610613b53565b909183613c45575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613cbb57505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613c3f565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b9081602091031261030857517fffffffff00000000000000000000000000000000000000000000000000000000811681036103085790565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613e2d575b613d75575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa9081156106fa57600091613e0e575b5015613de15750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613e27915060203d602011610e9457610e868183613478565b38613dd8565b50813b1515613d6d565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613e62575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613e5c565b91929084613ec6575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054908582039180831015614022575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603613f3e575b50613a0b565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff8616600052602052604060002054958087019680881115613fc457505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080613f38565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156141b25732331480156141ba575b6141b257803314908115614111575b506140e0576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103085760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156106fa57600091614193575b50386140d4565b6141ac915060203d602011610e9457610e868183613478565b3861418c565b506000903690565b50601836106140c556fea26469706673582212201ffeb232aba325dc0d2fe2bff23ed6622453aaf98baabad24dab6961165e57fb64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
