0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200007560201b60201c565b506000600360006101000a81548160ff0219169083151502179055506200006f620000636200008a60201b60201c565b6200009260201b60201c565b620004b9565b8060029081620000869190620003d2565b5050565b600033905090565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001da57607f821691505b602082108103620001f057620001ef62000192565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200025a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200021b565b6200026686836200021b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002b3620002ad620002a7846200027e565b62000288565b6200027e565b9050919050565b6000819050919050565b620002cf8362000292565b620002e7620002de82620002ba565b84845462000228565b825550505050565b600090565b620002fe620002ef565b6200030b818484620002c4565b505050565b5b81811015620003335762000327600082620002f4565b60018101905062000311565b5050565b601f82111562000382576200034c81620001f6565b62000357846200020b565b8101602085101562000367578190505b6200037f62000376856200020b565b83018262000310565b50505b505050565b600082821c905092915050565b6000620003a76000198460080262000387565b1980831691505092915050565b6000620003c2838362000394565b9150826002028217905092915050565b620003dd8262000158565b67ffffffffffffffff811115620003f957620003f862000163565b5b620004058254620001c1565b6200041282828562000337565b600060209050601f8311600181146200044a576000841562000435578287015190505b620004418582620003b4565b865550620004b1565b601f1984166200045a86620001f6565b60005b8281101562000484578489015182556001820191506020850194506020810190506200045d565b86831015620004a45784890151620004a0601f89168262000394565b8355505b6001600288020188555050505b505050505050565b613d7980620004c96000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c8063715018a6116100ad578063bd85b03911610071578063bd85b03914610306578063e985e9c514610336578063f242432a14610366578063f2fde38b14610382578063f5298aca1461039e5761012b565b8063715018a61461029c578063731133e9146102a65780638456cb59146102c25780638da5cb5b146102cc578063a22cb465146102ea5761012b565b80633f4ba83a116100f45780633f4ba83a146101f85780634e1273f4146102025780634f558e79146102325780635c975abb146102625780636b20c454146102805761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c146101905780631f7fdffa146101c05780632eb2c2d6146101dc575b600080fd5b61014a600480360381019061014591906125b0565b6103ba565b60405161015791906125ff565b60405180910390f35b61017a60048036038101906101759190612672565b610482565b60405161018791906126ba565b60405180910390f35b6101aa60048036038101906101a591906126d5565b610564565b6040516101b79190612792565b60405180910390f35b6101da60048036038101906101d591906129b1565b6105f8565b005b6101f660048036038101906101f19190612a6c565b610612565b005b6102006106b3565b005b61021c60048036038101906102179190612bfe565b6106c5565b6040516102299190612d34565b60405180910390f35b61024c600480360381019061024791906126d5565b6107de565b60405161025991906126ba565b60405180910390f35b61026a6107f2565b60405161027791906126ba565b60405180910390f35b61029a60048036038101906102959190612d56565b610809565b005b6102a46108a6565b005b6102c060048036038101906102bb9190612de1565b6108ba565b005b6102ca6108d4565b005b6102d46108e6565b6040516102e19190612e73565b60405180910390f35b61030460048036038101906102ff9190612eba565b610910565b005b610320600480360381019061031b91906126d5565b610926565b60405161032d91906125ff565b60405180910390f35b610350600480360381019061034b9190612efa565b610943565b60405161035d91906126ba565b60405180910390f35b610380600480360381019061037b9190612f3a565b6109d7565b005b61039c60048036038101906103979190612fd1565b610a78565b005b6103b860048036038101906103b39190612ffe565b610afb565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361042a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610421906130c3565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061054d57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061055d575061055c82610b98565b5b9050919050565b60606002805461057390613112565b80601f016020809104026020016040519081016040528092919081815260200182805461059f90613112565b80156105ec5780601f106105c1576101008083540402835291602001916105ec565b820191906000526020600020905b8154815290600101906020018083116105cf57829003601f168201915b50505050509050919050565b610600610c02565b61060c84848484610c80565b50505050565b61061a610eac565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610660575061065f8561065a610eac565b610943565b5b61069f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610696906131b5565b60405180910390fd5b6106ac8585858585610eb4565b5050505050565b6106bb610c02565b6106c36111d5565b565b6060815183511461070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070290613247565b60405180910390fd5b6000835167ffffffffffffffff811115610728576107276127b9565b5b6040519080825280602002602001820160405280156107565781602001602082028036833780820191505090505b50905060005b84518110156107d3576107a385828151811061077b5761077a613267565b5b602002602001015185838151811061079657610795613267565b5b60200260200101516103ba565b8282815181106107b6576107b5613267565b5b602002602001018181525050806107cc906132c5565b905061075c565b508091505092915050565b6000806107ea83610926565b119050919050565b6000600360009054906101000a900460ff16905090565b610811610eac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610857575061085683610851610eac565b610943565b5b610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906131b5565b60405180910390fd5b6108a1838383611238565b505050565b6108ae610c02565b6108b86000611506565b565b6108c2610c02565b6108ce848484846115cc565b50505050565b6108dc610c02565b6108e461177c565b565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61092261091b610eac565b83836117df565b5050565b600060046000838152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6109df610eac565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a255750610a2485610a1f610eac565b610943565b5b610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b906131b5565b60405180910390fd5b610a71858585858561194b565b5050505050565b610a80610c02565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae69061337f565b60405180910390fd5b610af881611506565b50565b610b03610eac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610b495750610b4883610b43610eac565b610943565b5b610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f906131b5565b60405180910390fd5b610b93838383611be6565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c0a610eac565b73ffffffffffffffffffffffffffffffffffffffff16610c286108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c75906133eb565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce69061347d565b60405180910390fd5b8151835114610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a9061350f565b60405180910390fd5b6000610d3d610eac565b9050610d4e81600087878787611e2c565b60005b8451811015610e0757838181518110610d6d57610d6c613267565b5b6020026020010151600080878481518110610d8b57610d8a613267565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ded919061352f565b925050819055508080610dff906132c5565b915050610d51565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e7f929190613563565b60405180910390a4610e9681600087878787611e4a565b610ea581600087878787611e52565b5050505050565b600033905090565b8151835114610ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eef9061350f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e9061360c565b60405180910390fd5b6000610f71610eac565b9050610f81818787878787611e2c565b60005b8451811015611132576000858281518110610fa257610fa1613267565b5b602002602001015190506000858381518110610fc157610fc0613267565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110599061369e565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611117919061352f565b925050819055505050508061112b906132c5565b9050610f84565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516111a9929190613563565b60405180910390a46111bf818787878787611e4a565b6111cd818787878787611e52565b505050505050565b6111dd612029565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611221610eac565b60405161122e9190612e73565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90613730565b60405180910390fd5b80518251146112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e29061350f565b60405180910390fd5b60006112f5610eac565b905061131581856000868660405180602001604052806000815250611e2c565b60005b835181101561146257600084828151811061133657611335613267565b5b60200260200101519050600084838151811061135557611354613267565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed906137c2565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061145a906132c5565b915050611318565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516114da929190613563565b60405180910390a461150081856000868660405180602001604052806000815250611e4a565b50505050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361163b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116329061347d565b60405180910390fd5b6000611645610eac565b9050600061165285612072565b9050600061165f85612072565b905061167083600089858589611e2c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116cf919061352f565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161174d9291906137e2565b60405180910390a461176483600089858589611e4a565b611773836000898989896120ec565b50505050505050565b6117846122c3565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117c8610eac565b6040516117d59190612e73565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361184d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118449061387d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161193e91906126ba565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b19061360c565b60405180910390fd5b60006119c4610eac565b905060006119d185612072565b905060006119de85612072565b90506119ee838989858589611e2c565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c9061369e565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b3a919061352f565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611bb79291906137e2565b60405180910390a4611bcd848a8a86868a611e4a565b611bdb848a8a8a8a8a6120ec565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c90613730565b60405180910390fd5b6000611c5f610eac565b90506000611c6c84612072565b90506000611c7984612072565b9050611c9983876000858560405180602001604052806000815250611e2c565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d27906137c2565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611dfd9291906137e2565b60405180910390a4611e2384886000868660405180602001604052806000815250611e4a565b50505050505050565b611e346122c3565b611e4286868686868661230d565b505050505050565b505050505050565b611e718473ffffffffffffffffffffffffffffffffffffffff166124dd565b15612021578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611eb79594939291906138f2565b6020604051808303816000875af1925050508015611ef357506040513d601f19601f82011682018060405250810190611ef0919061396f565b60015b611f9857611eff6139a9565b806308c379a003611f5b5750611f136139cb565b80611f1e5750611f5d565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f529190612792565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90613acd565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461201f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201690613b5f565b60405180910390fd5b505b505050505050565b6120316107f2565b612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206790613bcb565b60405180910390fd5b565b60606000600167ffffffffffffffff811115612091576120906127b9565b5b6040519080825280602002602001820160405280156120bf5781602001602082028036833780820191505090505b50905082816000815181106120d7576120d6613267565b5b60200260200101818152505080915050919050565b61210b8473ffffffffffffffffffffffffffffffffffffffff166124dd565b156122bb578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612151959493929190613beb565b6020604051808303816000875af192505050801561218d57506040513d601f19601f8201168201806040525081019061218a919061396f565b60015b612232576121996139a9565b806308c379a0036121f557506121ad6139cb565b806121b857506121f7565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ec9190612792565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222990613acd565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b090613b5f565b60405180910390fd5b505b505050505050565b6122cb6107f2565b1561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230290613c91565b60405180910390fd5b565b61231b868686868686612500565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123cc5760005b83518110156123ca5782818151811061236e5761236d613267565b5b60200260200101516004600086848151811061238d5761238c613267565b5b6020026020010151815260200190815260200160002060008282546123b2919061352f565b92505081905550806123c3906132c5565b9050612352565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124d55760005b83518110156124d357600084828151811061242157612420613267565b5b6020026020010151905060008483815181106124405761243f613267565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c90613d23565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806124cc906132c5565b9050612403565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125478261251c565b9050919050565b6125578161253c565b811461256257600080fd5b50565b6000813590506125748161254e565b92915050565b6000819050919050565b61258d8161257a565b811461259857600080fd5b50565b6000813590506125aa81612584565b92915050565b600080604083850312156125c7576125c6612512565b5b60006125d585828601612565565b92505060206125e68582860161259b565b9150509250929050565b6125f98161257a565b82525050565b600060208201905061261460008301846125f0565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61264f8161261a565b811461265a57600080fd5b50565b60008135905061266c81612646565b92915050565b60006020828403121561268857612687612512565b5b60006126968482850161265d565b91505092915050565b60008115159050919050565b6126b48161269f565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b6000602082840312156126eb576126ea612512565b5b60006126f98482850161259b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561273c578082015181840152602081019050612721565b60008484015250505050565b6000601f19601f8301169050919050565b600061276482612702565b61276e818561270d565b935061277e81856020860161271e565b61278781612748565b840191505092915050565b600060208201905081810360008301526127ac8184612759565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127f182612748565b810181811067ffffffffffffffff821117156128105761280f6127b9565b5b80604052505050565b6000612823612508565b905061282f82826127e8565b919050565b600067ffffffffffffffff82111561284f5761284e6127b9565b5b602082029050602081019050919050565b600080fd5b600061287861287384612834565b612819565b9050808382526020820190506020840283018581111561289b5761289a612860565b5b835b818110156128c457806128b0888261259b565b84526020840193505060208101905061289d565b5050509392505050565b600082601f8301126128e3576128e26127b4565b5b81356128f3848260208601612865565b91505092915050565b600080fd5b600067ffffffffffffffff82111561291c5761291b6127b9565b5b61292582612748565b9050602081019050919050565b82818337600083830152505050565b600061295461294f84612901565b612819565b9050828152602081018484840111156129705761296f6128fc565b5b61297b848285612932565b509392505050565b600082601f830112612998576129976127b4565b5b81356129a8848260208601612941565b91505092915050565b600080600080608085870312156129cb576129ca612512565b5b60006129d987828801612565565b945050602085013567ffffffffffffffff8111156129fa576129f9612517565b5b612a06878288016128ce565b935050604085013567ffffffffffffffff811115612a2757612a26612517565b5b612a33878288016128ce565b925050606085013567ffffffffffffffff811115612a5457612a53612517565b5b612a6087828801612983565b91505092959194509250565b600080600080600060a08688031215612a8857612a87612512565b5b6000612a9688828901612565565b9550506020612aa788828901612565565b945050604086013567ffffffffffffffff811115612ac857612ac7612517565b5b612ad4888289016128ce565b935050606086013567ffffffffffffffff811115612af557612af4612517565b5b612b01888289016128ce565b925050608086013567ffffffffffffffff811115612b2257612b21612517565b5b612b2e88828901612983565b9150509295509295909350565b600067ffffffffffffffff821115612b5657612b556127b9565b5b602082029050602081019050919050565b6000612b7a612b7584612b3b565b612819565b90508083825260208201905060208402830185811115612b9d57612b9c612860565b5b835b81811015612bc65780612bb28882612565565b845260208401935050602081019050612b9f565b5050509392505050565b600082601f830112612be557612be46127b4565b5b8135612bf5848260208601612b67565b91505092915050565b60008060408385031215612c1557612c14612512565b5b600083013567ffffffffffffffff811115612c3357612c32612517565b5b612c3f85828601612bd0565b925050602083013567ffffffffffffffff811115612c6057612c5f612517565b5b612c6c858286016128ce565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cab8161257a565b82525050565b6000612cbd8383612ca2565b60208301905092915050565b6000602082019050919050565b6000612ce182612c76565b612ceb8185612c81565b9350612cf683612c92565b8060005b83811015612d27578151612d0e8882612cb1565b9750612d1983612cc9565b925050600181019050612cfa565b5085935050505092915050565b60006020820190508181036000830152612d4e8184612cd6565b905092915050565b600080600060608486031215612d6f57612d6e612512565b5b6000612d7d86828701612565565b935050602084013567ffffffffffffffff811115612d9e57612d9d612517565b5b612daa868287016128ce565b925050604084013567ffffffffffffffff811115612dcb57612dca612517565b5b612dd7868287016128ce565b9150509250925092565b60008060008060808587031215612dfb57612dfa612512565b5b6000612e0987828801612565565b9450506020612e1a8782880161259b565b9350506040612e2b8782880161259b565b925050606085013567ffffffffffffffff811115612e4c57612e4b612517565b5b612e5887828801612983565b91505092959194509250565b612e6d8161253c565b82525050565b6000602082019050612e886000830184612e64565b92915050565b612e978161269f565b8114612ea257600080fd5b50565b600081359050612eb481612e8e565b92915050565b60008060408385031215612ed157612ed0612512565b5b6000612edf85828601612565565b9250506020612ef085828601612ea5565b9150509250929050565b60008060408385031215612f1157612f10612512565b5b6000612f1f85828601612565565b9250506020612f3085828601612565565b9150509250929050565b600080600080600060a08688031215612f5657612f55612512565b5b6000612f6488828901612565565b9550506020612f7588828901612565565b9450506040612f868882890161259b565b9350506060612f978882890161259b565b925050608086013567ffffffffffffffff811115612fb857612fb7612517565b5b612fc488828901612983565b9150509295509295909350565b600060208284031215612fe757612fe6612512565b5b6000612ff584828501612565565b91505092915050565b60008060006060848603121561301757613016612512565b5b600061302586828701612565565b93505060206130368682870161259b565b92505060406130478682870161259b565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b60006130ad602a8361270d565b91506130b882613051565b604082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061312a57607f821691505b60208210810361313d5761313c6130e3565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b600061319f602e8361270d565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b600061323160298361270d565b915061323c826131d5565b604082019050919050565b6000602082019050818103600083015261326081613224565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d08261257a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361330257613301613296565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061336960268361270d565b91506133748261330d565b604082019050919050565b600060208201905081810360008301526133988161335c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133d560208361270d565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061346760218361270d565b91506134728261340b565b604082019050919050565b600060208201905081810360008301526134968161345a565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006134f960288361270d565b91506135048261349d565b604082019050919050565b60006020820190508181036000830152613528816134ec565b9050919050565b600061353a8261257a565b91506135458361257a565b925082820190508082111561355d5761355c613296565b5b92915050565b6000604082019050818103600083015261357d8185612cd6565b905081810360208301526135918184612cd6565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135f660258361270d565b91506136018261359a565b604082019050919050565b60006020820190508181036000830152613625816135e9565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000613688602a8361270d565b91506136938261362c565b604082019050919050565b600060208201905081810360008301526136b78161367b565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061371a60238361270d565b9150613725826136be565b604082019050919050565b600060208201905081810360008301526137498161370d565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006137ac60248361270d565b91506137b782613750565b604082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b60006040820190506137f760008301856125f0565b61380460208301846125f0565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b600061386760298361270d565b91506138728261380b565b604082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006138c48261389d565b6138ce81856138a8565b93506138de81856020860161271e565b6138e781612748565b840191505092915050565b600060a0820190506139076000830188612e64565b6139146020830187612e64565b81810360408301526139268186612cd6565b9050818103606083015261393a8185612cd6565b9050818103608083015261394e81846138b9565b90509695505050505050565b60008151905061396981612646565b92915050565b60006020828403121561398557613984612512565b5b60006139938482850161395a565b91505092915050565b60008160e01c9050919050565b600060033d11156139c85760046000803e6139c560005161399c565b90505b90565b600060443d10613a58576139dd612508565b60043d036004823e80513d602482011167ffffffffffffffff82111715613a05575050613a58565b808201805167ffffffffffffffff811115613a235750505050613a58565b80602083010160043d038501811115613a40575050505050613a58565b613a4f826020018501866127e8565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613ab760348361270d565b9150613ac282613a5b565b604082019050919050565b60006020820190508181036000830152613ae681613aaa565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000613b4960288361270d565b9150613b5482613aed565b604082019050919050565b60006020820190508181036000830152613b7881613b3c565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613bb560148361270d565b9150613bc082613b7f565b602082019050919050565b60006020820190508181036000830152613be481613ba8565b9050919050565b600060a082019050613c006000830188612e64565b613c0d6020830187612e64565b613c1a60408301866125f0565b613c2760608301856125f0565b8181036080830152613c3981846138b9565b90509695505050505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613c7b60108361270d565b9150613c8682613c45565b602082019050919050565b60006020820190508181036000830152613caa81613c6e565b9050919050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b6000613d0d60288361270d565b9150613d1882613cb1565b604082019050919050565b60006020820190508181036000830152613d3c81613d00565b905091905056fea2646970667358221220d59d3b5b0877bb98caadf794b587c9726f49340409806ea4175315eba49c9f6f64736f6c63430008120033