{
  "_format": "hh-sol-artifact-1",
  "contractName": "Reader",
  "sourceName": "contracts/peripherals/Reader.sol",
  "abi": [
    {
      "inputs": [],
      "name": "BASIS_POINTS_DIVISOR",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "POSITION_PROPS_LENGTH",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PRICE_PRECISION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "USDG_DECIMALS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVault",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenIn",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountIn",
          "type": "uint256"
        }
      ],
      "name": "getAmountOut",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVault",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenIn",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountIn",
          "type": "uint256"
        }
      ],
      "name": "getFeeBasisPoints",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_usdgAmount",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getFullVaultTokenInfo",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getFundingRates",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVault",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenIn",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenOut",
          "type": "address"
        }
      ],
      "name": "getMaxAmountIn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getPairInfo",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_collateralTokens",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "_indexTokens",
          "type": "address[]"
        },
        {
          "internalType": "bool[]",
          "name": "_isLong",
          "type": "bool[]"
        }
      ],
      "name": "getPositions",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVaultPriceFeed",
          "name": "_priceFeed",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getPrices",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_yieldTrackers",
          "type": "address[]"
        }
      ],
      "name": "getStakingInfo",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getTokenBalances",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getTokenBalancesWithSupplies",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_excludedAccounts",
          "type": "address[]"
        }
      ],
      "name": "getTokenSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_yieldTokens",
          "type": "address[]"
        }
      ],
      "name": "getTotalStaked",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vault",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_usdgAmount",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "getVaultTokenInfo",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_vesters",
          "type": "address[]"
        }
      ],
      "name": "getVestingInfo",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50614b6d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063126082cf14610101578063205425681461011b5780632413c8c11461022c5780632ac0184c146102cd5780632e3e33421461037e5780633613d5271461042f578063440f018c146104e0578063482119341461053a5780637b906e93146105eb57806386d4d0f5146106ac578063870d917c1461075d578063937a0be81461076557806395082d251461081657806395a7535a1461081e578063a4543ead146108d8578063ad7e549714610989578063d7176ca914610991578063d802178e146109e6578063dc383cab14610a97578063f3535e6c14610c55575b600080fd5b610109610c8d565b60408051918252519081900360200190f35b6101dc6004803603608081101561013157600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561016b57600080fd5b82018360208201111561017d57600080fd5b803590602001918460208302840111600160201b8311171561019e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c93945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b6101dc6004803603602081101561024257600080fd5b810190602081018135600160201b81111561025c57600080fd5b82018360208201111561026e57600080fd5b803590602001918460208302840111600160201b8311171561028f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506113a1945050505050565b610109600480360360408110156102e357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561030d57600080fd5b82018360208201111561031f57600080fd5b803590602001918460208302840111600160201b8311171561034057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061149a945050505050565b6101dc6004803603604081101561039457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156103be57600080fd5b8201836020820111156103d057600080fd5b803590602001918460208302840111600160201b831117156103f157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115c5945050505050565b6101dc6004803603604081101561044557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111600160201b831117156104a257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117ca945050505050565b61051c600480360360808110156104f657600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611c04565b60408051938452602084019290925282820152519081900360600190f35b6101dc6004803603604081101561055057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460208302840111600160201b831117156105ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612169945050505050565b6101dc6004803603608081101561060157600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061261d945050505050565b6101dc600480360360408110156106c257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612e4e945050505050565b610109612f4e565b6101dc6004803603604081101561077b57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107a557600080fd5b8201836020820111156107b757600080fd5b803590602001918460208302840111600160201b831117156107d857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612f53945050505050565b6101096130e8565b6101dc6004803603606081101561083457600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561086757600080fd5b82018360208201111561087957600080fd5b803590602001918460208302840111600160201b8311171561089a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130f8945050505050565b6101dc600480360360408110156108ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091857600080fd5b82018360208201111561092a57600080fd5b803590602001918460208302840111600160201b8311171561094b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506135c6945050505050565b610109613832565b6109cd600480360360808110156109a757600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135613837565b6040805192835260208301919091528051918290030190f35b6101dc600480360360408110156109fc57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a2657600080fd5b820183602082011115610a3857600080fd5b803590602001918460208302840111600160201b83111715610a5957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613eed945050505050565b6101dc600480360360a0811015610aad57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b6257600080fd5b820183602082011115610b7457600080fd5b803590602001918460208302840111600160201b83111715610b9557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610be457600080fd5b820183602082011115610bf657600080fd5b803590602001918460208302840111600160201b83111715610c1757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614039945050505050565b61010960048036036060811015610c6b57600080fd5b506001600160a01b038135811691602081013582169160409091013516614435565b61271081565b60606000600a905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdb57600080fd5b505afa158015610cef573d6000803e3d6000fd5b505050506040513d6020811015610d0557600080fd5b5051855190915060609084026001600160401b0381118015610d2657600080fd5b50604051908082528060200260200182016040528015610d50578160200160208202803683370190505b50905060005b8651811015611394576000878281518110610d6d57fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415610d955750885b846001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610de257600080fd5b505afa158015610df6573d6000803e3d6000fd5b505050506040513d6020811015610e0c57600080fd5b505183518490848902908110610e1e57fe5b602002602001018181525050846001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b5051835184906001858a0201908110610eb657fe5b602002602001018181525050846001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d6020811015610f3957600080fd5b5051835184906002858a0201908110610f4e57fe5b602002602001018181525050846001600160a01b0316632c668ec1828b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d6020811015610fd957600080fd5b5051835184906003858a0201908110610fee57fe5b602002602001018181525050846001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561104757600080fd5b505afa15801561105b573d6000803e3d6000fd5b505050506040513d602081101561107157600080fd5b5051835184906004858a020190811061108657fe5b602002602001018181525050846001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156110df57600080fd5b505afa1580156110f3573d6000803e3d6000fd5b505050506040513d602081101561110957600080fd5b5051835184906005858a020190811061111e57fe5b602002602001018181525050846001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d60208110156111a157600080fd5b5051835184906006858a02019081106111b657fe5b602002602001018181525050846001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561120f57600080fd5b505afa158015611223573d6000803e3d6000fd5b505050506040513d602081101561123957600080fd5b5051835184906007858a020190811061124e57fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918716926356c8c2c192604480840193829003018186803b1580156112a857600080fd5b505afa1580156112bc573d6000803e3d6000fd5b505050506040513d60208110156112d257600080fd5b5051835184906008858a02019081106112e757fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918716926356c8c2c192604480840193829003018186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d602081101561136b57600080fd5b5051835184906009858a020190811061138057fe5b602090810291909101015250600101610d56565b5098975050505050505050565b60608082516001600160401b03811180156113bb57600080fd5b506040519080825280602002602001820160405280156113e5578160200160208202803683370190505b50905060005b835181101561149357600084828151811061140257fe5b60200260200101519050806001600160a01b031663817b1cd26040518163ffffffff1660e01b815260040160206040518083038186803b15801561144557600080fd5b505afa158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051835184908490811061147f57fe5b6020908102919091010152506001016113eb565b5092915050565b600080836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d657600080fd5b505afa1580156114ea573d6000803e3d6000fd5b505050506040513d602081101561150057600080fd5b5051905060005b83518110156115bb57600084828151811061151e57fe5b602002602001015190506000866001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d60208110156115a157600080fd5b505190506115af84826148e8565b93505050600101611507565b5090505b92915050565b60606000600290506060818451026001600160401b03811180156115e857600080fd5b50604051908082528060200260200182016040528015611612578160200160208202803683370190505b50905060005b84518110156117c157600085828151811061162f57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561169e57866001600160a01b031631838584028151811061166d57fe5b6020026020010181815250506000838584026001018151811061168c57fe5b602002602001018181525050506117b9565b806001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156116eb57600080fd5b505afa1580156116ff573d6000803e3d6000fd5b505050506040513d602081101561171557600080fd5b50518351849084870290811061172757fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176c57600080fd5b505afa158015611780573d6000803e3d6000fd5b505050506040513d602081101561179657600080fd5b5051835184906001858802019081106117ab57fe5b602002602001018181525050505b600101611618565b50949350505050565b60606000600690506060818451026001600160401b03811180156117ed57600080fd5b50604051908082528060200260200182016040528015611817578160200160208202803683370190505b50905060005b84518110156117c157600085828151811061183457fe5b602090810291909101810151604080516317e1d38560e11b81526001600160a01b0380841660048301526001602483018190526044830152600060648301529151929450908a1692632fc3a70a92608480840193829003018186803b15801561189c57600080fd5b505afa1580156118b0573d6000803e3d6000fd5b505050506040513d60208110156118c657600080fd5b5051835184908487029081106118d857fe5b602090810291909101810191909152604080516317e1d38560e11b81526001600160a01b0384811660048301526000602483018190526001604484015260648301529151918a1692632fc3a70a92608480840193829003018186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d602081101561196a57600080fd5b50518351849060018588020190811061197f57fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918a16926356c8c2c192604480840193829003018186803b1580156119d957600080fd5b505afa1580156119ed573d6000803e3d6000fd5b505050506040513d6020811015611a0357600080fd5b505183518490600285880201908110611a1857fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918a16926356c8c2c192604480840193829003018186803b158015611a7257600080fd5b505afa158015611a86573d6000803e3d6000fd5b505050506040513d6020811015611a9c57600080fd5b505183518490600385880201908110611ab157fe5b602002602001018181525050866001600160a01b0316636ce8a44b826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d6020811015611b3457600080fd5b5051611b41576000611b44565b60015b60ff168385840260040181518110611b5857fe5b602002602001018181525050866001600160a01b03166348cac277826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611bb157600080fd5b505afa158015611bc5573d6000803e3d6000fd5b505050506040513d6020811015611bdb57600080fd5b505183518490600585880201908110611bf057fe5b60209081029190910101525060010161181d565b600080600080876001600160a01b03166381a612d6886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d6020811015611c8157600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038a811660048301529151929350600092918b1691638ee573ac91602480820192602092909190829003018186803b158015611cd357600080fd5b505afa158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b505190506000611d2368327cb2734119d3b7a9601e1b611d1d898661492a565b90614983565b9050611d3f600a83900a611d1d83670de0b6b3a764000061492a565b905060008a6001600160a01b03166342b60b038b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611d9057600080fd5b505afa158015611da4573d6000803e3d6000fd5b505050506040513d6020811015611dba57600080fd5b50518015611e3d57508a6001600160a01b03166342b60b038a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e1057600080fd5b505afa158015611e24573d6000803e3d6000fd5b505050506040513d6020811015611e3a57600080fd5b50515b9050600081611eb0578b6001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7f57600080fd5b505afa158015611e93573d6000803e3d6000fd5b505050506040513d6020811015611ea957600080fd5b5051611f16565b8b6001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50515b9050600082611f89578c6001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5857600080fd5b505afa158015611f6c573d6000803e3d6000fd5b505050506040513d6020811015611f8257600080fd5b5051611fef565b8c6001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc257600080fd5b505afa158015611fd6573d6000803e3d6000fd5b505050506040513d6020811015611fec57600080fd5b50515b905060008d6001600160a01b031663c7e074c38e87868660016040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b15801561206357600080fd5b505afa158015612077573d6000803e3d6000fd5b505050506040513d602081101561208d57600080fd5b8101908080519060200190929190505050905060008e6001600160a01b031663c7e074c38e88878760006040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d602081101561213c57600080fd5b50519050600081831161214f5781612151565b825b9b509199509750505050505050509450945094915050565b60606000600790506060818451026001600160401b038111801561218c57600080fd5b506040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060005b84518110156117c15760008582815181106121d357fe5b60200260200101519050806001600160a01b0316635d50e729886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561222a57600080fd5b505afa15801561223e573d6000803e3d6000fd5b505050506040513d602081101561225457600080fd5b50518351849084870290811061226657fe5b602002602001018181525050806001600160a01b031663d5a73fdd886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156122bf57600080fd5b505afa1580156122d3573d6000803e3d6000fd5b505050506040513d60208110156122e957600080fd5b5051835184906001858802019081106122fe57fe5b60200260200101818152505085828151811061231657fe5b60200260200101516001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561236a57600080fd5b505afa15801561237e573d6000803e3d6000fd5b505050506040513d602081101561239457600080fd5b5051835184906002858802019081106123a957fe5b602002602001018181525050806001600160a01b03166371417b32886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561240257600080fd5b505afa158015612416573d6000803e3d6000fd5b505050506040513d602081101561242c57600080fd5b50518351849060038588020190811061244157fe5b602002602001018181525050806001600160a01b031663402914f5886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561249a57600080fd5b505afa1580156124ae573d6000803e3d6000fd5b505050506040513d60208110156124c457600080fd5b5051835184906004858802019081106124d957fe5b602002602001018181525050806001600160a01b03166308f26c76886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561253257600080fd5b505afa158015612546573d6000803e3d6000fd5b505050506040513d602081101561255c57600080fd5b50518351849060058588020190811061257157fe5b602002602001018181525050806001600160a01b03166345f01ee6886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156125ca57600080fd5b505afa1580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b50518351849060068588020190811061260957fe5b6020908102919091010152506001016121bc565b60606000600c905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561266557600080fd5b505afa158015612679573d6000803e3d6000fd5b505050506040513d602081101561268f57600080fd5b5051855190915060609084026001600160401b03811180156126b057600080fd5b506040519080825280602002602001820160405280156126da578160200160208202803683370190505b50905060005b86518110156113945760008782815181106126f757fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561271f5750885b846001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561276c57600080fd5b505afa158015612780573d6000803e3d6000fd5b505050506040513d602081101561279657600080fd5b5051835184908489029081106127a857fe5b602002602001018181525050846001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561280157600080fd5b505afa158015612815573d6000803e3d6000fd5b505050506040513d602081101561282b57600080fd5b5051835184906001858a020190811061284057fe5b602002602001018181525050846001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561289957600080fd5b505afa1580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b5051835184906002858a02019081106128d857fe5b602002602001018181525050846001600160a01b0316632c668ec1828b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561293957600080fd5b505afa15801561294d573d6000803e3d6000fd5b505050506040513d602081101561296357600080fd5b5051835184906003858a020190811061297857fe5b602002602001018181525050846001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156129d157600080fd5b505afa1580156129e5573d6000803e3d6000fd5b505050506040513d60208110156129fb57600080fd5b5051835184906004858a0201908110612a1057fe5b602002602001018181525050846001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612a6957600080fd5b505afa158015612a7d573d6000803e3d6000fd5b505050506040513d6020811015612a9357600080fd5b5051835184906005858a0201908110612aa857fe5b602002602001018181525050846001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612b0157600080fd5b505afa158015612b15573d6000803e3d6000fd5b505050506040513d6020811015612b2b57600080fd5b5051835184906006858a0201908110612b4057fe5b602002602001018181525050846001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612b9957600080fd5b505afa158015612bad573d6000803e3d6000fd5b505050506040513d6020811015612bc357600080fd5b5051835184906007858a0201908110612bd857fe5b602002602001018181525050846001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612c3157600080fd5b505afa158015612c45573d6000803e3d6000fd5b505050506040513d6020811015612c5b57600080fd5b5051835184906008858a0201908110612c7057fe5b602002602001018181525050846001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612cc957600080fd5b505afa158015612cdd573d6000803e3d6000fd5b505050506040513d6020811015612cf357600080fd5b5051835184906009858a0201908110612d0857fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918716926356c8c2c192604480840193829003018186803b158015612d6257600080fd5b505afa158015612d76573d6000803e3d6000fd5b505050506040513d6020811015612d8c57600080fd5b505183518490600a858a0201908110612da157fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918716926356c8c2c192604480840193829003018186803b158015612dfb57600080fd5b505afa158015612e0f573d6000803e3d6000fd5b505050506040513d6020811015612e2557600080fd5b505183518490600b858a0201908110612e3a57fe5b6020908102919091010152506001016126e0565b60608082516001600160401b0381118015612e6857600080fd5b50604051908082528060200260200182016040528015612e92578160200160208202803683370190505b50905060005b83518110156115bb57846001600160a01b0316631ce9cb8f858381518110612ebc57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612f0157600080fd5b505afa158015612f15573d6000803e3d6000fd5b505050506040513d6020811015612f2b57600080fd5b50518251839083908110612f3b57fe5b6020908102919091010152600101612e98565b601281565b60606000600290506060818451026001600160401b0381118015612f7657600080fd5b50604051908082528060200260200182016040528015612fa0578160200160208202803683370190505b50905060005b84518110156117c1576000858281518110612fbd57fe5b60200260200101519050806001600160a01b031663402914f5886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b50518351849084870290811061305057fe5b602002602001018181525050806001600160a01b0316632459f51d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561309557600080fd5b505afa1580156130a9573d6000803e3d6000fd5b505050506040513d60208110156130bf57600080fd5b5051835184906001858802019081106130d457fe5b602090810291909101015250600101612fa6565b68327cb2734119d3b7a9601e1b81565b60606000600290506060818451026001600160401b038111801561311b57600080fd5b50604051908082528060200260200182016040528015613145578160200160208202803683370190505b5090508560005b85518110156135b857600086828151811061316357fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561318b5750865b6000836001600160a01b03166342b60b03836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156131da57600080fd5b505afa1580156131ee573d6000803e3d6000fd5b505050506040513d602081101561320457600080fd5b505161327457836001600160a01b031663c4f718bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561324357600080fd5b505afa158015613257573d6000803e3d6000fd5b505050506040513d602081101561326d57600080fd5b50516132da565b836001600160a01b031663134ca63b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132ad57600080fd5b505afa1580156132c1573d6000803e3d6000fd5b505050506040513d60208110156132d757600080fd5b50515b90506000846001600160a01b031663c3c7b9e9846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561332b57600080fd5b505afa15801561333f573d6000803e3d6000fd5b505050506040513d602081101561335557600080fd5b5051604080516352f55eed60e01b81526001600160a01b0386811660048301529151929350600092918816916352f55eed91602480820192602092909190829003018186803b1580156133a757600080fd5b505afa1580156133bb573d6000803e3d6000fd5b505050506040513d60208110156133d157600080fd5b505190508015613404576133e981611d1d858561492a565b87898702815181106133f757fe5b6020026020010181815250505b6000866001600160a01b031663c65bc7b1866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561345357600080fd5b505afa158015613467573d6000803e3d6000fd5b505050506040513d602081101561347d57600080fd5b505111156135a8576000866001600160a01b031663a93acac2866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156134d457600080fd5b505afa1580156134e8573d6000803e3d6000fd5b505050506040513d60208110156134fe57600080fd5b50516040805163c65bc7b160e01b81526001600160a01b0388811660048301529151929350600092918a169163c65bc7b191602480820192602092909190829003018186803b15801561355057600080fd5b505afa158015613564573d6000803e3d6000fd5b505050506040513d602081101561357a57600080fd5b5051905061358881836149c2565b898b89026001018151811061359957fe5b60200260200101818152505050505b50506001909201915061314c9050565b5090925050505b9392505050565b80516060906002908190839082900482026001600160401b03811180156135ec57600080fd5b50604051908082528060200260200182016040528015613616578160200160208202803683370190505b50905060005b8386518161362657fe5b04811015613828576000868583028151811061363e57fe5b602002602001015190506000878684026001018151811061365b57fe5b602002602001015190506000896001600160a01b031663e6a4390584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156136c557600080fd5b505afa1580156136d9573d6000803e3d6000fd5b505050506040513d60208110156136ef57600080fd5b5051604080516370a0823160e01b81526001600160a01b0380841660048301529151929350908516916370a0823191602480820192602092909190829003018186803b15801561373e57600080fd5b505afa158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b50518551869086890290811061377a57fe5b602002602001018181525050816001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156137d357600080fd5b505afa1580156137e7573d6000803e3d6000fd5b505050506040513d60208110156137fd57600080fd5b5051855186906001878a020190811061381257fe5b602090810291909101015250505060010161361c565b5095945050505050565b600981565b6000806000866001600160a01b03166381a612d6876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561388957600080fd5b505afa15801561389d573d6000803e3d6000fd5b505050506040513d60208110156138b357600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0389811660048301529151929350600092918a1691638ee573ac91602480820192602092909190829003018186803b15801561390557600080fd5b505afa158015613919573d6000803e3d6000fd5b505050506040513d602081101561392f57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0389811660048301529151929350600092918b1691638ee573ac91602480820192602092909190829003018186803b15801561398157600080fd5b505afa158015613995573d6000803e3d6000fd5b505050506040513d60208110156139ab57600080fd5b505190506000806139cc68327cb2734119d3b7a9601e1b611d1d8a8861492a565b90506139e8600a85900a611d1d83670de0b6b3a764000061492a565b905060008b6001600160a01b03166342b60b038c6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613a3957600080fd5b505afa158015613a4d573d6000803e3d6000fd5b505050506040513d6020811015613a6357600080fd5b50518015613ae657508b6001600160a01b03166342b60b038b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613ab957600080fd5b505afa158015613acd573d6000803e3d6000fd5b505050506040513d6020811015613ae357600080fd5b50515b9050600081613b59578c6001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b158015613b2857600080fd5b505afa158015613b3c573d6000803e3d6000fd5b505050506040513d6020811015613b5257600080fd5b5051613bbf565b8c6001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b158015613b9257600080fd5b505afa158015613ba6573d6000803e3d6000fd5b505050506040513d6020811015613bbc57600080fd5b50515b9050600082613c32578d6001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c0157600080fd5b505afa158015613c15573d6000803e3d6000fd5b505050506040513d6020811015613c2b57600080fd5b5051613c98565b8d6001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b158015613c6b57600080fd5b505afa158015613c7f573d6000803e3d6000fd5b505050506040513d6020811015613c9557600080fd5b50515b905060008e6001600160a01b031663c7e074c38f87868660016040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b158015613d0c57600080fd5b505afa158015613d20573d6000803e3d6000fd5b505050506040513d6020811015613d3657600080fd5b8101908080519060200190929190505050905060008f6001600160a01b031663c7e074c38f88878760006040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b158015613dbb57600080fd5b505afa158015613dcf573d6000803e3d6000fd5b505050506040513d6020811015613de557600080fd5b50519050808211613df65780613df8565b815b965050505050505060008a6001600160a01b031663e124e6d28a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613e4f57600080fd5b505afa158015613e63573d6000803e3d6000fd5b505050506040513d6020811015613e7957600080fd5b505190506000613e8d82611d1d8b8961492a565b9050613eac85600a0a611d1d86600a0a8461492a90919063ffffffff16565b90506000613eca612710611d1d613ec382886148e8565b859061492a565b90506000613ed883836148e8565b919e919d50909b505050505050505050505050565b60608082516001600160401b0381118015613f0757600080fd5b50604051908082528060200260200182016040528015613f31578160200160208202803683370190505b50905060005b83518110156115bb576000848281518110613f4e57fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415613f9c57856001600160a01b031631838381518110613f8a57fe5b60200260200101818152505050614031565b806001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613fe957600080fd5b505afa158015613ffd573d6000803e3d6000fd5b505050506040513d602081101561401357600080fd5b5051835184908490811061402357fe5b602002602001018181525050505b600101613f37565b60608060098551026001600160401b038111801561405657600080fd5b50604051908082528060200260200182016040528015614080578160200160208202803683370190505b50905060005b855181101561442a5760008060008060008060008e6001600160a01b0316634a3f088d8f8f8b815181106140b657fe5b60200260200101518f8c815181106140ca57fe5b60200260200101518f8d815181106140de57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001836001600160a01b0316815260200182151581526020019450505050506101006040518083038186803b15801561414d57600080fd5b505afa158015614161573d6000803e3d6000fd5b505050506040513d61010081101561417857600080fd5b50805160208201516040830151606084015160a085015160c086015160e0909601518f51959d50939b509199509750955091935090915087908a9060098b029081106141c057fe5b602002602001018181525050858960098a02600101815181106141df57fe5b602002602001018181525050848960098a02600201815181106141fe57fe5b602002602001018181525050838960098a026003018151811061421d57fe5b60200260200101818152505081614235576000614238565b60015b60ff168960098a026004018151811061424d57fe5b602002602001018181525050828960098a026005018151811061426c57fe5b602002602001018181525050808960098a026006018151811061428b57fe5b6020026020010181815250505050505050505060008260098302815181106142af57fe5b6020026020010151905060008360098402600201815181106142cd57fe5b6020026020010151905060008460098502600601815181106142eb57fe5b60200260200101519050600082111561441f576000808c6001600160a01b0316635c07eaab8b888151811061431c57fe5b602002602001015187878d8b8151811061433257fe5b6020026020010151886040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001831515815260200182815260200195505050505050604080518083038186803b15801561439557600080fd5b505afa1580156143a9573d6000803e3d6000fd5b505050506040513d60408110156143bf57600080fd5b5080516020909101519092509050816143d95760006143dc565b60015b60ff168760098802600701815181106143f157fe5b6020026020010181815250508087600988026008018151811061441057fe5b60200260200101818152505050505b505050600101614086565b509695505050505050565b600080846001600160a01b03166381a612d6856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561448557600080fd5b505afa158015614499573d6000803e3d6000fd5b505050506040513d60208110156144af57600080fd5b505160408051637092736960e11b81526001600160a01b03868116600483015291519293506000929188169163e124e6d291602480820192602092909190829003018186803b15801561450157600080fd5b505afa158015614515573d6000803e3d6000fd5b505050506040513d602081101561452b57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038881166004830152915192935060009291891691638ee573ac91602480820192602092909190829003018186803b15801561457d57600080fd5b505afa158015614591573d6000803e3d6000fd5b505050506040513d60208110156145a757600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0388811660048301529151929350600092918a1691638ee573ac91602480820192602092909190829003018186803b1580156145f957600080fd5b505afa15801561460d573d6000803e3d6000fd5b505050506040513d602081101561462357600080fd5b5051604080516352f55eed60e01b81526001600160a01b038981166004830152915192935060009283928c16916352f55eed916024808301926020929190829003018186803b15801561467557600080fd5b505afa158015614689573d6000803e3d6000fd5b505050506040513d602081101561469f57600080fd5b50516040805163c3c7b9e960e01b81526001600160a01b038b811660048301529151929350600092918d169163c3c7b9e991602480820192602092909190829003018186803b1580156146f157600080fd5b505afa158015614705573d6000803e3d6000fd5b505050506040513d602081101561471b57600080fd5b505160408051634a993ee960e01b81526001600160a01b038c811660048301529151929350600092918e1691634a993ee991602480820192602092909190829003018186803b15801561476d57600080fd5b505afa158015614781573d6000803e3d6000fd5b505050506040513d602081101561479757600080fd5b5051905060008183116147aa57816147ac565b825b90508381106147c757600099505050505050505050506135bf565b60006147d385836148e8565b905061480087600a0a611d1d8a600a0a6147fa8e611d1d8f8861492a90919063ffffffff16565b9061492a565b955050505050506000896001600160a01b031663ad1e4f8d8a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561485657600080fd5b505afa15801561486a573d6000803e3d6000fd5b505050506040513d602081101561488057600080fd5b5051905080156113945760006148a6670de0b6b3a7640000611d1d84600a89900a61492a565b90506148c287611d1d8368327cb2734119d3b7a9601e1b61492a565b9050808311156148da5796506135bf95505050505050565b505098975050505050505050565b60006135bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614a1a565b600082614939575060006115bf565b8282028284828161494657fe5b04146135bf5760405162461bcd60e51b8152600401808060200182810382526021815260200180614b176021913960400191505060405180910390fd5b60006135bf83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614ab1565b6000828201838110156135bf576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008184841115614aa95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a6e578181015183820152602001614a56565b50505050905090810190601f168015614a9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614b005760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614a6e578181015183820152602001614a56565b506000838581614b0c57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220913af705a72e78970196095d587bc8369387ef91c52bf724e00ad8e5ef1cf0a464736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063126082cf14610101578063205425681461011b5780632413c8c11461022c5780632ac0184c146102cd5780632e3e33421461037e5780633613d5271461042f578063440f018c146104e0578063482119341461053a5780637b906e93146105eb57806386d4d0f5146106ac578063870d917c1461075d578063937a0be81461076557806395082d251461081657806395a7535a1461081e578063a4543ead146108d8578063ad7e549714610989578063d7176ca914610991578063d802178e146109e6578063dc383cab14610a97578063f3535e6c14610c55575b600080fd5b610109610c8d565b60408051918252519081900360200190f35b6101dc6004803603608081101561013157600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561016b57600080fd5b82018360208201111561017d57600080fd5b803590602001918460208302840111600160201b8311171561019e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c93945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b6101dc6004803603602081101561024257600080fd5b810190602081018135600160201b81111561025c57600080fd5b82018360208201111561026e57600080fd5b803590602001918460208302840111600160201b8311171561028f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506113a1945050505050565b610109600480360360408110156102e357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561030d57600080fd5b82018360208201111561031f57600080fd5b803590602001918460208302840111600160201b8311171561034057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061149a945050505050565b6101dc6004803603604081101561039457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156103be57600080fd5b8201836020820111156103d057600080fd5b803590602001918460208302840111600160201b831117156103f157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115c5945050505050565b6101dc6004803603604081101561044557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111600160201b831117156104a257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117ca945050505050565b61051c600480360360808110156104f657600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611c04565b60408051938452602084019290925282820152519081900360600190f35b6101dc6004803603604081101561055057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460208302840111600160201b831117156105ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612169945050505050565b6101dc6004803603608081101561060157600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061261d945050505050565b6101dc600480360360408110156106c257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612e4e945050505050565b610109612f4e565b6101dc6004803603604081101561077b57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107a557600080fd5b8201836020820111156107b757600080fd5b803590602001918460208302840111600160201b831117156107d857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612f53945050505050565b6101096130e8565b6101dc6004803603606081101561083457600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561086757600080fd5b82018360208201111561087957600080fd5b803590602001918460208302840111600160201b8311171561089a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130f8945050505050565b6101dc600480360360408110156108ee57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091857600080fd5b82018360208201111561092a57600080fd5b803590602001918460208302840111600160201b8311171561094b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506135c6945050505050565b610109613832565b6109cd600480360360808110156109a757600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135613837565b6040805192835260208301919091528051918290030190f35b6101dc600480360360408110156109fc57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a2657600080fd5b820183602082011115610a3857600080fd5b803590602001918460208302840111600160201b83111715610a5957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613eed945050505050565b6101dc600480360360a0811015610aad57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460208302840111600160201b83111715610b1357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b6257600080fd5b820183602082011115610b7457600080fd5b803590602001918460208302840111600160201b83111715610b9557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610be457600080fd5b820183602082011115610bf657600080fd5b803590602001918460208302840111600160201b83111715610c1757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614039945050505050565b61010960048036036060811015610c6b57600080fd5b506001600160a01b038135811691602081013582169160409091013516614435565b61271081565b60606000600a905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdb57600080fd5b505afa158015610cef573d6000803e3d6000fd5b505050506040513d6020811015610d0557600080fd5b5051855190915060609084026001600160401b0381118015610d2657600080fd5b50604051908082528060200260200182016040528015610d50578160200160208202803683370190505b50905060005b8651811015611394576000878281518110610d6d57fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415610d955750885b846001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610de257600080fd5b505afa158015610df6573d6000803e3d6000fd5b505050506040513d6020811015610e0c57600080fd5b505183518490848902908110610e1e57fe5b602002602001018181525050846001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b5051835184906001858a0201908110610eb657fe5b602002602001018181525050846001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d6020811015610f3957600080fd5b5051835184906002858a0201908110610f4e57fe5b602002602001018181525050846001600160a01b0316632c668ec1828b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d6020811015610fd957600080fd5b5051835184906003858a0201908110610fee57fe5b602002602001018181525050846001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561104757600080fd5b505afa15801561105b573d6000803e3d6000fd5b505050506040513d602081101561107157600080fd5b5051835184906004858a020190811061108657fe5b602002602001018181525050846001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156110df57600080fd5b505afa1580156110f3573d6000803e3d6000fd5b505050506040513d602081101561110957600080fd5b5051835184906005858a020190811061111e57fe5b602002602001018181525050846001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561117757600080fd5b505afa15801561118b573d6000803e3d6000fd5b505050506040513d60208110156111a157600080fd5b5051835184906006858a02019081106111b657fe5b602002602001018181525050846001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561120f57600080fd5b505afa158015611223573d6000803e3d6000fd5b505050506040513d602081101561123957600080fd5b5051835184906007858a020190811061124e57fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918716926356c8c2c192604480840193829003018186803b1580156112a857600080fd5b505afa1580156112bc573d6000803e3d6000fd5b505050506040513d60208110156112d257600080fd5b5051835184906008858a02019081106112e757fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918716926356c8c2c192604480840193829003018186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d602081101561136b57600080fd5b5051835184906009858a020190811061138057fe5b602090810291909101015250600101610d56565b5098975050505050505050565b60608082516001600160401b03811180156113bb57600080fd5b506040519080825280602002602001820160405280156113e5578160200160208202803683370190505b50905060005b835181101561149357600084828151811061140257fe5b60200260200101519050806001600160a01b031663817b1cd26040518163ffffffff1660e01b815260040160206040518083038186803b15801561144557600080fd5b505afa158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051835184908490811061147f57fe5b6020908102919091010152506001016113eb565b5092915050565b600080836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d657600080fd5b505afa1580156114ea573d6000803e3d6000fd5b505050506040513d602081101561150057600080fd5b5051905060005b83518110156115bb57600084828151811061151e57fe5b602002602001015190506000866001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d60208110156115a157600080fd5b505190506115af84826148e8565b93505050600101611507565b5090505b92915050565b60606000600290506060818451026001600160401b03811180156115e857600080fd5b50604051908082528060200260200182016040528015611612578160200160208202803683370190505b50905060005b84518110156117c157600085828151811061162f57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561169e57866001600160a01b031631838584028151811061166d57fe5b6020026020010181815250506000838584026001018151811061168c57fe5b602002602001018181525050506117b9565b806001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156116eb57600080fd5b505afa1580156116ff573d6000803e3d6000fd5b505050506040513d602081101561171557600080fd5b50518351849084870290811061172757fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176c57600080fd5b505afa158015611780573d6000803e3d6000fd5b505050506040513d602081101561179657600080fd5b5051835184906001858802019081106117ab57fe5b602002602001018181525050505b600101611618565b50949350505050565b60606000600690506060818451026001600160401b03811180156117ed57600080fd5b50604051908082528060200260200182016040528015611817578160200160208202803683370190505b50905060005b84518110156117c157600085828151811061183457fe5b602090810291909101810151604080516317e1d38560e11b81526001600160a01b0380841660048301526001602483018190526044830152600060648301529151929450908a1692632fc3a70a92608480840193829003018186803b15801561189c57600080fd5b505afa1580156118b0573d6000803e3d6000fd5b505050506040513d60208110156118c657600080fd5b5051835184908487029081106118d857fe5b602090810291909101810191909152604080516317e1d38560e11b81526001600160a01b0384811660048301526000602483018190526001604484015260648301529151918a1692632fc3a70a92608480840193829003018186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d602081101561196a57600080fd5b50518351849060018588020190811061197f57fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918a16926356c8c2c192604480840193829003018186803b1580156119d957600080fd5b505afa1580156119ed573d6000803e3d6000fd5b505050506040513d6020811015611a0357600080fd5b505183518490600285880201908110611a1857fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918a16926356c8c2c192604480840193829003018186803b158015611a7257600080fd5b505afa158015611a86573d6000803e3d6000fd5b505050506040513d6020811015611a9c57600080fd5b505183518490600385880201908110611ab157fe5b602002602001018181525050866001600160a01b0316636ce8a44b826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d6020811015611b3457600080fd5b5051611b41576000611b44565b60015b60ff168385840260040181518110611b5857fe5b602002602001018181525050866001600160a01b03166348cac277826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611bb157600080fd5b505afa158015611bc5573d6000803e3d6000fd5b505050506040513d6020811015611bdb57600080fd5b505183518490600585880201908110611bf057fe5b60209081029190910101525060010161181d565b600080600080876001600160a01b03166381a612d6886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611c5757600080fd5b505afa158015611c6b573d6000803e3d6000fd5b505050506040513d6020811015611c8157600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038a811660048301529151929350600092918b1691638ee573ac91602480820192602092909190829003018186803b158015611cd357600080fd5b505afa158015611ce7573d6000803e3d6000fd5b505050506040513d6020811015611cfd57600080fd5b505190506000611d2368327cb2734119d3b7a9601e1b611d1d898661492a565b90614983565b9050611d3f600a83900a611d1d83670de0b6b3a764000061492a565b905060008a6001600160a01b03166342b60b038b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611d9057600080fd5b505afa158015611da4573d6000803e3d6000fd5b505050506040513d6020811015611dba57600080fd5b50518015611e3d57508a6001600160a01b03166342b60b038a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e1057600080fd5b505afa158015611e24573d6000803e3d6000fd5b505050506040513d6020811015611e3a57600080fd5b50515b9050600081611eb0578b6001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7f57600080fd5b505afa158015611e93573d6000803e3d6000fd5b505050506040513d6020811015611ea957600080fd5b5051611f16565b8b6001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50515b9050600082611f89578c6001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5857600080fd5b505afa158015611f6c573d6000803e3d6000fd5b505050506040513d6020811015611f8257600080fd5b5051611fef565b8c6001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc257600080fd5b505afa158015611fd6573d6000803e3d6000fd5b505050506040513d6020811015611fec57600080fd5b50515b905060008d6001600160a01b031663c7e074c38e87868660016040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b15801561206357600080fd5b505afa158015612077573d6000803e3d6000fd5b505050506040513d602081101561208d57600080fd5b8101908080519060200190929190505050905060008e6001600160a01b031663c7e074c38e88878760006040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d602081101561213c57600080fd5b50519050600081831161214f5781612151565b825b9b509199509750505050505050509450945094915050565b60606000600790506060818451026001600160401b038111801561218c57600080fd5b506040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060005b84518110156117c15760008582815181106121d357fe5b60200260200101519050806001600160a01b0316635d50e729886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561222a57600080fd5b505afa15801561223e573d6000803e3d6000fd5b505050506040513d602081101561225457600080fd5b50518351849084870290811061226657fe5b602002602001018181525050806001600160a01b031663d5a73fdd886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156122bf57600080fd5b505afa1580156122d3573d6000803e3d6000fd5b505050506040513d60208110156122e957600080fd5b5051835184906001858802019081106122fe57fe5b60200260200101818152505085828151811061231657fe5b60200260200101516001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561236a57600080fd5b505afa15801561237e573d6000803e3d6000fd5b505050506040513d602081101561239457600080fd5b5051835184906002858802019081106123a957fe5b602002602001018181525050806001600160a01b03166371417b32886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561240257600080fd5b505afa158015612416573d6000803e3d6000fd5b505050506040513d602081101561242c57600080fd5b50518351849060038588020190811061244157fe5b602002602001018181525050806001600160a01b031663402914f5886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561249a57600080fd5b505afa1580156124ae573d6000803e3d6000fd5b505050506040513d60208110156124c457600080fd5b5051835184906004858802019081106124d957fe5b602002602001018181525050806001600160a01b03166308f26c76886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561253257600080fd5b505afa158015612546573d6000803e3d6000fd5b505050506040513d602081101561255c57600080fd5b50518351849060058588020190811061257157fe5b602002602001018181525050806001600160a01b03166345f01ee6886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156125ca57600080fd5b505afa1580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b50518351849060068588020190811061260957fe5b6020908102919091010152506001016121bc565b60606000600c905060008690506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561266557600080fd5b505afa158015612679573d6000803e3d6000fd5b505050506040513d602081101561268f57600080fd5b5051855190915060609084026001600160401b03811180156126b057600080fd5b506040519080825280602002602001820160405280156126da578160200160208202803683370190505b50905060005b86518110156113945760008782815181106126f757fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561271f5750885b846001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561276c57600080fd5b505afa158015612780573d6000803e3d6000fd5b505050506040513d602081101561279657600080fd5b5051835184908489029081106127a857fe5b602002602001018181525050846001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561280157600080fd5b505afa158015612815573d6000803e3d6000fd5b505050506040513d602081101561282b57600080fd5b5051835184906001858a020190811061284057fe5b602002602001018181525050846001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561289957600080fd5b505afa1580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b5051835184906002858a02019081106128d857fe5b602002602001018181525050846001600160a01b0316632c668ec1828b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561293957600080fd5b505afa15801561294d573d6000803e3d6000fd5b505050506040513d602081101561296357600080fd5b5051835184906003858a020190811061297857fe5b602002602001018181525050846001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156129d157600080fd5b505afa1580156129e5573d6000803e3d6000fd5b505050506040513d60208110156129fb57600080fd5b5051835184906004858a0201908110612a1057fe5b602002602001018181525050846001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612a6957600080fd5b505afa158015612a7d573d6000803e3d6000fd5b505050506040513d6020811015612a9357600080fd5b5051835184906005858a0201908110612aa857fe5b602002602001018181525050846001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612b0157600080fd5b505afa158015612b15573d6000803e3d6000fd5b505050506040513d6020811015612b2b57600080fd5b5051835184906006858a0201908110612b4057fe5b602002602001018181525050846001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612b9957600080fd5b505afa158015612bad573d6000803e3d6000fd5b505050506040513d6020811015612bc357600080fd5b5051835184906007858a0201908110612bd857fe5b602002602001018181525050846001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612c3157600080fd5b505afa158015612c45573d6000803e3d6000fd5b505050506040513d6020811015612c5b57600080fd5b5051835184906008858a0201908110612c7057fe5b602002602001018181525050846001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612cc957600080fd5b505afa158015612cdd573d6000803e3d6000fd5b505050506040513d6020811015612cf357600080fd5b5051835184906009858a0201908110612d0857fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918716926356c8c2c192604480840193829003018186803b158015612d6257600080fd5b505afa158015612d76573d6000803e3d6000fd5b505050506040513d6020811015612d8c57600080fd5b505183518490600a858a0201908110612da157fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918716926356c8c2c192604480840193829003018186803b158015612dfb57600080fd5b505afa158015612e0f573d6000803e3d6000fd5b505050506040513d6020811015612e2557600080fd5b505183518490600b858a0201908110612e3a57fe5b6020908102919091010152506001016126e0565b60608082516001600160401b0381118015612e6857600080fd5b50604051908082528060200260200182016040528015612e92578160200160208202803683370190505b50905060005b83518110156115bb57846001600160a01b0316631ce9cb8f858381518110612ebc57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612f0157600080fd5b505afa158015612f15573d6000803e3d6000fd5b505050506040513d6020811015612f2b57600080fd5b50518251839083908110612f3b57fe5b6020908102919091010152600101612e98565b601281565b60606000600290506060818451026001600160401b0381118015612f7657600080fd5b50604051908082528060200260200182016040528015612fa0578160200160208202803683370190505b50905060005b84518110156117c1576000858281518110612fbd57fe5b60200260200101519050806001600160a01b031663402914f5886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b50518351849084870290811061305057fe5b602002602001018181525050806001600160a01b0316632459f51d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561309557600080fd5b505afa1580156130a9573d6000803e3d6000fd5b505050506040513d60208110156130bf57600080fd5b5051835184906001858802019081106130d457fe5b602090810291909101015250600101612fa6565b68327cb2734119d3b7a9601e1b81565b60606000600290506060818451026001600160401b038111801561311b57600080fd5b50604051908082528060200260200182016040528015613145578160200160208202803683370190505b5090508560005b85518110156135b857600086828151811061316357fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561318b5750865b6000836001600160a01b03166342b60b03836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156131da57600080fd5b505afa1580156131ee573d6000803e3d6000fd5b505050506040513d602081101561320457600080fd5b505161327457836001600160a01b031663c4f718bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561324357600080fd5b505afa158015613257573d6000803e3d6000fd5b505050506040513d602081101561326d57600080fd5b50516132da565b836001600160a01b031663134ca63b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132ad57600080fd5b505afa1580156132c1573d6000803e3d6000fd5b505050506040513d60208110156132d757600080fd5b50515b90506000846001600160a01b031663c3c7b9e9846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561332b57600080fd5b505afa15801561333f573d6000803e3d6000fd5b505050506040513d602081101561335557600080fd5b5051604080516352f55eed60e01b81526001600160a01b0386811660048301529151929350600092918816916352f55eed91602480820192602092909190829003018186803b1580156133a757600080fd5b505afa1580156133bb573d6000803e3d6000fd5b505050506040513d60208110156133d157600080fd5b505190508015613404576133e981611d1d858561492a565b87898702815181106133f757fe5b6020026020010181815250505b6000866001600160a01b031663c65bc7b1866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561345357600080fd5b505afa158015613467573d6000803e3d6000fd5b505050506040513d602081101561347d57600080fd5b505111156135a8576000866001600160a01b031663a93acac2866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156134d457600080fd5b505afa1580156134e8573d6000803e3d6000fd5b505050506040513d60208110156134fe57600080fd5b50516040805163c65bc7b160e01b81526001600160a01b0388811660048301529151929350600092918a169163c65bc7b191602480820192602092909190829003018186803b15801561355057600080fd5b505afa158015613564573d6000803e3d6000fd5b505050506040513d602081101561357a57600080fd5b5051905061358881836149c2565b898b89026001018151811061359957fe5b60200260200101818152505050505b50506001909201915061314c9050565b5090925050505b9392505050565b80516060906002908190839082900482026001600160401b03811180156135ec57600080fd5b50604051908082528060200260200182016040528015613616578160200160208202803683370190505b50905060005b8386518161362657fe5b04811015613828576000868583028151811061363e57fe5b602002602001015190506000878684026001018151811061365b57fe5b602002602001015190506000896001600160a01b031663e6a4390584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156136c557600080fd5b505afa1580156136d9573d6000803e3d6000fd5b505050506040513d60208110156136ef57600080fd5b5051604080516370a0823160e01b81526001600160a01b0380841660048301529151929350908516916370a0823191602480820192602092909190829003018186803b15801561373e57600080fd5b505afa158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b50518551869086890290811061377a57fe5b602002602001018181525050816001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156137d357600080fd5b505afa1580156137e7573d6000803e3d6000fd5b505050506040513d60208110156137fd57600080fd5b5051855186906001878a020190811061381257fe5b602090810291909101015250505060010161361c565b5095945050505050565b600981565b6000806000866001600160a01b03166381a612d6876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561388957600080fd5b505afa15801561389d573d6000803e3d6000fd5b505050506040513d60208110156138b357600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0389811660048301529151929350600092918a1691638ee573ac91602480820192602092909190829003018186803b15801561390557600080fd5b505afa158015613919573d6000803e3d6000fd5b505050506040513d602081101561392f57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0389811660048301529151929350600092918b1691638ee573ac91602480820192602092909190829003018186803b15801561398157600080fd5b505afa158015613995573d6000803e3d6000fd5b505050506040513d60208110156139ab57600080fd5b505190506000806139cc68327cb2734119d3b7a9601e1b611d1d8a8861492a565b90506139e8600a85900a611d1d83670de0b6b3a764000061492a565b905060008b6001600160a01b03166342b60b038c6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613a3957600080fd5b505afa158015613a4d573d6000803e3d6000fd5b505050506040513d6020811015613a6357600080fd5b50518015613ae657508b6001600160a01b03166342b60b038b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613ab957600080fd5b505afa158015613acd573d6000803e3d6000fd5b505050506040513d6020811015613ae357600080fd5b50515b9050600081613b59578c6001600160a01b031663a22f23926040518163ffffffff1660e01b815260040160206040518083038186803b158015613b2857600080fd5b505afa158015613b3c573d6000803e3d6000fd5b505050506040513d6020811015613b5257600080fd5b5051613bbf565b8c6001600160a01b031663df73a2676040518163ffffffff1660e01b815260040160206040518083038186803b158015613b9257600080fd5b505afa158015613ba6573d6000803e3d6000fd5b505050506040513d6020811015613bbc57600080fd5b50515b9050600082613c32578d6001600160a01b0316637a210a2b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c0157600080fd5b505afa158015613c15573d6000803e3d6000fd5b505050506040513d6020811015613c2b57600080fd5b5051613c98565b8d6001600160a01b03166310eb56c26040518163ffffffff1660e01b815260040160206040518083038186803b158015613c6b57600080fd5b505afa158015613c7f573d6000803e3d6000fd5b505050506040513d6020811015613c9557600080fd5b50515b905060008e6001600160a01b031663c7e074c38f87868660016040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b158015613d0c57600080fd5b505afa158015613d20573d6000803e3d6000fd5b505050506040513d6020811015613d3657600080fd5b8101908080519060200190929190505050905060008f6001600160a01b031663c7e074c38f88878760006040518663ffffffff1660e01b815260040180866001600160a01b0316815260200185815260200184815260200183815260200182151581526020019550505050505060206040518083038186803b158015613dbb57600080fd5b505afa158015613dcf573d6000803e3d6000fd5b505050506040513d6020811015613de557600080fd5b50519050808211613df65780613df8565b815b965050505050505060008a6001600160a01b031663e124e6d28a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613e4f57600080fd5b505afa158015613e63573d6000803e3d6000fd5b505050506040513d6020811015613e7957600080fd5b505190506000613e8d82611d1d8b8961492a565b9050613eac85600a0a611d1d86600a0a8461492a90919063ffffffff16565b90506000613eca612710611d1d613ec382886148e8565b859061492a565b90506000613ed883836148e8565b919e919d50909b505050505050505050505050565b60608082516001600160401b0381118015613f0757600080fd5b50604051908082528060200260200182016040528015613f31578160200160208202803683370190505b50905060005b83518110156115bb576000848281518110613f4e57fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415613f9c57856001600160a01b031631838381518110613f8a57fe5b60200260200101818152505050614031565b806001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613fe957600080fd5b505afa158015613ffd573d6000803e3d6000fd5b505050506040513d602081101561401357600080fd5b5051835184908490811061402357fe5b602002602001018181525050505b600101613f37565b60608060098551026001600160401b038111801561405657600080fd5b50604051908082528060200260200182016040528015614080578160200160208202803683370190505b50905060005b855181101561442a5760008060008060008060008e6001600160a01b0316634a3f088d8f8f8b815181106140b657fe5b60200260200101518f8c815181106140ca57fe5b60200260200101518f8d815181106140de57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001836001600160a01b0316815260200182151581526020019450505050506101006040518083038186803b15801561414d57600080fd5b505afa158015614161573d6000803e3d6000fd5b505050506040513d61010081101561417857600080fd5b50805160208201516040830151606084015160a085015160c086015160e0909601518f51959d50939b509199509750955091935090915087908a9060098b029081106141c057fe5b602002602001018181525050858960098a02600101815181106141df57fe5b602002602001018181525050848960098a02600201815181106141fe57fe5b602002602001018181525050838960098a026003018151811061421d57fe5b60200260200101818152505081614235576000614238565b60015b60ff168960098a026004018151811061424d57fe5b602002602001018181525050828960098a026005018151811061426c57fe5b602002602001018181525050808960098a026006018151811061428b57fe5b6020026020010181815250505050505050505060008260098302815181106142af57fe5b6020026020010151905060008360098402600201815181106142cd57fe5b6020026020010151905060008460098502600601815181106142eb57fe5b60200260200101519050600082111561441f576000808c6001600160a01b0316635c07eaab8b888151811061431c57fe5b602002602001015187878d8b8151811061433257fe5b6020026020010151886040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001831515815260200182815260200195505050505050604080518083038186803b15801561439557600080fd5b505afa1580156143a9573d6000803e3d6000fd5b505050506040513d60408110156143bf57600080fd5b5080516020909101519092509050816143d95760006143dc565b60015b60ff168760098802600701815181106143f157fe5b6020026020010181815250508087600988026008018151811061441057fe5b60200260200101818152505050505b505050600101614086565b509695505050505050565b600080846001600160a01b03166381a612d6856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561448557600080fd5b505afa158015614499573d6000803e3d6000fd5b505050506040513d60208110156144af57600080fd5b505160408051637092736960e11b81526001600160a01b03868116600483015291519293506000929188169163e124e6d291602480820192602092909190829003018186803b15801561450157600080fd5b505afa158015614515573d6000803e3d6000fd5b505050506040513d602081101561452b57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038881166004830152915192935060009291891691638ee573ac91602480820192602092909190829003018186803b15801561457d57600080fd5b505afa158015614591573d6000803e3d6000fd5b505050506040513d60208110156145a757600080fd5b5051604080516323b95ceb60e21b81526001600160a01b0388811660048301529151929350600092918a1691638ee573ac91602480820192602092909190829003018186803b1580156145f957600080fd5b505afa15801561460d573d6000803e3d6000fd5b505050506040513d602081101561462357600080fd5b5051604080516352f55eed60e01b81526001600160a01b038981166004830152915192935060009283928c16916352f55eed916024808301926020929190829003018186803b15801561467557600080fd5b505afa158015614689573d6000803e3d6000fd5b505050506040513d602081101561469f57600080fd5b50516040805163c3c7b9e960e01b81526001600160a01b038b811660048301529151929350600092918d169163c3c7b9e991602480820192602092909190829003018186803b1580156146f157600080fd5b505afa158015614705573d6000803e3d6000fd5b505050506040513d602081101561471b57600080fd5b505160408051634a993ee960e01b81526001600160a01b038c811660048301529151929350600092918e1691634a993ee991602480820192602092909190829003018186803b15801561476d57600080fd5b505afa158015614781573d6000803e3d6000fd5b505050506040513d602081101561479757600080fd5b5051905060008183116147aa57816147ac565b825b90508381106147c757600099505050505050505050506135bf565b60006147d385836148e8565b905061480087600a0a611d1d8a600a0a6147fa8e611d1d8f8861492a90919063ffffffff16565b9061492a565b955050505050506000896001600160a01b031663ad1e4f8d8a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561485657600080fd5b505afa15801561486a573d6000803e3d6000fd5b505050506040513d602081101561488057600080fd5b5051905080156113945760006148a6670de0b6b3a7640000611d1d84600a89900a61492a565b90506148c287611d1d8368327cb2734119d3b7a9601e1b61492a565b9050808311156148da5796506135bf95505050505050565b505098975050505050505050565b60006135bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614a1a565b600082614939575060006115bf565b8282028284828161494657fe5b04146135bf5760405162461bcd60e51b8152600401808060200182810382526021815260200180614b176021913960400191505060405180910390fd5b60006135bf83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614ab1565b6000828201838110156135bf576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008184841115614aa95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a6e578181015183820152602001614a56565b50505050905090810190601f168015614a9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614b005760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614a6e578181015183820152602001614a56565b506000838581614b0c57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220913af705a72e78970196095d587bc8369387ef91c52bf724e00ad8e5ef1cf0a464736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
