60806040526305f5e1006006556006546000196200001e9190620005cf565b6000196200002d91906200058a565b6007556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff0219169083151502179055506006546010553480156200009457600080fd5b506000620000a76200052b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350734ce3ca0c98978928cd7583ff74f4d601ca9a6206600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ce3ca0c98978928cd7583ff74f4d601ca9a6206600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460016000620002066200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200025a6200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003136200053360201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060026009819055506007600a81905550620004bc6200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200051d91906200056d565b60405180910390a362000665565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200056781620005c5565b82525050565b60006020820190506200058460008301846200055c565b92915050565b60006200059782620005c5565b9150620005a483620005c5565b925082821015620005ba57620005b962000607565b5b828203905092915050565b6000819050919050565b6000620005dc82620005c5565b9150620005e983620005c5565b925082620005fc57620005fb62000636565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6135bc80620006756000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063aac3cd0311610064578063aac3cd0314610398578063b515566a146103c1578063c9567bf9146103ea578063dd62ed3e14610401578063f42938901461043e5761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d57806351bc3c85146102485780635932ead11461025f578063667f6526146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612ccd565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906127d7565b610492565b6040516101839190612cb2565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae9190612e4f565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612788565b6104ba565b6040516101eb9190612cb2565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906126fa565b610593565b005b34801561022957600080fd5b50610232610683565b60405161023f9190612ec4565b60405180910390f35b34801561025457600080fd5b5061025d610688565b005b34801561026b57600080fd5b5061028660048036038101906102819190612854565b610702565b005b34801561029457600080fd5b506102af60048036038101906102aa91906128cf565b6107b4565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906126fa565b6108ac565b6040516102e59190612e4f565b60405180910390f35b3480156102fa57600080fd5b506103036108fd565b005b34801561031157600080fd5b5061031a610a50565b6040516103279190612be4565b60405180910390f35b34801561033c57600080fd5b50610345610a79565b6040516103529190612ccd565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906127d7565b610ab6565b60405161038f9190612cb2565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906128a6565b610ad4565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612813565b610b3f565b005b3480156103f657600080fd5b506103ff610c8f565b005b34801561040d57600080fd5b506104286004803603810190610423919061274c565b6111cd565b6040516104359190612e4f565b60405180910390f35b34801561044a57600080fd5b50610453611254565b005b60606040518060400160405280601081526020017f59756a69497461646f7269546f6b656e00000000000000000000000000000000815250905090565b60006104a661049f6112c6565b84846112ce565b6001905092915050565b6000600654905090565b60006104c7848484611499565b610588846104d36112c6565b6105838560405180606001604052806028815260200161355f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105396112c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7e9092919063ffffffff16565b6112ce565b600190509392505050565b61059b6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612daf565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c96112c6565b73ffffffffffffffffffffffffffffffffffffffff16146106e957600080fd5b60006106f4306108ac565b90506106ff81611ae2565b50565b61070a6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612daf565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b6107bc6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090612daf565b60405180910390fd5b6000821015801561085b575060008110155b61089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612e2f565b60405180910390fd5b8160098190555080600a819055505050565b60006108f6600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddc565b9050919050565b6109056112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612daf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f59756a6920497461646f72690000000000000000000000000000000000000000815250905090565b6000610aca610ac36112c6565b8484611499565b6001905092915050565b610adc6112c6565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3557600080fd5b8060108190555050565b610b476112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90612daf565b60405180910390fd5b60005b8151811015610c8b57600160046000848481518110610c1f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c8390613165565b915050610bd7565b5050565b610c976112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612daf565b60405180910390fd5b600e60149054906101000a900460ff1615610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612d4f565b60405180910390fd5b610da330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0b57600080fd5b505afa158015610e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e439190612723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec757600080fd5b505afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190612723565b6040518363ffffffff1660e01b8152600401610f1c929190612bff565b602060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612723565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff7306108ac565b600080611002610a50565b426040518863ffffffff1660e01b815260040161102496959493929190612c51565b6060604051808303818588803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611076919061290b565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff02191690831515021790555067016345785d8a00006010819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611178929190612c28565b602060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ca919061287d565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112956112c6565b73ffffffffffffffffffffffffffffffffffffffff16146112b557600080fd5b60004790506112c381611e4a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612d2f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148c9190612e4f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090612def565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090612cef565b60405180910390fd5b600081116115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612dcf565b60405180910390fd5b6115c4610a50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116325750611602610a50565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a6e57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116db5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116e457600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117fd5750600e60179054906101000a900460ff165b1561189e5742600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061184d57600080fd5b600a4261185a9190612f85565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119495750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561199f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b4576010548111156119b357600080fd5b5b60006119bf306108ac565b9050600e60159054906101000a900460ff16158015611a2c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a445750600e60169054906101000a900460ff165b15611a6c57611a5281611ae2565b60004790506000811115611a6a57611a6947611e4a565b5b505b505b611a79838383611f45565b505050565b6000838311158290611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd9190612ccd565b60405180910390fd5b5060008385611ad59190613066565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b40577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611b6e5781602001602082028036833780820191505090505b5090503081600081518110611bac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4e57600080fd5b505afa158015611c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c869190612723565b81600181518110611cc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d8b959493929190612e6a565b600060405180830381600087803b158015611da557600080fd5b505af1158015611db9573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000600754821115611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a90612d0f565b60405180910390fd5b6000611e2d611f55565b9050611e428184611f8090919063ffffffff16565b915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e9a600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ec5573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f16600284611f8090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f41573d6000803e3d6000fd5b5050565b611f50838383611fca565b505050565b6000806000611f62612195565b91509150611f798183611f8090919063ffffffff16565b9250505090565b6000611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e2565b905092915050565b600080600080600080611fdc87612245565b95509550955095509550955061203a86600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ad90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cf85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061211b81612355565b6121258483612412565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121829190612e4f565b60405180910390a3505050505050505050565b60008060006007549050600060065490506121bd600654600754611f8090919063ffffffff16565b8210156121d5576007546006549350935050506121de565b81819350935050505b9091565b60008083118290612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122209190612ccd565b60405180910390fd5b50600083856122389190612fdb565b9050809150509392505050565b60008060008060008060008060006122628a600954600a5461244c565b9250925092506000612272611f55565b905060008060006122858e8787876124e2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7e565b905092915050565b60008082846123069190612f85565b90508381101561234b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234290612d6f565b60405180910390fd5b8091505092915050565b600061235f611f55565b90506000612376828461256b90919063ffffffff16565b90506123ca81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612427826007546122ad90919063ffffffff16565b600781905550612442816008546122f790919063ffffffff16565b6008819055505050565b600080600080612478606461246a888a61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124a26064612494888b61256b90919063ffffffff16565b611f8090919063ffffffff16565b905060006124cb826124bd858c6122ad90919063ffffffff16565b6122ad90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fb858961256b90919063ffffffff16565b90506000612512868961256b90919063ffffffff16565b90506000612529878961256b90919063ffffffff16565b905060006125528261254485876122ad90919063ffffffff16565b6122ad90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561257e57600090506125e0565b6000828461258c919061300c565b905082848261259b9190612fdb565b146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290612d8f565b60405180910390fd5b809150505b92915050565b60006125f96125f484612f04565b612edf565b9050808382526020820190508285602086028201111561261857600080fd5b60005b85811015612648578161262e8882612652565b84526020840193506020830192505060018101905061261b565b5050509392505050565b60008135905061266181613519565b92915050565b60008151905061267681613519565b92915050565b600082601f83011261268d57600080fd5b813561269d8482602086016125e6565b91505092915050565b6000813590506126b581613530565b92915050565b6000815190506126ca81613530565b92915050565b6000813590506126df81613547565b92915050565b6000815190506126f481613547565b92915050565b60006020828403121561270c57600080fd5b600061271a84828501612652565b91505092915050565b60006020828403121561273557600080fd5b600061274384828501612667565b91505092915050565b6000806040838503121561275f57600080fd5b600061276d85828601612652565b925050602061277e85828601612652565b9150509250929050565b60008060006060848603121561279d57600080fd5b60006127ab86828701612652565b93505060206127bc86828701612652565b92505060406127cd868287016126d0565b9150509250925092565b600080604083850312156127ea57600080fd5b60006127f885828601612652565b9250506020612809858286016126d0565b9150509250929050565b60006020828403121561282557600080fd5b600082013567ffffffffffffffff81111561283f57600080fd5b61284b8482850161267c565b91505092915050565b60006020828403121561286657600080fd5b6000612874848285016126a6565b91505092915050565b60006020828403121561288f57600080fd5b600061289d848285016126bb565b91505092915050565b6000602082840312156128b857600080fd5b60006128c6848285016126d0565b91505092915050565b600080604083850312156128e257600080fd5b60006128f0858286016126d0565b9250506020612901858286016126d0565b9150509250929050565b60008060006060848603121561292057600080fd5b600061292e868287016126e5565b935050602061293f868287016126e5565b9250506040612950868287016126e5565b9150509250925092565b60006129668383612972565b60208301905092915050565b61297b8161309a565b82525050565b61298a8161309a565b82525050565b600061299b82612f40565b6129a58185612f63565b93506129b083612f30565b8060005b838110156129e15781516129c8888261295a565b97506129d383612f56565b9250506001810190506129b4565b5085935050505092915050565b6129f7816130ac565b82525050565b612a06816130ef565b82525050565b6000612a1782612f4b565b612a218185612f74565b9350612a31818560208601613101565b612a3a8161323b565b840191505092915050565b6000612a52602383612f74565b9150612a5d8261324c565b604082019050919050565b6000612a75602a83612f74565b9150612a808261329b565b604082019050919050565b6000612a98602283612f74565b9150612aa3826132ea565b604082019050919050565b6000612abb601783612f74565b9150612ac682613339565b602082019050919050565b6000612ade601b83612f74565b9150612ae982613362565b602082019050919050565b6000612b01602183612f74565b9150612b0c8261338b565b604082019050919050565b6000612b24602083612f74565b9150612b2f826133da565b602082019050919050565b6000612b47602983612f74565b9150612b5282613403565b604082019050919050565b6000612b6a602583612f74565b9150612b7582613452565b604082019050919050565b6000612b8d602483612f74565b9150612b98826134a1565b604082019050919050565b6000612bb0601883612f74565b9150612bbb826134f0565b602082019050919050565b612bcf816130d8565b82525050565b612bde816130e2565b82525050565b6000602082019050612bf96000830184612981565b92915050565b6000604082019050612c146000830185612981565b612c216020830184612981565b9392505050565b6000604082019050612c3d6000830185612981565b612c4a6020830184612bc6565b9392505050565b600060c082019050612c666000830189612981565b612c736020830188612bc6565b612c8060408301876129fd565b612c8d60608301866129fd565b612c9a6080830185612981565b612ca760a0830184612bc6565b979650505050505050565b6000602082019050612cc760008301846129ee565b92915050565b60006020820190508181036000830152612ce78184612a0c565b905092915050565b60006020820190508181036000830152612d0881612a45565b9050919050565b60006020820190508181036000830152612d2881612a68565b9050919050565b60006020820190508181036000830152612d4881612a8b565b9050919050565b60006020820190508181036000830152612d6881612aae565b9050919050565b60006020820190508181036000830152612d8881612ad1565b9050919050565b60006020820190508181036000830152612da881612af4565b9050919050565b60006020820190508181036000830152612dc881612b17565b9050919050565b60006020820190508181036000830152612de881612b3a565b9050919050565b60006020820190508181036000830152612e0881612b5d565b9050919050565b60006020820190508181036000830152612e2881612b80565b9050919050565b60006020820190508181036000830152612e4881612ba3565b9050919050565b6000602082019050612e646000830184612bc6565b92915050565b600060a082019050612e7f6000830188612bc6565b612e8c60208301876129fd565b8181036040830152612e9e8186612990565b9050612ead6060830185612981565b612eba6080830184612bc6565b9695505050505050565b6000602082019050612ed96000830184612bd5565b92915050565b6000612ee9612efa565b9050612ef58282613134565b919050565b6000604051905090565b600067ffffffffffffffff821115612f1f57612f1e61320c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f90826130d8565b9150612f9b836130d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd057612fcf6131ae565b5b828201905092915050565b6000612fe6826130d8565b9150612ff1836130d8565b925082613001576130006131dd565b5b828204905092915050565b6000613017826130d8565b9150613022836130d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305b5761305a6131ae565b5b828202905092915050565b6000613071826130d8565b915061307c836130d8565b92508282101561308f5761308e6131ae565b5b828203905092915050565b60006130a5826130b8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130fa826130d8565b9050919050565b60005b8381101561311f578082015181840152602081019050613104565b8381111561312e576000848401525b50505050565b61313d8261323b565b810181811067ffffffffffffffff8211171561315c5761315b61320c565b5b80604052505050565b6000613170826130d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131a3576131a26131ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f546178206d757374206265206e6f6e2d6e656761746976650000000000000000600082015250565b6135228161309a565b811461352d57600080fd5b50565b613539816130ac565b811461354457600080fd5b50565b613550816130d8565b811461355b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7574883d2cc0fcea54ed3abe4f4950906035fd2f696f47cac34ba345328562f64736f6c63430008040033