0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200006f60201b60201c565b6200007760201b60201c565b6200049e565b80600290816200006b9190620003b7565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001bf57607f821691505b602082108103620001d557620001d462000177565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200023f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000200565b6200024b868362000200565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000298620002926200028c8462000263565b6200026d565b62000263565b9050919050565b6000819050919050565b620002b48362000277565b620002cc620002c3826200029f565b8484546200020d565b825550505050565b600090565b620002e3620002d4565b620002f0818484620002a9565b505050565b5b8181101562000318576200030c600082620002d9565b600181019050620002f6565b5050565b601f82111562000367576200033181620001db565b6200033c84620001f0565b810160208510156200034c578190505b620003646200035b85620001f0565b830182620002f5565b50505b505050565b600082821c905092915050565b60006200038c600019846008026200036c565b1980831691505092915050565b6000620003a7838362000379565b9150826002028217905092915050565b620003c2826200013d565b67ffffffffffffffff811115620003de57620003dd62000148565b5b620003ea8254620001a6565b620003f78282856200031c565b600060209050601f8311600181146200042f57600084156200041a578287015190505b62000426858262000399565b86555062000496565b601f1984166200043f86620001db565b60005b82811015620004695784890151825560018201915060208501945060208101905062000442565b8683101562000489578489015162000485601f89168262000379565b8355505b6001600288020188555050505b505050505050565b613ab280620004ae6000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c8063715018a6116100a2578063bd85b03911610071578063bd85b039146102b3578063e985e9c5146102e3578063f242432a14610313578063f2fde38b1461032f578063f5298aca1461034b5761010a565b8063715018a614610253578063731133e91461025d5780638da5cb5b14610279578063a22cb465146102975761010a565b80632eb2c2d6116100de5780632eb2c2d6146101bb5780634e1273f4146101d75780634f558e79146102075780636b20c454146102375761010a565b8062fdd58e1461010f57806301ffc9a71461013f5780630e89341c1461016f5780631f7fdffa1461019f575b600080fd5b610129600480360381019061012491906123c1565b610367565b6040516101369190612410565b60405180910390f35b61015960048036038101906101549190612483565b61042f565b60405161016691906124cb565b60405180910390f35b610189600480360381019061018491906124e6565b610511565b60405161019691906125a3565b60405180910390f35b6101b960048036038101906101b491906127c2565b6105a5565b005b6101d560048036038101906101d0919061287d565b6105bf565b005b6101f160048036038101906101ec9190612a0f565b610660565b6040516101fe9190612b45565b60405180910390f35b610221600480360381019061021c91906124e6565b610779565b60405161022e91906124cb565b60405180910390f35b610251600480360381019061024c9190612b67565b61078d565b005b61025b61082a565b005b61027760048036038101906102729190612bf2565b61083e565b005b610281610858565b60405161028e9190612c84565b60405180910390f35b6102b160048036038101906102ac9190612ccb565b610882565b005b6102cd60048036038101906102c891906124e6565b610898565b6040516102da9190612410565b60405180910390f35b6102fd60048036038101906102f89190612d0b565b6108b5565b60405161030a91906124cb565b60405180910390f35b61032d60048036038101906103289190612d4b565b610949565b005b61034960048036038101906103449190612de2565b6109ea565b005b61036560048036038101906103609190612e0f565b610a6d565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ce90612ed4565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104fa57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061050a575061050982610b0a565b5b9050919050565b60606002805461052090612f23565b80601f016020809104026020016040519081016040528092919081815260200182805461054c90612f23565b80156105995780601f1061056e57610100808354040283529160200191610599565b820191906000526020600020905b81548152906001019060200180831161057c57829003601f168201915b50505050509050919050565b6105ad610b74565b6105b984848484610bf2565b50505050565b6105c7610e1e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061060d575061060c85610607610e1e565b6108b5565b5b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390612fc6565b60405180910390fd5b6106598585858585610e26565b5050505050565b606081518351146106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90613058565b60405180910390fd5b6000835167ffffffffffffffff8111156106c3576106c26125ca565b5b6040519080825280602002602001820160405280156106f15781602001602082028036833780820191505090505b50905060005b845181101561076e5761073e85828151811061071657610715613078565b5b602002602001015185838151811061073157610730613078565b5b6020026020010151610367565b82828151811061075157610750613078565b5b60200260200101818152505080610767906130d6565b90506106f7565b508091505092915050565b60008061078583610898565b119050919050565b610795610e1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806107db57506107da836107d5610e1e565b6108b5565b5b61081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190612fc6565b60405180910390fd5b610825838383611147565b505050565b610832610b74565b61083c6000611415565b565b610846610b74565b610852848484846114db565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61089461088d610e1e565b838361168b565b5050565b600060046000838152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610951610e1e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610997575061099685610991610e1e565b6108b5565b5b6109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612fc6565b60405180910390fd5b6109e385858585856117f7565b5050505050565b6109f2610b74565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5890613190565b60405180910390fd5b610a6a81611415565b50565b610a75610e1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610abb5750610aba83610ab5610e1e565b6108b5565b5b610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190612fc6565b60405180910390fd5b610b05838383611a92565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b7c610e1e565b73ffffffffffffffffffffffffffffffffffffffff16610b9a610858565b73ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be7906131fc565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c589061328e565b60405180910390fd5b8151835114610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90613320565b60405180910390fd5b6000610caf610e1e565b9050610cc081600087878787611cd8565b60005b8451811015610d7957838181518110610cdf57610cde613078565b5b6020026020010151600080878481518110610cfd57610cfc613078565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d5f9190613340565b925050819055508080610d71906130d6565b915050610cc3565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610df1929190613374565b60405180910390a4610e0881600087878787611cee565b610e1781600087878787611cf6565b5050505050565b600033905090565b8151835114610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190613320565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed09061341d565b60405180910390fd5b6000610ee3610e1e565b9050610ef3818787878787611cd8565b60005b84518110156110a4576000858281518110610f1457610f13613078565b5b602002602001015190506000858381518110610f3357610f32613078565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb906134af565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110899190613340565b925050819055505050508061109d906130d6565b9050610ef6565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161111b929190613374565b60405180910390a4611131818787878787611cee565b61113f818787878787611cf6565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90613541565b60405180910390fd5b80518251146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190613320565b60405180910390fd5b6000611204610e1e565b905061122481856000868660405180602001604052806000815250611cd8565b60005b835181101561137157600084828151811061124557611244613078565b5b60200260200101519050600084838151811061126457611263613078565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906135d3565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050508080611369906130d6565b915050611227565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113e9929190613374565b60405180910390a461140f81856000868660405180602001604052806000815250611cee565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361154a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115419061328e565b60405180910390fd5b6000611554610e1e565b9050600061156185611ecd565b9050600061156e85611ecd565b905061157f83600089858589611cd8565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115de9190613340565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161165c9291906135f3565b60405180910390a461167383600089858589611cee565b61168283600089898989611f47565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f09061368e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117ea91906124cb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d9061341d565b60405180910390fd5b6000611870610e1e565b9050600061187d85611ecd565b9050600061188a85611ecd565b905061189a838989858589611cd8565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611928906134af565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e69190613340565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611a639291906135f3565b60405180910390a4611a79848a8a86868a611cee565b611a87848a8a8a8a8a611f47565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890613541565b60405180910390fd5b6000611b0b610e1e565b90506000611b1884611ecd565b90506000611b2584611ecd565b9050611b4583876000858560405180602001604052806000815250611cd8565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd3906135d3565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611ca99291906135f3565b60405180910390a4611ccf84886000868660405180602001604052806000815250611cee565b50505050505050565b611ce686868686868661211e565b505050505050565b505050505050565b611d158473ffffffffffffffffffffffffffffffffffffffff166122ee565b15611ec5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611d5b959493929190613703565b6020604051808303816000875af1925050508015611d9757506040513d601f19601f82011682018060405250810190611d949190613780565b60015b611e3c57611da36137ba565b806308c379a003611dff5750611db76137dc565b80611dc25750611e01565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df691906125a3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906138de565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90613970565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115611eec57611eeb6125ca565b5b604051908082528060200260200182016040528015611f1a5781602001602082028036833780820191505090505b5090508281600081518110611f3257611f31613078565b5b60200260200101818152505080915050919050565b611f668473ffffffffffffffffffffffffffffffffffffffff166122ee565b15612116578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611fac959493929190613990565b6020604051808303816000875af1925050508015611fe857506040513d601f19601f82011682018060405250810190611fe59190613780565b60015b61208d57611ff46137ba565b806308c379a00361205057506120086137dc565b806120135750612052565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204791906125a3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612084906138de565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b90613970565b60405180910390fd5b505b505050505050565b61212c868686868686612311565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036121dd5760005b83518110156121db5782818151811061217f5761217e613078565b5b60200260200101516004600086848151811061219e5761219d613078565b5b6020026020010151815260200190815260200160002060008282546121c39190613340565b92505081905550806121d4906130d6565b9050612163565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122e65760005b83518110156122e457600084828151811061223257612231613078565b5b60200260200101519050600084838151811061225157612250613078565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad90613a5c565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806122dd906130d6565b9050612214565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123588261232d565b9050919050565b6123688161234d565b811461237357600080fd5b50565b6000813590506123858161235f565b92915050565b6000819050919050565b61239e8161238b565b81146123a957600080fd5b50565b6000813590506123bb81612395565b92915050565b600080604083850312156123d8576123d7612323565b5b60006123e685828601612376565b92505060206123f7858286016123ac565b9150509250929050565b61240a8161238b565b82525050565b60006020820190506124256000830184612401565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124608161242b565b811461246b57600080fd5b50565b60008135905061247d81612457565b92915050565b60006020828403121561249957612498612323565b5b60006124a78482850161246e565b91505092915050565b60008115159050919050565b6124c5816124b0565b82525050565b60006020820190506124e060008301846124bc565b92915050565b6000602082840312156124fc576124fb612323565b5b600061250a848285016123ac565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561254d578082015181840152602081019050612532565b60008484015250505050565b6000601f19601f8301169050919050565b600061257582612513565b61257f818561251e565b935061258f81856020860161252f565b61259881612559565b840191505092915050565b600060208201905081810360008301526125bd818461256a565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61260282612559565b810181811067ffffffffffffffff82111715612621576126206125ca565b5b80604052505050565b6000612634612319565b905061264082826125f9565b919050565b600067ffffffffffffffff8211156126605761265f6125ca565b5b602082029050602081019050919050565b600080fd5b600061268961268484612645565b61262a565b905080838252602082019050602084028301858111156126ac576126ab612671565b5b835b818110156126d557806126c188826123ac565b8452602084019350506020810190506126ae565b5050509392505050565b600082601f8301126126f4576126f36125c5565b5b8135612704848260208601612676565b91505092915050565b600080fd5b600067ffffffffffffffff82111561272d5761272c6125ca565b5b61273682612559565b9050602081019050919050565b82818337600083830152505050565b600061276561276084612712565b61262a565b9050828152602081018484840111156127815761278061270d565b5b61278c848285612743565b509392505050565b600082601f8301126127a9576127a86125c5565b5b81356127b9848260208601612752565b91505092915050565b600080600080608085870312156127dc576127db612323565b5b60006127ea87828801612376565b945050602085013567ffffffffffffffff81111561280b5761280a612328565b5b612817878288016126df565b935050604085013567ffffffffffffffff81111561283857612837612328565b5b612844878288016126df565b925050606085013567ffffffffffffffff81111561286557612864612328565b5b61287187828801612794565b91505092959194509250565b600080600080600060a0868803121561289957612898612323565b5b60006128a788828901612376565b95505060206128b888828901612376565b945050604086013567ffffffffffffffff8111156128d9576128d8612328565b5b6128e5888289016126df565b935050606086013567ffffffffffffffff81111561290657612905612328565b5b612912888289016126df565b925050608086013567ffffffffffffffff81111561293357612932612328565b5b61293f88828901612794565b9150509295509295909350565b600067ffffffffffffffff821115612967576129666125ca565b5b602082029050602081019050919050565b600061298b6129868461294c565b61262a565b905080838252602082019050602084028301858111156129ae576129ad612671565b5b835b818110156129d757806129c38882612376565b8452602084019350506020810190506129b0565b5050509392505050565b600082601f8301126129f6576129f56125c5565b5b8135612a06848260208601612978565b91505092915050565b60008060408385031215612a2657612a25612323565b5b600083013567ffffffffffffffff811115612a4457612a43612328565b5b612a50858286016129e1565b925050602083013567ffffffffffffffff811115612a7157612a70612328565b5b612a7d858286016126df565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612abc8161238b565b82525050565b6000612ace8383612ab3565b60208301905092915050565b6000602082019050919050565b6000612af282612a87565b612afc8185612a92565b9350612b0783612aa3565b8060005b83811015612b38578151612b1f8882612ac2565b9750612b2a83612ada565b925050600181019050612b0b565b5085935050505092915050565b60006020820190508181036000830152612b5f8184612ae7565b905092915050565b600080600060608486031215612b8057612b7f612323565b5b6000612b8e86828701612376565b935050602084013567ffffffffffffffff811115612baf57612bae612328565b5b612bbb868287016126df565b925050604084013567ffffffffffffffff811115612bdc57612bdb612328565b5b612be8868287016126df565b9150509250925092565b60008060008060808587031215612c0c57612c0b612323565b5b6000612c1a87828801612376565b9450506020612c2b878288016123ac565b9350506040612c3c878288016123ac565b925050606085013567ffffffffffffffff811115612c5d57612c5c612328565b5b612c6987828801612794565b91505092959194509250565b612c7e8161234d565b82525050565b6000602082019050612c996000830184612c75565b92915050565b612ca8816124b0565b8114612cb357600080fd5b50565b600081359050612cc581612c9f565b92915050565b60008060408385031215612ce257612ce1612323565b5b6000612cf085828601612376565b9250506020612d0185828601612cb6565b9150509250929050565b60008060408385031215612d2257612d21612323565b5b6000612d3085828601612376565b9250506020612d4185828601612376565b9150509250929050565b600080600080600060a08688031215612d6757612d66612323565b5b6000612d7588828901612376565b9550506020612d8688828901612376565b9450506040612d97888289016123ac565b9350506060612da8888289016123ac565b925050608086013567ffffffffffffffff811115612dc957612dc8612328565b5b612dd588828901612794565b9150509295509295909350565b600060208284031215612df857612df7612323565b5b6000612e0684828501612376565b91505092915050565b600080600060608486031215612e2857612e27612323565b5b6000612e3686828701612376565b9350506020612e47868287016123ac565b9250506040612e58868287016123ac565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612ebe602a8361251e565b9150612ec982612e62565b604082019050919050565b60006020820190508181036000830152612eed81612eb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f3b57607f821691505b602082108103612f4e57612f4d612ef4565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612fb0602e8361251e565b9150612fbb82612f54565b604082019050919050565b60006020820190508181036000830152612fdf81612fa3565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b600061304260298361251e565b915061304d82612fe6565b604082019050919050565b6000602082019050818103600083015261307181613035565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130e18261238b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613113576131126130a7565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061317a60268361251e565b91506131858261311e565b604082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131e660208361251e565b91506131f1826131b0565b602082019050919050565b60006020820190508181036000830152613215816131d9565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061327860218361251e565b91506132838261321c565b604082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b600061330a60288361251e565b9150613315826132ae565b604082019050919050565b60006020820190508181036000830152613339816132fd565b9050919050565b600061334b8261238b565b91506133568361238b565b925082820190508082111561336e5761336d6130a7565b5b92915050565b6000604082019050818103600083015261338e8185612ae7565b905081810360208301526133a28184612ae7565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061340760258361251e565b9150613412826133ab565b604082019050919050565b60006020820190508181036000830152613436816133fa565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000613499602a8361251e565b91506134a48261343d565b604082019050919050565b600060208201905081810360008301526134c88161348c565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061352b60238361251e565b9150613536826134cf565b604082019050919050565b6000602082019050818103600083015261355a8161351e565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006135bd60248361251e565b91506135c882613561565b604082019050919050565b600060208201905081810360008301526135ec816135b0565b9050919050565b60006040820190506136086000830185612401565b6136156020830184612401565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b600061367860298361251e565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006136d5826136ae565b6136df81856136b9565b93506136ef81856020860161252f565b6136f881612559565b840191505092915050565b600060a0820190506137186000830188612c75565b6137256020830187612c75565b81810360408301526137378186612ae7565b9050818103606083015261374b8185612ae7565b9050818103608083015261375f81846136ca565b90509695505050505050565b60008151905061377a81612457565b92915050565b60006020828403121561379657613795612323565b5b60006137a48482850161376b565b91505092915050565b60008160e01c9050919050565b600060033d11156137d95760046000803e6137d66000516137ad565b90505b90565b600060443d10613869576137ee612319565b60043d036004823e80513d602482011167ffffffffffffffff82111715613816575050613869565b808201805167ffffffffffffffff8111156138345750505050613869565b80602083010160043d038501811115613851575050505050613869565b613860826020018501866125f9565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b60006138c860348361251e565b91506138d38261386c565b604082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600061395a60288361251e565b9150613965826138fe565b604082019050919050565b600060208201905081810360008301526139898161394d565b9050919050565b600060a0820190506139a56000830188612c75565b6139b26020830187612c75565b6139bf6040830186612401565b6139cc6060830185612401565b81810360808301526139de81846136ca565b90509695505050505050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b6000613a4660288361251e565b9150613a51826139ea565b604082019050919050565b60006020820190508181036000830152613a7581613a39565b905091905056fea26469706673582212201801920b21d2dfa96b6200546a2b7bf3f9728547dfce36cbeb5ff485ed471c6564736f6c63430008120033