608060405261dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a556000600b556000600d556001600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff02191690831515021790555060405162003b9138038062003b918339818101604052810190620000b19190620005bb565b60008190508560029080519060200190620000ce92919062000448565b508460039080519060200190620000e792919062000448565b5083600460006101000a81548160ff021916908360ff16021790555073259582167a702cac3666f4d9d5a8f7e05513b7db6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900460ff16600a62000175919062000769565b83620001829190620008a6565b600c81905550600460009054906101000a900460ff16600a620001a6919062000769565b612af8620001b59190620008a6565b600d8190555073259582167a702cac3666f4d9d5a8f7e05513b7db600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073259582167a702cac3666f4d9d5a8f7e05513b7db600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c54600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000434919062000692565b60405180910390a350505050505062000b01565b828054620004569062000988565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b60006200050f6200050984620006d8565b620006af565b9050828152602081018484840111156200052e576200052d62000a86565b5b6200053b84828562000952565b509392505050565b600081519050620005548162000ab3565b92915050565b600082601f83011262000572576200057162000a81565b5b815162000584848260208601620004f8565b91505092915050565b6000815190506200059e8162000acd565b92915050565b600081519050620005b58162000ae7565b92915050565b600080600080600060a08688031215620005da57620005d962000a90565b5b600086015167ffffffffffffffff811115620005fb57620005fa62000a8b565b5b62000609888289016200055a565b955050602086015167ffffffffffffffff8111156200062d576200062c62000a8b565b5b6200063b888289016200055a565b94505060406200064e88828901620005a4565b935050606062000661888289016200058d565b9250506080620006748882890162000543565b9150509295509295909350565b6200068c816200093b565b82525050565b6000602082019050620006a9600083018462000681565b92915050565b6000620006bb620006ce565b9050620006c98282620009be565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f657620006f562000a52565b5b620007018262000a95565b9050602081019050919050565b6000808291508390505b60018511156200076057808604811115620007385762000737620009f4565b5b6001851615620007485780820291505b8081029050620007588562000aa6565b945062000718565b94509492505050565b600062000776826200093b565b9150620007838362000945565b9250620007b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ba565b905092915050565b600082620007cc57600190506200089f565b81620007dc57600090506200089f565b8160018114620007f55760028114620008005762000836565b60019150506200089f565b60ff841115620008155762000814620009f4565b5b8360020a9150848211156200082f576200082e620009f4565b5b506200089f565b5060208310610133831016604e8410600b8410161715620008705782820a9050838111156200086a5762000869620009f4565b5b6200089f565b6200087f84848460016200070e565b92509050818404811115620008995762000898620009f4565b5b81810290505b9392505050565b6000620008b3826200093b565b9150620008c0836200093b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008fc57620008fb620009f4565b5b828202905092915050565b600062000914826200091b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200097257808201518184015260208101905062000955565b8381111562000982576000848401525b50505050565b60006002820490506001821680620009a157607f821691505b60208210811415620009b857620009b762000a23565b5b50919050565b620009c98262000a95565b810181811067ffffffffffffffff82111715620009eb57620009ea62000a52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000abe8162000907565b811462000aca57600080fd5b50565b62000ad8816200093b565b811462000ae457600080fd5b50565b62000af28162000945565b811462000afe57600080fd5b50565b6130808062000b116000396000f3fe60806040526004361061010d5760003560e01c80638da5cb5b11610095578063a9059cbb11610064578063a9059cbb146103a0578063b2bdfa7b146103dd578063c49b9a8014610408578063dd62ed3e14610431578063f2fde38b1461046e57610114565b80638da5cb5b146102f6578063914eb66a1461032157806395d89b4114610338578063a457c2d71461036357610114565b8063313ce567116100dc578063313ce567146101e957806339509351146102145780633b97084a146102515780636386c1c71461027a57806370a08231146102b957610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610497565b60405161013b919061273c565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906123b2565b610529565b6040516101789190612721565b60405180910390f35b34801561018d57600080fd5b50610196610547565b6040516101a3919061287e565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061235f565b610551565b6040516101e09190612721565b60405180910390f35b3480156101f557600080fd5b506101fe61062b565b60405161020b919061295a565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906123b2565b610642565b6040516102489190612721565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612468565b6106f5565b005b34801561028657600080fd5b506102a1600480360381019061029c91906122c5565b610794565b6040516102b093929190612923565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906122c5565b6108ea565b6040516102ed919061287e565b60405180910390f35b34801561030257600080fd5b5061030b610933565b6040516103189190612706565b60405180910390f35b34801561032d57600080fd5b5061033661095c565b005b34801561034457600080fd5b5061034d610aaf565b60405161035a919061273c565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906123b2565b610b41565b6040516103979190612721565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906123b2565b610c0e565b6040516103d49190612721565b60405180910390f35b3480156103e957600080fd5b506103f2610c2d565b6040516103ff9190612706565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061243b565b610c51565b005b34801561043d57600080fd5b506104586004803603810190610453919061231f565b610d3a565b604051610465919061287e565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906122c5565b610dc1565b005b6060600280546104a690612bca565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290612bca565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b600061053d610536610f83565b8484610f8b565b6001905092915050565b6000600c54905090565b600061055e848484611156565b506106208461056b610f83565b61061b85604051806060016040528060288152602001612ffe60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d1610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b60006106eb61064f610f83565b846106e68560086000610660610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b610f8b565b6001905092915050565b6106fd610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906127fe565b60405180910390fd5b80600d8190555050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549250600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108399190612706565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612495565b91506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff169150509193909250565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610964610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610abe90612bca565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90612bca565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610c04610b4e610f83565b84610bff856040518060600160405280602581526020016130266025913960086000610b78610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b6001905092915050565b6000610c22610c1b610f83565b8484611156565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906127fe565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610d2f9190612721565b60405180910390a150565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc9610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061277e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061279e565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611149919061287e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061283e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e9061275e565b60405180910390fd5b6000821161127a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112719061281e565b60405180910390fd5b600f60149054906101000a900460ff16156112a15761129a848484611610565b9050611547565b60006112ac306108ea565b90506000600c5482101590508080156112d25750600f60149054906101000a900460ff16155b80156113285750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113405750600f60159054906101000a900460ff165b1561136a57600f60169054906101000a900460ff161561136057600d5491505b611369826117e3565b5b6113f3846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114438787876118db565b905061149781600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611537919061287e565b60405180910390a3600193505050505b9392505050565b6000838311158290611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d919061273c565b60405180910390fd5b50600083856115a59190612afc565b9050809150509392505050565b60008082846115c19190612a1b565b905083811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906127be565b60405180910390fd5b8091505092915050565b600061169b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d0919061287e565b60405180910390a3600190509392505050565b6001600f60146101000a81548160ff02191690831515021790555061180781611d76565b60004790506000611835606461182760328561200190919063ffffffff16565b61207c90919063ffffffff16565b9050600061184c82846120c690919063ffffffff16565b9050600081111561188457611883600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612110565b5b60008211156118ba576118b9600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612110565b5b5050506000600f60146101000a81548160ff02191690831515021790555050565b600080600090506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119655761195e6064611950600a548761200190919063ffffffff16565b61207c90919063ffffffff16565b91506119e3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119e2576119df60646119d1600b548761200190919063ffffffff16565b61207c90919063ffffffff16565b91505b5b6000821115611aeb57611a3e82600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ade919061287e565b60405180910390a3611d58565b6000600267ffffffffffffffff811115611b0857611b07612ce9565b5b604051908082528060200260200182016040528015611b365781602001602082028036833780820191505090505b5090508681600081518110611b4e57611b4d612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906122f2565b81600181518110611c3c57611c3b612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f87846040518363ffffffff1660e01b8152600401611cd5929190612899565b60006040518083038186803b158015611ced57600080fd5b505afa158015611d01573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2a91906123f2565b600081518110611d3d57611d3c612cba565b5b602002602001015190508086611d539190612afc565b925050505b611d6b82856120c690919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115611d9357611d92612ce9565b5b604051908082528060200260200182016040528015611dc15781602001602082028036833780820191505090505b5090503081600081518110611dd957611dd8612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906122f2565b81600181518110611ec757611ec6612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2e30600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f8b565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f929594939291906128c9565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ff5929190612899565b60405180910390a15050565b6000808314156120145760009050612076565b600082846120229190612aa2565b90508284826120319190612a71565b14612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906127de565b60405180910390fd5b809150505b92915050565b60006120be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215b565b905092915050565b600061210883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612156573d6000803e3d6000fd5b505050565b600080831182906121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199919061273c565b60405180910390fd5b50600083856121b19190612a71565b9050809150509392505050565b60006121d16121cc8461299a565b612975565b905080838252602082019050828560208602820111156121f4576121f3612d1d565b5b60005b85811015612224578161220a88826122b0565b8452602084019350602083019250506001810190506121f7565b5050509392505050565b60008135905061223d81612fb8565b92915050565b60008151905061225281612fb8565b92915050565b600082601f83011261226d5761226c612d18565b5b815161227d8482602086016121be565b91505092915050565b60008135905061229581612fcf565b92915050565b6000813590506122aa81612fe6565b92915050565b6000815190506122bf81612fe6565b92915050565b6000602082840312156122db576122da612d27565b5b60006122e98482850161222e565b91505092915050565b60006020828403121561230857612307612d27565b5b600061231684828501612243565b91505092915050565b6000806040838503121561233657612335612d27565b5b60006123448582860161222e565b92505060206123558582860161222e565b9150509250929050565b60008060006060848603121561237857612377612d27565b5b60006123868682870161222e565b93505060206123978682870161222e565b92505060406123a88682870161229b565b9150509250925092565b600080604083850312156123c9576123c8612d27565b5b60006123d78582860161222e565b92505060206123e88582860161229b565b9150509250929050565b60006020828403121561240857612407612d27565b5b600082015167ffffffffffffffff81111561242657612425612d22565b5b61243284828501612258565b91505092915050565b60006020828403121561245157612450612d27565b5b600061245f84828501612286565b91505092915050565b60006020828403121561247e5761247d612d27565b5b600061248c8482850161229b565b91505092915050565b6000602082840312156124ab576124aa612d27565b5b60006124b9848285016122b0565b91505092915050565b60006124ce83836124da565b60208301905092915050565b6124e381612b30565b82525050565b6124f281612b30565b82525050565b6000612503826129d6565b61250d81856129f9565b9350612518836129c6565b8060005b8381101561254957815161253088826124c2565b975061253b836129ec565b92505060018101905061251c565b5085935050505092915050565b61255f81612b42565b82525050565b61256e81612b85565b82525050565b600061257f826129e1565b6125898185612a0a565b9350612599818560208601612b97565b6125a281612d2c565b840191505092915050565b60006125ba602383612a0a565b91506125c582612d3d565b604082019050919050565b60006125dd602683612a0a565b91506125e882612d8c565b604082019050919050565b6000612600602283612a0a565b915061260b82612ddb565b604082019050919050565b6000612623601b83612a0a565b915061262e82612e2a565b602082019050919050565b6000612646602183612a0a565b915061265182612e53565b604082019050919050565b6000612669602083612a0a565b915061267482612ea2565b602082019050919050565b600061268c602983612a0a565b915061269782612ecb565b604082019050919050565b60006126af602583612a0a565b91506126ba82612f1a565b604082019050919050565b60006126d2602483612a0a565b91506126dd82612f69565b604082019050919050565b6126f181612b6e565b82525050565b61270081612b78565b82525050565b600060208201905061271b60008301846124e9565b92915050565b60006020820190506127366000830184612556565b92915050565b600060208201905081810360008301526127568184612574565b905092915050565b60006020820190508181036000830152612777816125ad565b9050919050565b60006020820190508181036000830152612797816125d0565b9050919050565b600060208201905081810360008301526127b7816125f3565b9050919050565b600060208201905081810360008301526127d781612616565b9050919050565b600060208201905081810360008301526127f781612639565b9050919050565b600060208201905081810360008301526128178161265c565b9050919050565b600060208201905081810360008301526128378161267f565b9050919050565b60006020820190508181036000830152612857816126a2565b9050919050565b60006020820190508181036000830152612877816126c5565b9050919050565b600060208201905061289360008301846126e8565b92915050565b60006040820190506128ae60008301856126e8565b81810360208301526128c081846124f8565b90509392505050565b600060a0820190506128de60008301886126e8565b6128eb6020830187612565565b81810360408301526128fd81866124f8565b905061290c60608301856124e9565b61291960808301846126e8565b9695505050505050565b600060608201905061293860008301866126e8565b61294560208301856126e8565b6129526040830184612556565b949350505050565b600060208201905061296f60008301846126f7565b92915050565b600061297f612990565b905061298b8282612bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156129b5576129b4612ce9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a2682612b6e565b9150612a3183612b6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6657612a65612c2d565b5b828201905092915050565b6000612a7c82612b6e565b9150612a8783612b6e565b925082612a9757612a96612c5c565b5b828204905092915050565b6000612aad82612b6e565b9150612ab883612b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af157612af0612c2d565b5b828202905092915050565b6000612b0782612b6e565b9150612b1283612b6e565b925082821015612b2557612b24612c2d565b5b828203905092915050565b6000612b3b82612b4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b9082612b6e565b9050919050565b60005b83811015612bb5578082015181840152602081019050612b9a565b83811115612bc4576000848401525b50505050565b60006002820490506001821680612be257607f821691505b60208210811415612bf657612bf5612c8b565b5b50919050565b612c0582612d2c565b810181811067ffffffffffffffff82111715612c2457612c23612ce9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fc181612b30565b8114612fcc57600080fd5b50565b612fd881612b42565b8114612fe357600080fd5b50565b612fef81612b6e565b8114612ffa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f12e0cad5ea7451d196ad8fb49483797c948b2966bb79ff7842763849479636464736f6c6343000806003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000002602de5eb7af3c2d1cb90e1cb529c3c6b39d0ddc0000000000000000000000000000000000000000000000000000000000000008476f647a696c6c610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008476f647a696c6c61000000000000000000000000000000000000000000000000