{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20PresetFixedSupplyUpgradeable",
  "sourceName": "contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol",
  "abi": [
    {
      "inputs": [],
      "name": "INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "initialSupply",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611d83806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d71461025f578063a9059cbb1461028f578063bd3a13f6146102bf578063dd62ed3e146102db576100ea565b806370a08231146101f557806379cc67901461022557806395d89b4114610241576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806342966c68146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f761030b565b604051610104919061123e565b60405180910390f35b61012760048036038101906101229190611308565b61039d565b6040516101349190611363565b60405180910390f35b6101456103c0565b604051610152919061138d565b60405180910390f35b610175600480360381019061017091906113a8565b6103ca565b6040516101829190611363565b60405180910390f35b6101936103f9565b6040516101a09190611417565b60405180910390f35b6101c360048036038101906101be9190611308565b610402565b6040516101d09190611363565b60405180910390f35b6101f360048036038101906101ee9190611432565b610439565b005b61020f600480360381019061020a919061145f565b61044d565b60405161021c919061138d565b60405180910390f35b61023f600480360381019061023a9190611308565b610496565b005b6102496104b6565b604051610256919061123e565b60405180910390f35b61027960048036038101906102749190611308565b610548565b6040516102869190611363565b60405180910390f35b6102a960048036038101906102a49190611308565b6105bf565b6040516102b69190611363565b60405180910390f35b6102d960048036038101906102d491906115c1565b6105e2565b005b6102f560048036038101906102f09190611660565b610722565b604051610302919061138d565b60405180910390f35b60606036805461031a906116cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610346906116cf565b80156103935780601f1061036857610100808354040283529160200191610393565b820191906000526020600020905b81548152906001019060200180831161037657829003601f168201915b5050505050905090565b6000806103a86107a9565b90506103b58185856107b1565b600191505092915050565b6000603554905090565b6000806103d56107a9565b90506103e285828561097a565b6103ed858585610a06565b60019150509392505050565b60006012905090565b60008061040d6107a9565b905061042e81858561041f8589610722565b610429919061172f565b6107b1565b600191505092915050565b61044a6104446107a9565b82610c7f565b50565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104a8826104a26107a9565b8361097a565b6104b28282610c7f565b5050565b6060603780546104c5906116cf565b80601f01602080910402602001604051908101604052809291908181526020018280546104f1906116cf565b801561053e5780601f106105135761010080835404028352916020019161053e565b820191906000526020600020905b81548152906001019060200180831161052157829003601f168201915b5050505050905090565b6000806105536107a9565b905060006105618286610722565b9050838110156105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059d906117f7565b60405180910390fd5b6105b382868684036107b1565b60019250505092915050565b6000806105ca6107a9565b90506105d7818585610a06565b600191505092915050565b60008060019054906101000a900460ff16159050801580610615575060008060009054906101000a900460ff1660ff1614155b8015610642575061062530610e4e565b806106415750600160008054906101000a900460ff1660ff1614155b5b15610679576040517f7ab8448200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156106b6576001600060016101000a81548160ff0219169083151502179055505b6106c285858585610e71565b801561071b5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610712919061185c565b60405180910390a15b5050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610817906118e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869061197b565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096d919061138d565b60405180910390a3505050565b60006109868484610722565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a0057818110156109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906119e7565b60405180910390fd5b6109ff84848484036107b1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90611a79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb90611b0b565b60405180910390fd5b610aef838383610ed3565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90611b9d565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c66919061138d565b60405180910390a3610c79848484610ed8565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590611c2f565b60405180910390fd5b610cfa82600083610ed3565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7890611cc1565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e35919061138d565b60405180910390a3610e4983600084610ed8565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610eb7576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ec18484610edd565b610ecd84848484610f55565b50505050565b505050565b505050565b600060019054906101000a900460ff16610f23576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160369080519060200190610f39929190611102565b508060379080519060200190610f50929190611102565b505050565b600060019054906101000a900460ff16610f9b576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fa58183610fab565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101190611d2d565b60405180910390fd5b61102660008383610ed3565b8060356000828254611038919061172f565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110ea919061138d565b60405180910390a36110fe60008383610ed8565b5050565b82805461110e906116cf565b90600052602060002090601f0160209004810192826111305760008555611177565b82601f1061114957805160ff1916838001178555611177565b82800160010185558215611177579182015b8281111561117657825182559160200191906001019061115b565b5b5090506111849190611188565b5090565b5b808211156111a1576000816000905550600101611189565b5090565b600081519050919050565b600082825260208201905092915050565b60005b838110156111df5780820151818401526020810190506111c4565b838111156111ee576000848401525b50505050565b6000601f19601f8301169050919050565b6000611210826111a5565b61121a81856111b0565b935061122a8185602086016111c1565b611233816111f4565b840191505092915050565b600060208201905081810360008301526112588184611205565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061129f82611274565b9050919050565b6112af81611294565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b6000819050919050565b6112e5816112d2565b81146112f057600080fd5b50565b600081359050611302816112dc565b92915050565b6000806040838503121561131f5761131e61126a565b5b600061132d858286016112bd565b925050602061133e858286016112f3565b9150509250929050565b60008115159050919050565b61135d81611348565b82525050565b60006020820190506113786000830184611354565b92915050565b611387816112d2565b82525050565b60006020820190506113a2600083018461137e565b92915050565b6000806000606084860312156113c1576113c061126a565b5b60006113cf868287016112bd565b93505060206113e0868287016112bd565b92505060406113f1868287016112f3565b9150509250925092565b600060ff82169050919050565b611411816113fb565b82525050565b600060208201905061142c6000830184611408565b92915050565b6000602082840312156114485761144761126a565b5b6000611456848285016112f3565b91505092915050565b6000602082840312156114755761147461126a565b5b6000611483848285016112bd565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6114ce826111f4565b810181811067ffffffffffffffff821117156114ed576114ec611496565b5b80604052505050565b6000611500611260565b905061150c82826114c5565b919050565b600067ffffffffffffffff82111561152c5761152b611496565b5b611535826111f4565b9050602081019050919050565b82818337600083830152505050565b600061156461155f84611511565b6114f6565b9050828152602081018484840111156115805761157f611491565b5b61158b848285611542565b509392505050565b600082601f8301126115a8576115a761148c565b5b81356115b8848260208601611551565b91505092915050565b600080600080608085870312156115db576115da61126a565b5b600085013567ffffffffffffffff8111156115f9576115f861126f565b5b61160587828801611593565b945050602085013567ffffffffffffffff8111156116265761162561126f565b5b61163287828801611593565b9350506040611643878288016112f3565b9250506060611654878288016112bd565b91505092959194509250565b600080604083850312156116775761167661126a565b5b6000611685858286016112bd565b9250506020611696858286016112bd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116e757607f821691505b6020821081036116fa576116f96116a0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173a826112d2565b9150611745836112d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177a57611779611700565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006117e16025836111b0565b91506117ec82611785565b604082019050919050565b60006020820190508181036000830152611810816117d4565b9050919050565b6000819050919050565b6000819050919050565b600061184661184161183c84611817565b611821565b6113fb565b9050919050565b6118568161182b565b82525050565b6000602082019050611871600083018461184d565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006118d36024836111b0565b91506118de82611877565b604082019050919050565b60006020820190508181036000830152611902816118c6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119656022836111b0565b915061197082611909565b604082019050919050565b6000602082019050818103600083015261199481611958565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006119d1601d836111b0565b91506119dc8261199b565b602082019050919050565b60006020820190508181036000830152611a00816119c4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611a636025836111b0565b9150611a6e82611a07565b604082019050919050565b60006020820190508181036000830152611a9281611a56565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611af56023836111b0565b9150611b0082611a99565b604082019050919050565b60006020820190508181036000830152611b2481611ae8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611b876026836111b0565b9150611b9282611b2b565b604082019050919050565b60006020820190508181036000830152611bb681611b7a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c196021836111b0565b9150611c2482611bbd565b604082019050919050565b60006020820190508181036000830152611c4881611c0c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cab6022836111b0565b9150611cb682611c4f565b604082019050919050565b60006020820190508181036000830152611cda81611c9e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611d17601f836111b0565b9150611d2282611ce1565b602082019050919050565b60006020820190508181036000830152611d4681611d0a565b905091905056fea26469706673582212209a0f9d19b6cba32ccd46bf867eac1f9de9c423064cfb40f19d0bcf8ee9c6dfbf64736f6c634300080d0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d71461025f578063a9059cbb1461028f578063bd3a13f6146102bf578063dd62ed3e146102db576100ea565b806370a08231146101f557806379cc67901461022557806395d89b4114610241576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806342966c68146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f761030b565b604051610104919061123e565b60405180910390f35b61012760048036038101906101229190611308565b61039d565b6040516101349190611363565b60405180910390f35b6101456103c0565b604051610152919061138d565b60405180910390f35b610175600480360381019061017091906113a8565b6103ca565b6040516101829190611363565b60405180910390f35b6101936103f9565b6040516101a09190611417565b60405180910390f35b6101c360048036038101906101be9190611308565b610402565b6040516101d09190611363565b60405180910390f35b6101f360048036038101906101ee9190611432565b610439565b005b61020f600480360381019061020a919061145f565b61044d565b60405161021c919061138d565b60405180910390f35b61023f600480360381019061023a9190611308565b610496565b005b6102496104b6565b604051610256919061123e565b60405180910390f35b61027960048036038101906102749190611308565b610548565b6040516102869190611363565b60405180910390f35b6102a960048036038101906102a49190611308565b6105bf565b6040516102b69190611363565b60405180910390f35b6102d960048036038101906102d491906115c1565b6105e2565b005b6102f560048036038101906102f09190611660565b610722565b604051610302919061138d565b60405180910390f35b60606036805461031a906116cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610346906116cf565b80156103935780601f1061036857610100808354040283529160200191610393565b820191906000526020600020905b81548152906001019060200180831161037657829003601f168201915b5050505050905090565b6000806103a86107a9565b90506103b58185856107b1565b600191505092915050565b6000603554905090565b6000806103d56107a9565b90506103e285828561097a565b6103ed858585610a06565b60019150509392505050565b60006012905090565b60008061040d6107a9565b905061042e81858561041f8589610722565b610429919061172f565b6107b1565b600191505092915050565b61044a6104446107a9565b82610c7f565b50565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104a8826104a26107a9565b8361097a565b6104b28282610c7f565b5050565b6060603780546104c5906116cf565b80601f01602080910402602001604051908101604052809291908181526020018280546104f1906116cf565b801561053e5780601f106105135761010080835404028352916020019161053e565b820191906000526020600020905b81548152906001019060200180831161052157829003601f168201915b5050505050905090565b6000806105536107a9565b905060006105618286610722565b9050838110156105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059d906117f7565b60405180910390fd5b6105b382868684036107b1565b60019250505092915050565b6000806105ca6107a9565b90506105d7818585610a06565b600191505092915050565b60008060019054906101000a900460ff16159050801580610615575060008060009054906101000a900460ff1660ff1614155b8015610642575061062530610e4e565b806106415750600160008054906101000a900460ff1660ff1614155b5b15610679576040517f7ab8448200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156106b6576001600060016101000a81548160ff0219169083151502179055505b6106c285858585610e71565b801561071b5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610712919061185c565b60405180910390a15b5050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610817906118e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108869061197b565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096d919061138d565b60405180910390a3505050565b60006109868484610722565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a0057818110156109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906119e7565b60405180910390fd5b6109ff84848484036107b1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90611a79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb90611b0b565b60405180910390fd5b610aef838383610ed3565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90611b9d565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c66919061138d565b60405180910390a3610c79848484610ed8565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590611c2f565b60405180910390fd5b610cfa82600083610ed3565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7890611cc1565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e35919061138d565b60405180910390a3610e4983600084610ed8565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610eb7576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ec18484610edd565b610ecd84848484610f55565b50505050565b505050565b505050565b600060019054906101000a900460ff16610f23576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160369080519060200190610f39929190611102565b508060379080519060200190610f50929190611102565b505050565b600060019054906101000a900460ff16610f9b576040517f96bfb10000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fa58183610fab565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101190611d2d565b60405180910390fd5b61102660008383610ed3565b8060356000828254611038919061172f565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110ea919061138d565b60405180910390a36110fe60008383610ed8565b5050565b82805461110e906116cf565b90600052602060002090601f0160209004810192826111305760008555611177565b82601f1061114957805160ff1916838001178555611177565b82800160010185558215611177579182015b8281111561117657825182559160200191906001019061115b565b5b5090506111849190611188565b5090565b5b808211156111a1576000816000905550600101611189565b5090565b600081519050919050565b600082825260208201905092915050565b60005b838110156111df5780820151818401526020810190506111c4565b838111156111ee576000848401525b50505050565b6000601f19601f8301169050919050565b6000611210826111a5565b61121a81856111b0565b935061122a8185602086016111c1565b611233816111f4565b840191505092915050565b600060208201905081810360008301526112588184611205565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061129f82611274565b9050919050565b6112af81611294565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b6000819050919050565b6112e5816112d2565b81146112f057600080fd5b50565b600081359050611302816112dc565b92915050565b6000806040838503121561131f5761131e61126a565b5b600061132d858286016112bd565b925050602061133e858286016112f3565b9150509250929050565b60008115159050919050565b61135d81611348565b82525050565b60006020820190506113786000830184611354565b92915050565b611387816112d2565b82525050565b60006020820190506113a2600083018461137e565b92915050565b6000806000606084860312156113c1576113c061126a565b5b60006113cf868287016112bd565b93505060206113e0868287016112bd565b92505060406113f1868287016112f3565b9150509250925092565b600060ff82169050919050565b611411816113fb565b82525050565b600060208201905061142c6000830184611408565b92915050565b6000602082840312156114485761144761126a565b5b6000611456848285016112f3565b91505092915050565b6000602082840312156114755761147461126a565b5b6000611483848285016112bd565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6114ce826111f4565b810181811067ffffffffffffffff821117156114ed576114ec611496565b5b80604052505050565b6000611500611260565b905061150c82826114c5565b919050565b600067ffffffffffffffff82111561152c5761152b611496565b5b611535826111f4565b9050602081019050919050565b82818337600083830152505050565b600061156461155f84611511565b6114f6565b9050828152602081018484840111156115805761157f611491565b5b61158b848285611542565b509392505050565b600082601f8301126115a8576115a761148c565b5b81356115b8848260208601611551565b91505092915050565b600080600080608085870312156115db576115da61126a565b5b600085013567ffffffffffffffff8111156115f9576115f861126f565b5b61160587828801611593565b945050602085013567ffffffffffffffff8111156116265761162561126f565b5b61163287828801611593565b9350506040611643878288016112f3565b9250506060611654878288016112bd565b91505092959194509250565b600080604083850312156116775761167661126a565b5b6000611685858286016112bd565b9250506020611696858286016112bd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116e757607f821691505b6020821081036116fa576116f96116a0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173a826112d2565b9150611745836112d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177a57611779611700565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006117e16025836111b0565b91506117ec82611785565b604082019050919050565b60006020820190508181036000830152611810816117d4565b9050919050565b6000819050919050565b6000819050919050565b600061184661184161183c84611817565b611821565b6113fb565b9050919050565b6118568161182b565b82525050565b6000602082019050611871600083018461184d565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006118d36024836111b0565b91506118de82611877565b604082019050919050565b60006020820190508181036000830152611902816118c6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119656022836111b0565b915061197082611909565b604082019050919050565b6000602082019050818103600083015261199481611958565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006119d1601d836111b0565b91506119dc8261199b565b602082019050919050565b60006020820190508181036000830152611a00816119c4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611a636025836111b0565b9150611a6e82611a07565b604082019050919050565b60006020820190508181036000830152611a9281611a56565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611af56023836111b0565b9150611b0082611a99565b604082019050919050565b60006020820190508181036000830152611b2481611ae8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611b876026836111b0565b9150611b9282611b2b565b604082019050919050565b60006020820190508181036000830152611bb681611b7a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c196021836111b0565b9150611c2482611bbd565b604082019050919050565b60006020820190508181036000830152611c4881611c0c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cab6022836111b0565b9150611cb682611c4f565b604082019050919050565b60006020820190508181036000830152611cda81611c9e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611d17601f836111b0565b9150611d2282611ce1565b602082019050919050565b60006020820190508181036000830152611d4681611d0a565b905091905056fea26469706673582212209a0f9d19b6cba32ccd46bf867eac1f9de9c423064cfb40f19d0bcf8ee9c6dfbf64736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
