0x608060405234801561001057600080fd5b50678ac7230489e800006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a88061006b6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806327e235e31461003b5780638a4068dd1461006b575b600080fd5b61005560048036038101906100509190610715565b610075565b604051610062919061075b565b60405180910390f35b61007361008d565b005b60006020528060005260406000206000915090505481565b6000600a67ffffffffffffffff8111156100aa576100a9610776565b5b6040519080825280602002602001820160405280156100d85781602001602082028036833780820191505090505b50905073a18c3e96d7cb1cc23a9b8cbf9443461828471f5081600081518110610104576101036107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734eeec9917f0978d568e890eee27683769d03ba3581600181518110610167576101666107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507342ef326f23f00c4f26a0ca07b557e6bd8bcca79c816002815181106101ca576101c96107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507398e97bc3a226245db613d847b45373487f7a1b8d8160038151811061022d5761022c6107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734548e92a61fec087d94237578deaf7a76dbc3976816004815181106102905761028f6107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073fd00d0c6fbd4ab7f03fc1c25899507e999e1cf09816005815181106102f3576102f26107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507371fa3b18aff9d91be5654b2aa361f5b1844e318381600681518110610356576103556107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050736bfa80bd57144e23e826b1564946625368f10ad8816007815181106103b9576103b86107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050731d2652cb7ff04fb97b0c4f00a54c2af1e23de43f8160088151811061041c5761041b6107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073a9b29aa6d5598b01aeb747ad21c86ef4573f43108160098151811061047f5761047e6107a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600067016345785d8a000090508151816104d39190610803565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a906108a2565b60405180910390fd5b8151816105609190610803565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105ad91906108c2565b9250508190555060005b82518110156106ad5760008382815181106105d5576105d46107a5565b5b60200260200101519050826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461062d91906108f6565b925050819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610691919061075b565b60405180910390a35080806106a59061092a565b9150506105b7565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106e2826106b7565b9050919050565b6106f2816106d7565b81146106fd57600080fd5b50565b60008135905061070f816106e9565b92915050565b60006020828403121561072b5761072a6106b2565b5b600061073984828501610700565b91505092915050565b6000819050919050565b61075581610742565b82525050565b6000602082019050610770600083018461074c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061080e82610742565b915061081983610742565b925082820261082781610742565b9150828204841483151761083e5761083d6107d4565b5b5092915050565b600082825260208201905092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061088c601483610845565b915061089782610856565b602082019050919050565b600060208201905081810360008301526108bb8161087f565b9050919050565b60006108cd82610742565b91506108d883610742565b92508282039050818111156108f0576108ef6107d4565b5b92915050565b600061090182610742565b915061090c83610742565b9250828201905080821115610924576109236107d4565b5b92915050565b600061093582610742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610967576109666107d4565b5b60018201905091905056fea2646970667358221220d14a9bfb43aad2cb78cbd260d2ab79ba074c75dca2ff5e921a2d52e4459fb77964736f6c63430008120033