0x61016060405234801562000011575f80fd5b50604051620060b0380380620060b0833981810160405281019062000037919062001319565b6040518060400160405280600381526020017f4f50530000000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250836040518060400160405280600381526020017f4f505300000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d544b00000000000000000000000000000000000000000000000000000000008152508160039081620001229190620015ad565b508060049081620001349190620015ad565b5050505f60055f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001c3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001ba9190620016a2565b60405180910390fd5b620001d481620002cb60201b60201c565b50620001eb6006836200039060201b90919060201c565b6101208181525050620002096007826200039060201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a0818152505062000248620003e560201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505050620002c4336200029b6200044160201b60201c565b600a620002a9919062001846565b6103e8620002b8919062001896565b6200044960201b60201c565b5062001d4a565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f602083511015620003b557620003ad83620004d360201b60201c565b9050620003df565b82620003c7836200053d60201b60201c565b5f019081620003d79190620015ad565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620004269594939291906200190b565b60405160208183030381529060405280519060200120905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004bc575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004b39190620016a2565b60405180910390fd5b620004cf5f83836200054660201b60201c565b5050565b5f80829050601f815111156200052257826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620005199190620019f0565b60405180910390fd5b805181620005309062001a41565b5f1c175f1b915050919050565b5f819050919050565b620005598383836200055e60201b60201c565b505050565b620005718383836200063060201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000618575f620005b66200065860201b60201c565b90505f620005c96200066160201b60201c565b905080821115620006155781816040517f1cb15d260000000000000000000000000000000000000000000000000000000081526004016200060c92919062001ab0565b60405180910390fd5b50505b6200062b8383836200068460201b60201c565b505050565b620006406200078860201b60201c565b62000653838383620007d260201b60201c565b505050565b5f600254905090565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006ea57620006e7600b620009f660201b6200138317620006db8462000a0d60201b60201c565b62000a7d60201b60201c565b50505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000750576200074d600b62000acc60201b6200139817620007418462000a0d60201b60201c565b62000a7d60201b60201c565b50505b62000783620007658462000ae360201b60201c565b620007768462000ae360201b60201c565b8362000b4860201b60201c565b505050565b6200079862000df260201b60201c565b15620007d0576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000826578060025f82825462000819919062001adb565b92505081905550620008f7565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620008b2578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620008a99392919062001b15565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000940578060025f82825403925050819055506200098a565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009e9919062001b50565b60405180910390a3505050565b5f818362000a05919062001b90565b905092915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000a755760d0826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040162000a6c92919062001c25565b60405180910390fd5b819050919050565b5f8062000ac062000a9362000e0760201b60201c565b62000aaf62000aa88862000e1d60201b60201c565b868860201c565b8762000e8b60201b9092919060201c565b91509150935093915050565b5f818362000adb919062001c50565b905092915050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000b8457505f81115b1562000ded575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000cbb575f8062000c2a600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2062000acc60201b620013981762000c1e8662000a0d60201b60201c565b62000a7d60201b60201c565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000cb092919062001ab0565b60405180910390a250505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000dec575f8062000d5b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20620009f660201b620013831762000d4f8662000a0d60201b60201c565b62000a7d60201b60201c565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000de192919062001ab0565b60405180910390a250505b5b505050565b5f60055f9054906101000a900460ff16905090565b5f62000e1862000eae60201b60201c565b905090565b5f80825f018054905090505f811462000e815762000e52835f0160018362000e46919062001ca4565b62000ec560201b60201c565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1662000e83565b5f5b915050919050565b5f8062000ea2855f01858562000ed760201b60201c565b91509150935093915050565b5f62000ec0436200125860201b60201c565b905090565b5f825f528160205f2001905092915050565b5f805f858054905090505f81111562001170575f62000f0b8760018462000eff919062001ca4565b62000ec560201b60201c565b6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508565ffffffffffff16815f015165ffffffffffff16111562000ff7576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8565ffffffffffff16815f015165ffffffffffff1603620010855784620010338860018562001027919062001ca4565b62000ec560201b60201c565b5f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506200115e565b8660405180604001604052808865ffffffffffff1681526020018779ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b80602001518593509350505062001250565b8560405180604001604052808765ffffffffffff1681526020018679ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505f8492509250505b935093915050565b5f65ffffffffffff8016821115620012ac576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401620012a392919062001d1f565b60405180910390fd5b819050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620012e382620012b8565b9050919050565b620012f581620012d7565b811462001300575f80fd5b50565b5f815190506200131381620012ea565b92915050565b5f60208284031215620013315762001330620012b4565b5b5f620013408482850162001303565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620013c557607f821691505b602082108103620013db57620013da62001380565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200143f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001402565b6200144b868362001402565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620014956200148f620014898462001463565b6200146c565b62001463565b9050919050565b5f819050919050565b620014b08362001475565b620014c8620014bf826200149c565b8484546200140e565b825550505050565b5f90565b620014de620014d0565b620014eb818484620014a5565b505050565b5b818110156200151257620015065f82620014d4565b600181019050620014f1565b5050565b601f82111562001561576200152b81620013e1565b6200153684620013f3565b8101602085101562001546578190505b6200155e6200155585620013f3565b830182620014f0565b50505b505050565b5f82821c905092915050565b5f620015835f198460080262001566565b1980831691505092915050565b5f6200159d838362001572565b9150826002028217905092915050565b620015b88262001349565b67ffffffffffffffff811115620015d457620015d362001353565b5b620015e08254620013ad565b620015ed82828562001516565b5f60209050601f83116001811462001623575f84156200160e578287015190505b6200161a858262001590565b86555062001689565b601f1984166200163386620013e1565b5f5b828110156200165c5784890151825560018201915060208501945060208101905062001635565b868310156200167c578489015162001678601f89168262001572565b8355505b6001600288020188555050505b505050505050565b6200169c81620012d7565b82525050565b5f602082019050620016b75f83018462001691565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562001747578086048111156200171f576200171e620016bd565b5b60018516156200172f5780820291505b80810290506200173f85620016ea565b9450620016ff565b94509492505050565b5f8262001761576001905062001833565b8162001770575f905062001833565b81600181146200178957600281146200179457620017ca565b600191505062001833565b60ff841115620017a957620017a8620016bd565b5b8360020a915084821115620017c357620017c2620016bd565b5b5062001833565b5060208310610133831016604e8410600b8410161715620018045782820a905083811115620017fe57620017fd620016bd565b5b62001833565b620018138484846001620016f6565b925090508184048111156200182d576200182c620016bd565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620018528262001463565b91506200185f836200183a565b92506200188e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001750565b905092915050565b5f620018a28262001463565b9150620018af8362001463565b9250828202620018bf8162001463565b91508282048414831517620018d957620018d8620016bd565b5b5092915050565b5f819050919050565b620018f481620018e0565b82525050565b620019058162001463565b82525050565b5f60a082019050620019205f830188620018e9565b6200192f6020830187620018e9565b6200193e6040830186620018e9565b6200194d6060830185620018fa565b6200195c608083018462001691565b9695505050505050565b5f82825260208201905092915050565b5f5b838110156200199557808201518184015260208101905062001978565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620019bc8262001349565b620019c8818562001966565b9350620019da81856020860162001976565b620019e581620019a0565b840191505092915050565b5f6020820190508181035f83015262001a0a8184620019b0565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f62001a388251620018e0565b80915050919050565b5f62001a4d8262001a12565b8262001a598462001a1c565b905062001a668162001a2b565b9250602082101562001aa95762001aa47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262001402565b831692505b5050919050565b5f60408201905062001ac55f830185620018fa565b62001ad46020830184620018fa565b9392505050565b5f62001ae78262001463565b915062001af48362001463565b925082820190508082111562001b0f5762001b0e620016bd565b5b92915050565b5f60608201905062001b2a5f83018662001691565b62001b396020830185620018fa565b62001b486040830184620018fa565b949350505050565b5f60208201905062001b655f830184620018fa565b92915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62001b9c8262001b6b565b915062001ba98362001b6b565b9250828201905079ffffffffffffffffffffffffffffffffffffffffffffffffffff81111562001bde5762001bdd620016bd565b5b92915050565b5f819050919050565b5f62001c0d62001c0762001c018462001be4565b6200146c565b6200183a565b9050919050565b62001c1f8162001bed565b82525050565b5f60408201905062001c3a5f83018562001c14565b62001c496020830184620018fa565b9392505050565b5f62001c5c8262001b6b565b915062001c698362001b6b565b9250828203905079ffffffffffffffffffffffffffffffffffffffffffffffffffff81111562001c9e5762001c9d620016bd565b5b92915050565b5f62001cb08262001463565b915062001cbd8362001463565b925082820390508181111562001cd85762001cd7620016bd565b5b92915050565b5f819050919050565b5f62001d0762001d0162001cfb8462001cde565b6200146c565b6200183a565b9050919050565b62001d198162001ce7565b82525050565b5f60408201905062001d345f83018562001d0e565b62001d436020830184620018fa565b9392505050565b60805160a05160c05160e05161010051610120516101405161431462001d9c5f395f611c1e01525f611be301525f61202d01525f61200c01525f61154b01525f6115a101525f6115ca01526143145ff3fe608060405234801561000f575f80fd5b506004361061020f575f3560e01c806370a082311161012357806395d89b41116100ab578063d505accf1161007a578063d505accf1461062f578063d9d98ce41461064b578063dd62ed3e1461067b578063f1127ed8146106ab578063f2fde38b146106db5761020f565b806395d89b41146105955780639ab24eb0146105b3578063a9059cbb146105e3578063c3cda520146106135761020f565b80638456cb59116100f25780638456cb59146104fb57806384b0196e146105055780638da5cb5b146105295780638e539e8c1461054757806391ddadf4146105775761020f565b806370a0823114610475578063715018a6146104a557806379cc6790146104af5780637ecebe00146104cb5761020f565b806340c10f19116101a65780635c19a95c116101755780635c19a95c146103ab5780635c975abb146103c75780635cffe9de146103e5578063613255ab146104155780636fcfff45146104455761020f565b806340c10f191461032557806342966c68146103415780634bf5d7e91461035d578063587cde1e1461037b5761020f565b8063313ce567116101e2578063313ce567146102af5780633644e515146102cd5780633a46b1a8146102eb5780633f4ba83a1461031b5761020f565b806306fdde0314610213578063095ea7b31461023157806318160ddd1461026157806323b872dd1461027f575b5f80fd5b61021b6106f7565b6040516102289190613430565b60405180910390f35b61024b600480360381019061024691906134e5565b610787565b604051610258919061353d565b60405180910390f35b6102696107a9565b6040516102769190613565565b60405180910390f35b6102996004803603810190610294919061357e565b6107b2565b6040516102a6919061353d565b60405180910390f35b6102b76107e0565b6040516102c491906135e9565b60405180910390f35b6102d56107e8565b6040516102e2919061361a565b60405180910390f35b610305600480360381019061030091906134e5565b6107f6565b6040516103129190613565565b60405180910390f35b6103236108cc565b005b61033f600480360381019061033a91906134e5565b6108de565b005b61035b60048036038101906103569190613633565b6108f4565b005b610365610908565b6040516103729190613430565b60405180910390f35b6103956004803603810190610390919061365e565b61099c565b6040516103a29190613698565b60405180910390f35b6103c560048036038101906103c0919061365e565b610a01565b005b6103cf610a1a565b6040516103dc919061353d565b60405180910390f35b6103ff60048036038101906103fa919061374d565b610a2f565b60405161040c919061353d565b60405180910390f35b61042f600480360381019061042a919061365e565b610c24565b60405161043c9190613565565b60405180910390f35b61045f600480360381019061045a919061365e565b610c99565b60405161046c91906137ef565b60405180910390f35b61048f600480360381019061048a919061365e565b610caa565b60405161049c9190613565565b60405180910390f35b6104ad610cef565b005b6104c960048036038101906104c491906134e5565b610d02565b005b6104e560048036038101906104e0919061365e565b610d22565b6040516104f29190613565565b60405180910390f35b610503610d33565b005b61050d610d45565b60405161052097969594939291906138f9565b60405180910390f35b610531610dea565b60405161053e9190613698565b60405180910390f35b610561600480360381019061055c9190613633565b610e13565b60405161056e9190613565565b60405180910390f35b61057f610ead565b60405161058c919061399b565b60405180910390f35b61059d610ebb565b6040516105aa9190613430565b60405180910390f35b6105cd60048036038101906105c8919061365e565b610f4b565b6040516105da9190613565565b60405180910390f35b6105fd60048036038101906105f891906134e5565b610fb4565b60405161060a919061353d565b60405180910390f35b61062d60048036038101906106289190613a08565b610fd6565b005b61064960048036038101906106449190613a91565b61109b565b005b610665600480360381019061066091906134e5565b6111e0565b6040516106729190613565565b60405180910390f35b61069560048036038101906106909190613b2e565b611263565b6040516106a29190613565565b60405180910390f35b6106c560048036038101906106c09190613b96565b6112e5565b6040516106d29190613c44565b60405180910390f35b6106f560048036038101906106f0919061365e565b6112ff565b005b60606003805461070690613c8a565b80601f016020809104026020016040519081016040528092919081815260200182805461073290613c8a565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b5050505050905090565b5f806107916113ad565b905061079e8185856113b4565b600191505092915050565b5f600254905090565b5f806107bc6113ad565b90506107c98582856113c6565b6107d4858585611458565b60019150509392505050565b5f6012905090565b5f6107f1611548565b905090565b5f80610800610ead565b90508065ffffffffffff1683106108505782816040517fecd3f81e000000000000000000000000000000000000000000000000000000008152600401610847929190613cba565b60405180910390fd5b6108a761085c846115fe565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061165790919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff1691505092915050565b6108d4611744565b6108dc6117cb565b565b6108e6611744565b6108f0828261182c565b5050565b6109056108ff6113ad565b826118ab565b50565b606061091261192a565b65ffffffffffff16610922610ead565b65ffffffffffff1614610961576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280601d81526020017f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000815250905090565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610a0a6113ad565b9050610a168183611939565b5050565b5f60055f9054906101000a900460ff16905090565b5f80610a3a86610c24565b905080851115610a8157806040517ffd9a7609000000000000000000000000000000000000000000000000000000008152600401610a789190613565565b60405180910390fd5b5f610a8c87876111e0565b9050610a98888761182c565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98873ffffffffffffffffffffffffffffffffffffffff166323e30c8b610add6113ad565b8a8a868b8b6040518763ffffffff1660e01b8152600401610b0396959493929190613d2b565b6020604051808303815f875af1158015610b1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b439190613d99565b14610b8557876040517f678c5b00000000000000000000000000000000000000000000000000000000008152600401610b7c9190613698565b60405180910390fd5b5f610b8e611a49565b9050610ba68930848a610ba19190613df1565b6113c6565b5f821480610bdf57505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610bfe57610bf9898389610bf49190613df1565b6118ab565b610c14565b610c0889886118ab565b610c13898284611458565b5b6001935050505095945050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c5e575f610c92565b610c666107a9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c919190613e24565b5b9050919050565b5f610ca382611a4d565b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cf7611744565b610d005f611aa2565b565b610d1482610d0e6113ad565b836113c6565b610d1e82826118ab565b5050565b5f610d2c82611b67565b9050919050565b610d3b611744565b610d43611b78565b565b5f6060805f805f6060610d56611bda565b610d5e611c15565b46305f801b5f67ffffffffffffffff811115610d7d57610d7c613e57565b5b604051908082528060200260200182016040528015610dab5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80610e1d610ead565b90508065ffffffffffff168310610e6d5782816040517fecd3f81e000000000000000000000000000000000000000000000000000000008152600401610e64929190613cba565b60405180910390fd5b610e89610e79846115fe565b600b61165790919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b5f610eb661192a565b905090565b606060048054610eca90613c8a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef690613c8a565b8015610f415780601f10610f1857610100808354040283529160200191610f41565b820191905f5260205f20905b815481529060010190602001808311610f2457829003601f168201915b5050505050905090565b5f610f91600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611c50565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff169050919050565b5f80610fbe6113ad565b9050610fcb818585611458565b600191505092915050565b8342111561101b57836040517f4683af0e0000000000000000000000000000000000000000000000000000000081526004016110129190613565565b60405180910390fd5b5f61107c6110747fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8989896040516020016110599493929190613e84565b60405160208183030381529060405280519060200120611cb2565b858585611ccb565b90506110888187611cf9565b6110928188611939565b50505050505050565b834211156110e057836040517f627913020000000000000000000000000000000000000000000000000000000081526004016110d79190613565565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861110e8c611d50565b8960405160200161112496959493929190613ec7565b6040516020818303038152906040528051906020012090505f61114682611cb2565b90505f61115582878787611ccb565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111c957808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016111c0929190613f26565b60405180910390fd5b6111d48a8a8a6113b4565b50505050505050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461125157826040517fb5a7db920000000000000000000000000000000000000000000000000000000081526004016112489190613698565b60405180910390fd5b61125b8383611da3565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112ed61336a565b6112f78383611daa565b905092915050565b611307611744565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611377575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161136e9190613698565b60405180910390fd5b61138081611aa2565b50565b5f81836113909190613f4d565b905092915050565b5f81836113a59190613f9a565b905092915050565b5f33905090565b6113c18383836001611e09565b505050565b5f6113d18484611263565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114525781811015611443578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161143a93929190613fe7565b60405180910390fd5b61145184848484035f611e09565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114bf9190613698565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611538575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161152f9190613698565b60405180910390fd5b611543838383611fd8565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156115c357507f000000000000000000000000000000000000000000000000000000000000000046145b156115f0577f000000000000000000000000000000000000000000000000000000000000000090506115fb565b6115f8611fe8565b90505b90565b5f65ffffffffffff801682111561164f576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161164692919061405e565b60405180910390fd5b819050919050565b5f80835f018054905090505f8082905060058311156116d8575f61167a8461207d565b846116859190613e24565b9050611693875f0182612173565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff1610156116c6578091506116d6565b6001816116d39190613df1565b92505b505b5f6116e7875f01878585612185565b90505f811461173657611708875f016001836117039190613e24565b612173565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16611738565b5f5b94505050505092915050565b61174c6113ad565b73ffffffffffffffffffffffffffffffffffffffff1661176a610dea565b73ffffffffffffffffffffffffffffffffffffffff16146117c95761178d6113ad565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117c09190613698565b60405180910390fd5b565b6117d36121fa565b5f60055f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118156113ad565b6040516118229190613698565b60405180910390a1565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361189c575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016118939190613698565b60405180910390fd5b6118a75f8383611fd8565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191b575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016119129190613698565b60405180910390fd5b611926825f83611fd8565b5050565b5f611934436115fe565b905090565b5f6119438361099c565b90508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611a448183611a3f8661223a565b61224b565b505050565b5f90565b5f611a9b611a96600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206124bb565b6124ca565b9050919050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611b7182612521565b9050919050565b611b80612567565b600160055f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611bc36113ad565b604051611bd09190613698565b60405180910390a1565b6060611c1060067f00000000000000000000000000000000000000000000000000000000000000006125a890919063ffffffff16565b905090565b6060611c4b60077f00000000000000000000000000000000000000000000000000000000000000006125a890919063ffffffff16565b905090565b5f80825f018054905090505f8114611ca857611c7a835f01600183611c759190613e24565b612173565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16611caa565b5f5b915050919050565b5f611cc4611cbe611548565b83612655565b9050919050565b5f805f80611cdb88888888612695565b925092509250611ceb828261277c565b829350505050949350505050565b5f611d0383611d50565b9050808214611d4b5782816040517f752d88c0000000000000000000000000000000000000000000000000000000008152600401611d42929190614085565b60405180910390fd5b505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f92915050565b611db261336a565b611e0182600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206128de90919063ffffffff16565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e79575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611e709190613698565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ee9575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611ee09190613698565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611fd2578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611fc99190613565565b60405180910390a35b50505050565b611fe38383836129ad565b505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016120629594939291906140ac565b60405160208183030381529060405280519060200120905090565b5f80820361208d575f905061216e565b5f600161209984612a5b565b901c6001901b905060018184816120b3576120b26140fd565b5b048201901c905060018184816120cc576120cb6140fd565b5b048201901c905060018184816120e5576120e46140fd565b5b048201901c905060018184816120fe576120fd6140fd565b5b048201901c90506001818481612117576121166140fd565b5b048201901c905060018184816121305761212f6140fd565b5b048201901c90506001818481612149576121486140fd565b5b048201901c905061216a81828581612164576121636140fd565b5b04612b32565b9150505b919050565b5f825f528160205f2001905092915050565b5f5b818310156121ef575f61219a8484612b4a565b90508465ffffffffffff166121af8783612173565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff1611156121d9578092506121e9565b6001816121e69190613df1565b93505b50612187565b819050949350505050565b612202610a1a565b612238576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f61224482610caa565b9050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561228657505f81115b156124b6575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123a0575f80612311600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061139861230c86612b6f565b612bdc565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161239592919061412a565b60405180910390a250505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146124b5575f80612426600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061138361242186612b6f565b612bdc565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516124aa92919061412a565b60405180910390a250505b5b505050565b5f815f01805490509050919050565b5f63ffffffff8016821115612519576020826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161251092919061418a565b60405180910390fd5b819050919050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61256f610a1a565b156125a6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060ff5f1b83146125c4576125bd83612c1b565b905061264f565b8180546125d090613c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546125fc90613c8a565b80156126475780601f1061261e57610100808354040283529160200191612647565b820191905f5260205f20905b81548152906001019060200180831161262a57829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156126d1575f600385925092509250612772565b5f6001888888886040515f81526020016040526040516126f494939291906141b1565b6020604051602081039080840390855afa158015612714573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612765575f60015f801b93509350935050612772565b805f805f1b935093509350505b9450945094915050565b5f600381111561278f5761278e6141f4565b5b8260038111156127a2576127a16141f4565b5b03156128da57600160038111156127bc576127bb6141f4565b5b8260038111156127cf576127ce6141f4565b5b03612806576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561281a576128196141f4565b5b82600381111561282d5761282c6141f4565b5b0361287157805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016128689190613565565b60405180910390fd5b600380811115612884576128836141f4565b5b826003811115612897576128966141f4565b5b036128d957806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016128d0919061361a565b60405180910390fd5b5b5050565b6128e661336a565b825f018263ffffffff168154811061290157612900614221565b5b905f5260205f20016040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6129b8838383612c8d565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a4b575f6129f46107a9565b90505f6129ff612ca5565b905080821115612a485781816040517f1cb15d26000000000000000000000000000000000000000000000000000000008152600401612a3f92919061412a565b60405180910390fd5b50505b612a56838383612cc8565b505050565b5f805f90505f608084901c1115612a7a57608083901c92506080810190505b5f604084901c1115612a9457604083901c92506040810190505b5f602084901c1115612aae57602083901c92506020810190505b5f601084901c1115612ac857601083901c92506010810190505b5f600884901c1115612ae257600883901c92506008810190505b5f600484901c1115612afc57600483901c92506004810190505b5f600284901c1115612b1657600283901c92506002810190505b5f600184901c1115612b29576001810190505b80915050919050565b5f818310612b405781612b42565b825b905092915050565b5f6002828418612b5a919061424e565b828416612b679190613df1565b905092915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016821115612bd45760d0826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401612bcb9291906142b7565b60405180910390fd5b819050919050565b5f80612c0f612be9610ead565b612bff612bf588611c50565b868863ffffffff16565b87612d809092919063ffffffff16565b91509150935093915050565b60605f612c2783612d9b565b90505f602067ffffffffffffffff811115612c4557612c44613e57565b5b6040519080825280601f01601f191660200182016040528015612c775781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b612c95612567565b612ca0838383612de9565b505050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d1457612d11600b611383612d0c84612b6f565b612bdc565b50505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d6057612d5d600b611398612d5884612b6f565b612bdc565b50505b612d7b612d6c8461099c565b612d758461099c565b8361224b565b505050565b5f80612d8f855f018585613002565b91509150935093915050565b5f8060ff835f1c169050601f811115612de0576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e39578060025f828254612e2d9190613df1565b92505081905550612f07565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ec2578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401612eb993929190613fe7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f4e578060025f8282540392505081905550612f98565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ff59190613565565b60405180910390a3505050565b5f805f858054905090505f811115613282575f61302b876001846130269190613e24565b612173565b6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508565ffffffffffff16815f015165ffffffffffff161115613116576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8565ffffffffffff16815f015165ffffffffffff16036131985784613147886001856131429190613e24565b612173565b5f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550613271565b8660405180604001604052808865ffffffffffff1681526020018779ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b806020015185935093505050613362565b8560405180604001604052808765ffffffffffff1681526020018679ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505f8492509250505b935093915050565b60405180604001604052805f65ffffffffffff1681526020015f79ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133dd5780820151818401526020810190506133c2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613402826133a6565b61340c81856133b0565b935061341c8185602086016133c0565b613425816133e8565b840191505092915050565b5f6020820190508181035f83015261344881846133f8565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61348182613458565b9050919050565b61349181613477565b811461349b575f80fd5b50565b5f813590506134ac81613488565b92915050565b5f819050919050565b6134c4816134b2565b81146134ce575f80fd5b50565b5f813590506134df816134bb565b92915050565b5f80604083850312156134fb576134fa613450565b5b5f6135088582860161349e565b9250506020613519858286016134d1565b9150509250929050565b5f8115159050919050565b61353781613523565b82525050565b5f6020820190506135505f83018461352e565b92915050565b61355f816134b2565b82525050565b5f6020820190506135785f830184613556565b92915050565b5f805f6060848603121561359557613594613450565b5b5f6135a28682870161349e565b93505060206135b38682870161349e565b92505060406135c4868287016134d1565b9150509250925092565b5f60ff82169050919050565b6135e3816135ce565b82525050565b5f6020820190506135fc5f8301846135da565b92915050565b5f819050919050565b61361481613602565b82525050565b5f60208201905061362d5f83018461360b565b92915050565b5f6020828403121561364857613647613450565b5b5f613655848285016134d1565b91505092915050565b5f6020828403121561367357613672613450565b5b5f6136808482850161349e565b91505092915050565b61369281613477565b82525050565b5f6020820190506136ab5f830184613689565b92915050565b5f6136bb82613477565b9050919050565b6136cb816136b1565b81146136d5575f80fd5b50565b5f813590506136e6816136c2565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261370d5761370c6136ec565b5b8235905067ffffffffffffffff81111561372a576137296136f0565b5b602083019150836001820283011115613746576137456136f4565b5b9250929050565b5f805f805f6080868803121561376657613765613450565b5b5f613773888289016136d8565b95505060206137848882890161349e565b9450506040613795888289016134d1565b935050606086013567ffffffffffffffff8111156137b6576137b5613454565b5b6137c2888289016136f8565b92509250509295509295909350565b5f63ffffffff82169050919050565b6137e9816137d1565b82525050565b5f6020820190506138025f8301846137e0565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61383c81613808565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613874816134b2565b82525050565b5f613885838361386b565b60208301905092915050565b5f602082019050919050565b5f6138a782613842565b6138b1818561384c565b93506138bc8361385c565b805f5b838110156138ec5781516138d3888261387a565b97506138de83613891565b9250506001810190506138bf565b5085935050505092915050565b5f60e08201905061390c5f83018a613833565b818103602083015261391e81896133f8565b9050818103604083015261393281886133f8565b90506139416060830187613556565b61394e6080830186613689565b61395b60a083018561360b565b81810360c083015261396d818461389d565b905098975050505050505050565b5f65ffffffffffff82169050919050565b6139958161397b565b82525050565b5f6020820190506139ae5f83018461398c565b92915050565b6139bd816135ce565b81146139c7575f80fd5b50565b5f813590506139d8816139b4565b92915050565b6139e781613602565b81146139f1575f80fd5b50565b5f81359050613a02816139de565b92915050565b5f805f805f8060c08789031215613a2257613a21613450565b5b5f613a2f89828a0161349e565b9650506020613a4089828a016134d1565b9550506040613a5189828a016134d1565b9450506060613a6289828a016139ca565b9350506080613a7389828a016139f4565b92505060a0613a8489828a016139f4565b9150509295509295509295565b5f805f805f805f60e0888a031215613aac57613aab613450565b5b5f613ab98a828b0161349e565b9750506020613aca8a828b0161349e565b9650506040613adb8a828b016134d1565b9550506060613aec8a828b016134d1565b9450506080613afd8a828b016139ca565b93505060a0613b0e8a828b016139f4565b92505060c0613b1f8a828b016139f4565b91505092959891949750929550565b5f8060408385031215613b4457613b43613450565b5b5f613b518582860161349e565b9250506020613b628582860161349e565b9150509250929050565b613b75816137d1565b8114613b7f575f80fd5b50565b5f81359050613b9081613b6c565b92915050565b5f8060408385031215613bac57613bab613450565b5b5f613bb98582860161349e565b9250506020613bca85828601613b82565b9150509250929050565b613bdd8161397b565b82525050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b613c1181613be3565b82525050565b604082015f820151613c2b5f850182613bd4565b506020820151613c3e6020850182613c08565b50505050565b5f604082019050613c575f830184613c17565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613ca157607f821691505b602082108103613cb457613cb3613c5d565b5b50919050565b5f604082019050613ccd5f830185613556565b613cda602083018461398c565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f613d0a8385613ce1565b9350613d17838584613cf1565b613d20836133e8565b840190509392505050565b5f60a082019050613d3e5f830189613689565b613d4b6020830188613689565b613d586040830187613556565b613d656060830186613556565b8181036080830152613d78818486613cff565b9050979650505050505050565b5f81519050613d93816139de565b92915050565b5f60208284031215613dae57613dad613450565b5b5f613dbb84828501613d85565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613dfb826134b2565b9150613e06836134b2565b9250828201905080821115613e1e57613e1d613dc4565b5b92915050565b5f613e2e826134b2565b9150613e39836134b2565b9250828203905081811115613e5157613e50613dc4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f608082019050613e975f83018761360b565b613ea46020830186613689565b613eb16040830185613556565b613ebe6060830184613556565b95945050505050565b5f60c082019050613eda5f83018961360b565b613ee76020830188613689565b613ef46040830187613689565b613f016060830186613556565b613f0e6080830185613556565b613f1b60a0830184613556565b979650505050505050565b5f604082019050613f395f830185613689565b613f466020830184613689565b9392505050565b5f613f5782613be3565b9150613f6283613be3565b9250828201905079ffffffffffffffffffffffffffffffffffffffffffffffffffff811115613f9457613f93613dc4565b5b92915050565b5f613fa482613be3565b9150613faf83613be3565b9250828203905079ffffffffffffffffffffffffffffffffffffffffffffffffffff811115613fe157613fe0613dc4565b5b92915050565b5f606082019050613ffa5f830186613689565b6140076020830185613556565b6140146040830184613556565b949350505050565b5f819050919050565b5f819050919050565b5f61404861404361403e8461401c565b614025565b6135ce565b9050919050565b6140588161402e565b82525050565b5f6040820190506140715f83018561404f565b61407e6020830184613556565b9392505050565b5f6040820190506140985f830185613689565b6140a56020830184613556565b9392505050565b5f60a0820190506140bf5f83018861360b565b6140cc602083018761360b565b6140d9604083018661360b565b6140e66060830185613556565b6140f36080830184613689565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f60408201905061413d5f830185613556565b61414a6020830184613556565b9392505050565b5f819050919050565b5f61417461416f61416a84614151565b614025565b6135ce565b9050919050565b6141848161415a565b82525050565b5f60408201905061419d5f83018561417b565b6141aa6020830184613556565b9392505050565b5f6080820190506141c45f83018761360b565b6141d160208301866135da565b6141de604083018561360b565b6141eb606083018461360b565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614258826134b2565b9150614263836134b2565b925082614273576142726140fd565b5b828204905092915050565b5f819050919050565b5f6142a161429c6142978461427e565b614025565b6135ce565b9050919050565b6142b181614287565b82525050565b5f6040820190506142ca5f8301856142a8565b6142d76020830184613556565b939250505056fea2646970667358221220083f3d7ab89171dbb4250a22c631169f47238044e61dc66bd2f9a47f535ffc3764736f6c63430008160033000000000000000000000000661bf9d7d43c434c951104fefb07ec28ab8c6309