6080604052662386f26fc100005f196200001a919062000751565b5f19620000289190620007b5565b6006555f60085560136009555f600a55602d600b55600a54600c55600b54600d55600c54600e55600d54600f5573ddcab85e5a4342608ec9fc89658fdb75e0fd70f160125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ddcab85e5a4342608ec9fc89658fdb75e0fd70f160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506064662386f26fc10000620001629190620007ef565b600262000170919062000826565b6016556064662386f26fc10000620001899190620007ef565b600262000197919062000826565b6017556103e8662386f26fc10000620001b19190620007ef565b6004620001bf919062000826565b601855348015620001ce575f80fd5b505f620001e0620006ed60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f62000292620006ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000371573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003979190620008d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004239190620008d5565b6040518363ffffffff1660e01b81526004016200044292919062000916565b6020604051808303815f875af11580156200045f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004859190620008d5565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004d9620006f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000679620006ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006de919062000952565b60405180910390a3506200096d565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200075d826200071b565b91506200076a836200071b565b9250826200077d576200077c62000724565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007c1826200071b565b9150620007ce836200071b565b9250828203905081811115620007e957620007e862000788565b5b92915050565b5f620007fb826200071b565b915062000808836200071b565b9250826200081b576200081a62000724565b5b828204905092915050565b5f62000832826200071b565b91506200083f836200071b565b92508282026200084f816200071b565b9150828204841483151762000869576200086862000788565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200089f8262000874565b9050919050565b620008b18162000893565b8114620008bc575f80fd5b50565b5f81519050620008cf81620008a6565b92915050565b5f60208284031215620008ed57620008ec62000870565b5b5f620008fc84828501620008bf565b91505092915050565b620009108162000893565b82525050565b5f6040820190506200092b5f83018562000905565b6200093a602083018462000905565b9392505050565b6200094c816200071b565b82525050565b5f602082019050620009675f83018462000941565b92915050565b613b16806200097b5f395ff3fe6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a2a957bb11610094578063c3c8cd8011610063578063c3c8cd8014610652578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063be1aa3cd146105ee578063bfd7928414610616576101d6565b80638f70ccf7116100d05780638f70ccf7146104e65780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b80637d1db4a5146104565780637f2feddc146104805780638da5cb5b146104bc576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612c20565b6106f4565b005b34801561020d575f80fd5b50610216610819565b6040516102239190612ce1565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612d34565b610856565b60405161025f9190612d8c565b60405180910390f35b348015610273575f80fd5b5061027c610873565b6040516102899190612e00565b60405180910390f35b34801561029d575f80fd5b506102a6610898565b6040516102b39190612e28565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612e41565b6108a6565b6040516102ef9190612d8c565b60405180910390f35b348015610303575f80fd5b5061030c61097a565b6040516103199190612e28565b60405180910390f35b34801561032d575f80fd5b50610336610980565b6040516103439190612eac565b60405180910390f35b348015610357575f80fd5b50610360610988565b60405161036d9190612ed4565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612eed565b6109ad565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612f42565b610a98565b005b3480156103d1575f80fd5b506103da610b49565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612eed565b610c16565b60405161040f9190612e28565b60405180910390f35b348015610423575f80fd5b5061042c610c64565b005b348015610439575f80fd5b50610454600480360381019061044f9190612f6d565b610db2565b005b348015610461575f80fd5b5061046a610e50565b6040516104779190612e28565b60405180910390f35b34801561048b575f80fd5b506104a660048036038101906104a19190612eed565b610e56565b6040516104b39190612e28565b60405180910390f35b3480156104c7575f80fd5b506104d0610e6b565b6040516104dd9190612ed4565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190612f42565b610e92565b005b348015610519575f80fd5b50610522610f43565b60405161052f9190612e28565b60405180910390f35b348015610543575f80fd5b5061054c610f49565b6040516105599190612ce1565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190612f6d565b610f86565b005b348015610595575f80fd5b506105b060048036038101906105ab9190612f98565b611024565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612d34565b6110da565b6040516105e59190612d8c565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612eed565b6110f7565b005b348015610621575f80fd5b5061063c60048036038101906106379190612eed565b6111e3565b6040516106499190612d8c565b60405180910390f35b34801561065d575f80fd5b50610666611200565b005b348015610673575f80fd5b5061068e60048036038101906106899190612ffc565b6112d5565b60405161069b9190612e28565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190612f6d565b611357565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612eed565b6113f5565b005b6106fc6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613084565b60405180910390fd5b5f5b815181101561081557600160105f8484815181106107ab576107aa6130a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061080d906130fc565b91505061078a565b5050565b60606040518060400160405280600681526020017f4761747362790000000000000000000000000000000000000000000000000000815250905090565b5f6108696108626115b2565b84846115b9565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f662386f26fc10000905090565b5f6108b284848461177c565b61096f846108be6115b2565b61096a85604051806060016040528060288152602001613ab96028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109216115b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fdc9092919063ffffffff16565b6115b9565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b56115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890613084565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610aa06115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390613084565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b896115b2565b73ffffffffffffffffffffffffffffffffffffffff161480610bfe575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be66115b2565b73ffffffffffffffffffffffffffffffffffffffff16145b610c06575f80fd5b5f479050610c138161203e565b50565b5f610c5d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120a6565b9050919050565b610c6c6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90613084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dba6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90613084565b60405180910390fd5b8060168190555050565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e9a6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90613084565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f4741545342590000000000000000000000000000000000000000000000000000815250905090565b610f8e6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101190613084565b60405180910390fd5b8060188190555050565b61102c6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90613084565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6110ed6110e66115b2565b848461177c565b6001905092915050565b6110ff6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290613084565b60405180910390fd5b600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112406115b2565b73ffffffffffffffffffffffffffffffffffffffff1614806112b5575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129d6115b2565b73ffffffffffffffffffffffffffffffffffffffff16145b6112bd575f80fd5b5f6112c730610c16565b90506112d281612112565b50565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61135f6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290613084565b60405180910390fd5b8060178190555050565b6113fd6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090613084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee906131b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613241565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c906132cf565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161176f9190612e28565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e19061335d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f906133eb565b60405180910390fd5b5f811161189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613479565b60405180910390fd5b6118a2610e6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561191057506118e0610e6b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce957601560149054906101000a900460ff1661199f57611931610e6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199590613507565b60405180910390fd5b5b6016548111156119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9061356f565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a82575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab8906135fd565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b6d5760175481611b2284610c16565b611b2c919061361b565b10611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b63906136be565b60405180910390fd5b5b5f611b7730610c16565b90505f60185482101590506016548210611b915760165491505b808015611ba9575060158054906101000a900460ff16155b8015611c02575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c1a5750601560169054906101000a900460ff165b8015611c6d575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cc0575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ce657611cce82612112565b5f4790505f811115611ce457611ce34761203e565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611d89575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e3a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e39575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e47575f9050611fca565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ef0575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f0857600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fb1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fc957600a54600c81905550600b54600d819055505b5b611fd68484848461237b565b50505050565b5f838311158290612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a9190612ce1565b60405180910390fd5b505f838561203191906136dc565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a2573d5f803e3d5ffd5b5050565b5f6006548211156120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e39061377f565b60405180910390fd5b5f6120f56123a8565b905061210a81846123d190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561214857612147612a8a565b5b6040519080825280602002602001820160405280156121765781602001602082028036833780820191505090505b50905030815f8151811061218d5761218c6130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612231573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225591906137b1565b81600181518110612269576122686130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122cf3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b9565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123319594939291906138cc565b5f604051808303815f87803b158015612348575f80fd5b505af115801561235a573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806123895761238861241a565b5b612394848484612453565b806123a2576123a1612613565b5b50505050565b5f805f6123b3612627565b915091506123ca81836123d190919063ffffffff16565b9250505090565b5f61241283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612680565b905092915050565b5f600c5414801561242c57505f600d54145b61245157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612462876126e1565b9550955095509550955095506124be8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461274190919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254f8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278a90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612599816127e7565b6125a3848361289e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126009190612e28565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f662386f26fc100009050612656662386f26fc100006006546123d190919063ffffffff16565b82101561267357600654662386f26fc1000093509350505061267c565b81819350935050505b9091565b5f80831182906126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd9190612ce1565b60405180910390fd5b505f83856126d49190613951565b9050809150509392505050565b5f805f805f805f805f6126f98a600c54600d546128d8565b9250925092505f6127086123a8565b90505f805f6127198e87878761296a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61278283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fdc565b905092915050565b5f808284612798919061361b565b9050838110156127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d4906139cb565b60405180910390fd5b8091505092915050565b5f6127f06123a8565b90505f61280682846129ee90919063ffffffff16565b90506128588160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278a90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6128b38260065461274190919063ffffffff16565b6006819055506128ce8160075461278a90919063ffffffff16565b6007819055505050565b5f805f8061290260646128f4888a6129ee90919063ffffffff16565b6123d190919063ffffffff16565b90505f61292b606461291d888b6129ee90919063ffffffff16565b6123d190919063ffffffff16565b90505f61295382612945858c61274190919063ffffffff16565b61274190919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061298185896129ee90919063ffffffff16565b90505f61299786896129ee90919063ffffffff16565b90505f6129ad87896129ee90919063ffffffff16565b90505f6129d5826129c7858761274190919063ffffffff16565b61274190919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036129fe575f9050612a5f565b5f8284612a0b91906139e9565b9050828482612a1a9190613951565b14612a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5190613a9a565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ac082612a7a565b810181811067ffffffffffffffff82111715612adf57612ade612a8a565b5b80604052505050565b5f612af1612a65565b9050612afd8282612ab7565b919050565b5f67ffffffffffffffff821115612b1c57612b1b612a8a565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b5a82612b31565b9050919050565b612b6a81612b50565b8114612b74575f80fd5b50565b5f81359050612b8581612b61565b92915050565b5f612b9d612b9884612b02565b612ae8565b90508083825260208201905060208402830185811115612bc057612bbf612b2d565b5b835b81811015612be95780612bd58882612b77565b845260208401935050602081019050612bc2565b5050509392505050565b5f82601f830112612c0757612c06612a76565b5b8135612c17848260208601612b8b565b91505092915050565b5f60208284031215612c3557612c34612a6e565b5b5f82013567ffffffffffffffff811115612c5257612c51612a72565b5b612c5e84828501612bf3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c9e578082015181840152602081019050612c83565b5f8484015250505050565b5f612cb382612c67565b612cbd8185612c71565b9350612ccd818560208601612c81565b612cd681612a7a565b840191505092915050565b5f6020820190508181035f830152612cf98184612ca9565b905092915050565b5f819050919050565b612d1381612d01565b8114612d1d575f80fd5b50565b5f81359050612d2e81612d0a565b92915050565b5f8060408385031215612d4a57612d49612a6e565b5b5f612d5785828601612b77565b9250506020612d6885828601612d20565b9150509250929050565b5f8115159050919050565b612d8681612d72565b82525050565b5f602082019050612d9f5f830184612d7d565b92915050565b5f819050919050565b5f612dc8612dc3612dbe84612b31565b612da5565b612b31565b9050919050565b5f612dd982612dae565b9050919050565b5f612dea82612dcf565b9050919050565b612dfa81612de0565b82525050565b5f602082019050612e135f830184612df1565b92915050565b612e2281612d01565b82525050565b5f602082019050612e3b5f830184612e19565b92915050565b5f805f60608486031215612e5857612e57612a6e565b5b5f612e6586828701612b77565b9350506020612e7686828701612b77565b9250506040612e8786828701612d20565b9150509250925092565b5f60ff82169050919050565b612ea681612e91565b82525050565b5f602082019050612ebf5f830184612e9d565b92915050565b612ece81612b50565b82525050565b5f602082019050612ee75f830184612ec5565b92915050565b5f60208284031215612f0257612f01612a6e565b5b5f612f0f84828501612b77565b91505092915050565b612f2181612d72565b8114612f2b575f80fd5b50565b5f81359050612f3c81612f18565b92915050565b5f60208284031215612f5757612f56612a6e565b5b5f612f6484828501612f2e565b91505092915050565b5f60208284031215612f8257612f81612a6e565b5b5f612f8f84828501612d20565b91505092915050565b5f805f8060808587031215612fb057612faf612a6e565b5b5f612fbd87828801612d20565b9450506020612fce87828801612d20565b9350506040612fdf87828801612d20565b9250506060612ff087828801612d20565b91505092959194509250565b5f806040838503121561301257613011612a6e565b5b5f61301f85828601612b77565b925050602061303085828601612b77565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61306e602083612c71565b91506130798261303a565b602082019050919050565b5f6020820190508181035f83015261309b81613062565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61310682612d01565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613138576131376130cf565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61319d602683612c71565b91506131a882613143565b604082019050919050565b5f6020820190508181035f8301526131ca81613191565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61322b602483612c71565b9150613236826131d1565b604082019050919050565b5f6020820190508181035f8301526132588161321f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132b9602283612c71565b91506132c48261325f565b604082019050919050565b5f6020820190508181035f8301526132e6816132ad565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613347602583612c71565b9150613352826132ed565b604082019050919050565b5f6020820190508181035f8301526133748161333b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d5602383612c71565b91506133e08261337b565b604082019050919050565b5f6020820190508181035f830152613402816133c9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613463602983612c71565b915061346e82613409565b604082019050919050565b5f6020820190508181035f83015261349081613457565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6134f1603f83612c71565b91506134fc82613497565b604082019050919050565b5f6020820190508181035f83015261351e816134e5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613559601c83612c71565b915061356482613525565b602082019050919050565b5f6020820190508181035f8301526135868161354d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6135e7602383612c71565b91506135f28261358d565b604082019050919050565b5f6020820190508181035f830152613614816135db565b9050919050565b5f61362582612d01565b915061363083612d01565b9250828201905080821115613648576136476130cf565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6136a8602383612c71565b91506136b38261364e565b604082019050919050565b5f6020820190508181035f8301526136d58161369c565b9050919050565b5f6136e682612d01565b91506136f183612d01565b9250828203905081811115613709576137086130cf565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613769602a83612c71565b91506137748261370f565b604082019050919050565b5f6020820190508181035f8301526137968161375d565b9050919050565b5f815190506137ab81612b61565b92915050565b5f602082840312156137c6576137c5612a6e565b5b5f6137d38482850161379d565b91505092915050565b5f819050919050565b5f6137ff6137fa6137f5846137dc565b612da5565b612d01565b9050919050565b61380f816137e5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61384781612b50565b82525050565b5f613858838361383e565b60208301905092915050565b5f602082019050919050565b5f61387a82613815565b613884818561381f565b935061388f8361382f565b805f5b838110156138bf5781516138a6888261384d565b97506138b183613864565b925050600181019050613892565b5085935050505092915050565b5f60a0820190506138df5f830188612e19565b6138ec6020830187613806565b81810360408301526138fe8186613870565b905061390d6060830185612ec5565b61391a6080830184612e19565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61395b82612d01565b915061396683612d01565b92508261397657613975613924565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6139b5601b83612c71565b91506139c082613981565b602082019050919050565b5f6020820190508181035f8301526139e2816139a9565b9050919050565b5f6139f382612d01565b91506139fe83612d01565b9250828202613a0c81612d01565b91508282048414831517613a2357613a226130cf565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a84602183612c71565b9150613a8f82613a2a565b604082019050919050565b5f6020820190508181035f830152613ab181613a78565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061f350f51666b930b9089619550e319f1a5b57356416324801c5e00ff821c53664736f6c63430008140033