610160604052348015610010575f80fd5b5060405161341438038061341483398181016040528101906100329190610772565b6040518060400160405280600881526020017f4655465546414641000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250836040518060400160405280600881526020017f46554655464146410000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f4646000000000000000000000000000000000000000000000000000000000000815250816003908161011b91906109d7565b50806004908161012b91906109d7565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361019e575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101959190610ab5565b60405180910390fd5b6101ad8161029660201b60201c565b506101c260068361035960201b90919060201c565b61012081815250506101de60078261035960201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a0818152505061021b6103a660201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506102903361026b61040060201b60201c565b600a6102779190610c36565b622dc6c06102859190610c80565b61040860201b60201c565b50610ed3565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208351101561037a576103738361048d60201b60201c565b90506103a0565b8261038a836104f260201b60201c565b5f01908161039891906109d7565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016103e5959493929190610ce8565b60405160208183030381529060405280519060200120905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610478575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161046f9190610ab5565b60405180910390fd5b6104895f83836104fb60201b60201c565b5050565b5f80829050601f815111156104d957826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016104d09190610d9f565b60405180910390fd5b8051816104e590610dec565b5f1c175f1b915050919050565b5f819050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361054b578060025f82825461053f9190610e52565b92505081905550610619565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156105d4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016105cb93929190610e85565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610660578060025f82825403925050819055506106aa565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107079190610eba565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61074182610718565b9050919050565b61075181610737565b811461075b575f80fd5b50565b5f8151905061076c81610748565b92915050565b5f6020828403121561078757610786610714565b5b5f6107948482850161075e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061081857607f821691505b60208210810361082b5761082a6107d4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261088d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610852565b6108978683610852565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6108db6108d66108d1846108af565b6108b8565b6108af565b9050919050565b5f819050919050565b6108f4836108c1565b610908610900826108e2565b84845461085e565b825550505050565b5f90565b61091c610910565b6109278184846108eb565b505050565b5b8181101561094a5761093f5f82610914565b60018101905061092d565b5050565b601f82111561098f5761096081610831565b61096984610843565b81016020851015610978578190505b61098c61098485610843565b83018261092c565b50505b505050565b5f82821c905092915050565b5f6109af5f1984600802610994565b1980831691505092915050565b5f6109c783836109a0565b9150826002028217905092915050565b6109e08261079d565b67ffffffffffffffff8111156109f9576109f86107a7565b5b610a038254610801565b610a0e82828561094e565b5f60209050601f831160018114610a3f575f8415610a2d578287015190505b610a3785826109bc565b865550610a9e565b601f198416610a4d86610831565b5f5b82811015610a7457848901518255600182019150602085019450602081019050610a4f565b86831015610a915784890151610a8d601f8916826109a0565b8355505b6001600288020188555050505b505050505050565b610aaf81610737565b82525050565b5f602082019050610ac85f830184610aa6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610b5057808604811115610b2c57610b2b610ace565b5b6001851615610b3b5780820291505b8081029050610b4985610afb565b9450610b10565b94509492505050565b5f82610b685760019050610c23565b81610b75575f9050610c23565b8160018114610b8b5760028114610b9557610bc4565b6001915050610c23565b60ff841115610ba757610ba6610ace565b5b8360020a915084821115610bbe57610bbd610ace565b5b50610c23565b5060208310610133831016604e8410600b8410161715610bf95782820a905083811115610bf457610bf3610ace565b5b610c23565b610c068484846001610b07565b92509050818404811115610c1d57610c1c610ace565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610c40826108af565b9150610c4b83610c2a565b9250610c787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610b59565b905092915050565b5f610c8a826108af565b9150610c95836108af565b9250828202610ca3816108af565b91508282048414831517610cba57610cb9610ace565b5b5092915050565b5f819050919050565b610cd381610cc1565b82525050565b610ce2816108af565b82525050565b5f60a082019050610cfb5f830188610cca565b610d086020830187610cca565b610d156040830186610cca565b610d226060830185610cd9565b610d2f6080830184610aa6565b9695505050505050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d718261079d565b610d7b8185610d39565b9350610d8b818560208601610d49565b610d9481610d57565b840191505092915050565b5f6020820190508181035f830152610db78184610d67565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f610de38251610cc1565b80915050919050565b5f610df682610dbf565b82610e0084610dc9565b9050610e0b81610dd8565b92506020821015610e4b57610e467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610852565b831692505b5050919050565b5f610e5c826108af565b9150610e67836108af565b9250828201905080821115610e7f57610e7e610ace565b5b92915050565b5f606082019050610e985f830186610aa6565b610ea56020830185610cd9565b610eb26040830184610cd9565b949350505050565b5f602082019050610ecd5f830184610cd9565b92915050565b60805160a05160c05160e0516101005161012051610140516124f0610f245f395f61117001525f61113501525f61167001525f61164f01525f610de701525f610e3d01525f610e6601526124f05ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb1461034c578063d505accf1461037c578063d9d98ce414610398578063dd62ed3e146103c8578063f2fde38b146103f85761012a565b8063715018a6146102b25780637ecebe00146102bc57806384b0196e146102ec5780638da5cb5b1461031057806395d89b411461032e5761012a565b80633644e515116100f25780633644e515146101e857806340c10f19146102065780635cffe9de14610222578063613255ab1461025257806370a08231146102825761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a578063313ce567146101ca575b5f80fd5b610136610414565b6040516101439190611b26565b60405180910390f35b61016660048036038101906101619190611bdb565b6104a4565b6040516101739190611c33565b60405180910390f35b6101846104c6565b6040516101919190611c5b565b60405180910390f35b6101b460048036038101906101af9190611c74565b6104cf565b6040516101c19190611c33565b60405180910390f35b6101d26104fd565b6040516101df9190611cdf565b60405180910390f35b6101f0610505565b6040516101fd9190611d10565b60405180910390f35b610220600480360381019061021b9190611bdb565b610513565b005b61023c60048036038101906102379190611dc5565b610529565b6040516102499190611c33565b60405180910390f35b61026c60048036038101906102679190611e49565b61071e565b6040516102799190611c5b565b60405180910390f35b61029c60048036038101906102979190611e49565b610793565b6040516102a99190611c5b565b60405180910390f35b6102ba6107d8565b005b6102d660048036038101906102d19190611e49565b6107eb565b6040516102e39190611c5b565b60405180910390f35b6102f46107fc565b6040516103079796959493929190611f74565b60405180910390f35b6103186108a1565b6040516103259190611ff6565b60405180910390f35b6103366108c9565b6040516103439190611b26565b60405180910390f35b61036660048036038101906103619190611bdb565b610959565b6040516103739190611c33565b60405180910390f35b61039660048036038101906103919190612063565b61097b565b005b6103b260048036038101906103ad9190611bdb565b610ac0565b6040516103bf9190611c5b565b60405180910390f35b6103e260048036038101906103dd9190612100565b610b43565b6040516103ef9190611c5b565b60405180910390f35b610412600480360381019061040d9190611e49565b610bc5565b005b6060600380546104239061216b565b80601f016020809104026020016040519081016040528092919081815260200182805461044f9061216b565b801561049a5780601f106104715761010080835404028352916020019161049a565b820191905f5260205f20905b81548152906001019060200180831161047d57829003601f168201915b5050505050905090565b5f806104ae610c49565b90506104bb818585610c50565b600191505092915050565b5f600254905090565b5f806104d9610c49565b90506104e6858285610c62565b6104f1858585610cf4565b60019150509392505050565b5f6012905090565b5f61050e610de4565b905090565b61051b610e9a565b6105258282610f21565b5050565b5f806105348661071e565b90508085111561057b57806040517ffd9a76090000000000000000000000000000000000000000000000000000000081526004016105729190611c5b565b60405180910390fd5b5f6105868787610ac0565b90506105928887610f21565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98873ffffffffffffffffffffffffffffffffffffffff166323e30c8b6105d7610c49565b8a8a868b8b6040518763ffffffff1660e01b81526004016105fd969594939291906121e5565b6020604051808303815f875af1158015610619573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063d9190612253565b1461067f57876040517f678c5b000000000000000000000000000000000000000000000000000000000081526004016106769190611ff6565b60405180910390fd5b5f610688610fa0565b90506106a08930848a61069b91906122ab565b610c62565b5f8214806106d957505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156106f8576106f38983896106ee91906122ab565b610fa4565b61070e565b6107028988610fa4565b61070d898284610cf4565b5b6001935050505095945050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610758575f61078c565b6107606104c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61078b91906122de565b5b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e0610e9a565b6107e95f611023565b565b5f6107f5826110e6565b9050919050565b5f6060805f805f606061080d61112c565b610815611167565b46305f801b5f67ffffffffffffffff81111561083457610833612311565b5b6040519080825280602002602001820160405280156108625781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108d89061216b565b80601f01602080910402602001604051908101604052809291908181526020018280546109049061216b565b801561094f5780601f106109265761010080835404028352916020019161094f565b820191905f5260205f20905b81548152906001019060200180831161093257829003601f168201915b5050505050905090565b5f80610963610c49565b9050610970818585610cf4565b600191505092915050565b834211156109c057836040517f627913020000000000000000000000000000000000000000000000000000000081526004016109b79190611c5b565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109ee8c6111a2565b89604051602001610a049695949392919061233e565b6040516020818303038152906040528051906020012090505f610a26826111f5565b90505f610a358287878761120e565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aa957808a6040517f4b800e46000000000000000000000000000000000000000000000000000000008152600401610aa092919061239d565b60405180910390fd5b610ab48a8a8a610c50565b50505050505050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610b3157826040517fb5a7db92000000000000000000000000000000000000000000000000000000008152600401610b289190611ff6565b60405180910390fd5b610b3b838361123c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bcd610e9a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c3d575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c349190611ff6565b60405180910390fd5b610c4681611023565b50565b5f33905090565b610c5d8383836001611243565b505050565b5f610c6d8484610b43565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cee5781811015610cdf578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610cd6939291906123c4565b60405180910390fd5b610ced84848484035f611243565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d64575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610d5b9190611ff6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd4575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610dcb9190611ff6565b60405180910390fd5b610ddf838383611412565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610e5f57507f000000000000000000000000000000000000000000000000000000000000000046145b15610e8c577f00000000000000000000000000000000000000000000000000000000000000009050610e97565b610e9461162b565b90505b90565b610ea2610c49565b73ffffffffffffffffffffffffffffffffffffffff16610ec06108a1565b73ffffffffffffffffffffffffffffffffffffffff1614610f1f57610ee3610c49565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610f169190611ff6565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f91575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f889190611ff6565b60405180910390fd5b610f9c5f8383611412565b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611014575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161100b9190611ff6565b60405180910390fd5b61101f825f83611412565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606061116260067f00000000000000000000000000000000000000000000000000000000000000006116c090919063ffffffff16565b905090565b606061119d60077f00000000000000000000000000000000000000000000000000000000000000006116c090919063ffffffff16565b905090565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f611207611201610de4565b8361176d565b9050919050565b5f805f8061121e888888886117ad565b92509250925061122e8282611894565b829350505050949350505050565b5f92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112b3575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016112aa9190611ff6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611323575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161131a9190611ff6565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561140c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516114039190611c5b565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462578060025f82825461145691906122ab565b92505081905550611530565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114eb578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114e2939291906123c4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577578060025f82825403925050819055506115c1565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161161e9190611c5b565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016116a59594939291906123f9565b60405160208183030381529060405280519060200120905090565b606060ff5f1b83146116dc576116d5836119f6565b9050611767565b8180546116e89061216b565b80601f01602080910402602001604051908101604052809291908181526020018280546117149061216b565b801561175f5780601f106117365761010080835404028352916020019161175f565b820191905f5260205f20905b81548152906001019060200180831161174257829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156117e9575f60038592509250925061188a565b5f6001888888886040515f815260200160405260405161180c949392919061244a565b6020604051602081039080840390855afa15801561182c573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361187d575f60015f801b9350935093505061188a565b805f805f1b935093509350505b9450945094915050565b5f60038111156118a7576118a661248d565b5b8260038111156118ba576118b961248d565b5b03156119f257600160038111156118d4576118d361248d565b5b8260038111156118e7576118e661248d565b5b0361191e576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156119325761193161248d565b5b8260038111156119455761194461248d565b5b0361198957805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016119809190611c5b565b60405180910390fd5b60038081111561199c5761199b61248d565b5b8260038111156119af576119ae61248d565b5b036119f157806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016119e89190611d10565b60405180910390fd5b5b5050565b60605f611a0283611a68565b90505f602067ffffffffffffffff811115611a2057611a1f612311565b5b6040519080825280601f01601f191660200182016040528015611a525781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f8060ff835f1c169050601f811115611aad576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611af882611ab6565b611b028185611ac0565b9350611b12818560208601611ad0565b611b1b81611ade565b840191505092915050565b5f6020820190508181035f830152611b3e8184611aee565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b7782611b4e565b9050919050565b611b8781611b6d565b8114611b91575f80fd5b50565b5f81359050611ba281611b7e565b92915050565b5f819050919050565b611bba81611ba8565b8114611bc4575f80fd5b50565b5f81359050611bd581611bb1565b92915050565b5f8060408385031215611bf157611bf0611b46565b5b5f611bfe85828601611b94565b9250506020611c0f85828601611bc7565b9150509250929050565b5f8115159050919050565b611c2d81611c19565b82525050565b5f602082019050611c465f830184611c24565b92915050565b611c5581611ba8565b82525050565b5f602082019050611c6e5f830184611c4c565b92915050565b5f805f60608486031215611c8b57611c8a611b46565b5b5f611c9886828701611b94565b9350506020611ca986828701611b94565b9250506040611cba86828701611bc7565b9150509250925092565b5f60ff82169050919050565b611cd981611cc4565b82525050565b5f602082019050611cf25f830184611cd0565b92915050565b5f819050919050565b611d0a81611cf8565b82525050565b5f602082019050611d235f830184611d01565b92915050565b5f611d3382611b6d565b9050919050565b611d4381611d29565b8114611d4d575f80fd5b50565b5f81359050611d5e81611d3a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611d8557611d84611d64565b5b8235905067ffffffffffffffff811115611da257611da1611d68565b5b602083019150836001820283011115611dbe57611dbd611d6c565b5b9250929050565b5f805f805f60808688031215611dde57611ddd611b46565b5b5f611deb88828901611d50565b9550506020611dfc88828901611b94565b9450506040611e0d88828901611bc7565b935050606086013567ffffffffffffffff811115611e2e57611e2d611b4a565b5b611e3a88828901611d70565b92509250509295509295909350565b5f60208284031215611e5e57611e5d611b46565b5b5f611e6b84828501611b94565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611ea881611e74565b82525050565b611eb781611b6d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611eef81611ba8565b82525050565b5f611f008383611ee6565b60208301905092915050565b5f602082019050919050565b5f611f2282611ebd565b611f2c8185611ec7565b9350611f3783611ed7565b805f5b83811015611f67578151611f4e8882611ef5565b9750611f5983611f0c565b925050600181019050611f3a565b5085935050505092915050565b5f60e082019050611f875f83018a611e9f565b8181036020830152611f998189611aee565b90508181036040830152611fad8188611aee565b9050611fbc6060830187611c4c565b611fc96080830186611eae565b611fd660a0830185611d01565b81810360c0830152611fe88184611f18565b905098975050505050505050565b5f6020820190506120095f830184611eae565b92915050565b61201881611cc4565b8114612022575f80fd5b50565b5f813590506120338161200f565b92915050565b61204281611cf8565b811461204c575f80fd5b50565b5f8135905061205d81612039565b92915050565b5f805f805f805f60e0888a03121561207e5761207d611b46565b5b5f61208b8a828b01611b94565b975050602061209c8a828b01611b94565b96505060406120ad8a828b01611bc7565b95505060606120be8a828b01611bc7565b94505060806120cf8a828b01612025565b93505060a06120e08a828b0161204f565b92505060c06120f18a828b0161204f565b91505092959891949750929550565b5f806040838503121561211657612115611b46565b5b5f61212385828601611b94565b925050602061213485828601611b94565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061218257607f821691505b6020821081036121955761219461213e565b5b50919050565b5f82825260208201905092915050565b828183375f83830152505050565b5f6121c4838561219b565b93506121d18385846121ab565b6121da83611ade565b840190509392505050565b5f60a0820190506121f85f830189611eae565b6122056020830188611eae565b6122126040830187611c4c565b61221f6060830186611c4c565b81810360808301526122328184866121b9565b9050979650505050505050565b5f8151905061224d81612039565b92915050565b5f6020828403121561226857612267611b46565b5b5f6122758482850161223f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6122b582611ba8565b91506122c083611ba8565b92508282019050808211156122d8576122d761227e565b5b92915050565b5f6122e882611ba8565b91506122f383611ba8565b925082820390508181111561230b5761230a61227e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60c0820190506123515f830189611d01565b61235e6020830188611eae565b61236b6040830187611eae565b6123786060830186611c4c565b6123856080830185611c4c565b61239260a0830184611c4c565b979650505050505050565b5f6040820190506123b05f830185611eae565b6123bd6020830184611eae565b9392505050565b5f6060820190506123d75f830186611eae565b6123e46020830185611c4c565b6123f16040830184611c4c565b949350505050565b5f60a08201905061240c5f830188611d01565b6124196020830187611d01565b6124266040830186611d01565b6124336060830185611c4c565b6124406080830184611eae565b9695505050505050565b5f60808201905061245d5f830187611d01565b61246a6020830186611cd0565b6124776040830185611d01565b6124846060830184611d01565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212202edd8aa60b59a53f0f0b58de6bb32e7d2c428b64a9240bc9d2a97c1962f18c1264736f6c634300081a00330000000000000000000000000b580f3c49a78f9425cff53c0d55068ad0c4373e