0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200007560201b60201c565b506000600360006101000a81548160ff0219169083151502179055506200006f620000636200009160201b60201c565b6200009960201b60201c565b62000274565b80600290805190602001906200008d9291906200015f565b5050565b600033905090565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200016d906200023e565b90600052602060002090601f016020900481019282620001915760008555620001dd565b82601f10620001ac57805160ff1916838001178555620001dd565b82800160010185558215620001dd579182015b82811115620001dc578251825591602001919060010190620001bf565b5b509050620001ec9190620001f0565b5090565b5b808211156200020b576000816000905550600101620001f1565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200025757607f821691505b602082108114156200026e576200026d6200020f565b5b50919050565b613acc80620002846000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102a4578063e985e9c5146102c0578063f242432a146102f0578063f2fde38b1461030c578063f5298aca1461032857610115565b8063715018a614610256578063731133e9146102605780638456cb591461027c5780638da5cb5b1461028657610115565b80632eb2c2d6116100e95780632eb2c2d6146101c65780633f4ba83a146101e25780634e1273f4146101ec5780635c975abb1461021c5780636b20c4541461023a57610115565b8062fdd58e1461011a57806301ffc9a71461014a5780630e89341c1461017a5780631f7fdffa146101aa575b600080fd5b610134600480360381019061012f9190612362565b610344565b60405161014191906123b1565b60405180910390f35b610164600480360381019061015f9190612424565b61040d565b604051610171919061246c565b60405180910390f35b610194600480360381019061018f9190612487565b6104ef565b6040516101a1919061254d565b60405180910390f35b6101c460048036038101906101bf919061276c565b610583565b005b6101e060048036038101906101db9190612827565b61059d565b005b6101ea61063e565b005b610206600480360381019061020191906129b9565b610650565b6040516102139190612aef565b60405180910390f35b610224610769565b604051610231919061246c565b60405180910390f35b610254600480360381019061024f9190612b11565b610780565b005b61025e61081d565b005b61027a60048036038101906102759190612b9c565b610831565b005b61028461084b565b005b61028e61085d565b60405161029b9190612c2e565b60405180910390f35b6102be60048036038101906102b99190612c75565b610887565b005b6102da60048036038101906102d59190612cb5565b61089d565b6040516102e7919061246c565b60405180910390f35b61030a60048036038101906103059190612cf5565b610931565b005b61032660048036038101906103219190612d8c565b6109d2565b005b610342600480360381019061033d9190612db9565b610a56565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ac90612e7e565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104d857507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104e857506104e782610af3565b5b9050919050565b6060600280546104fe90612ecd565b80601f016020809104026020016040519081016040528092919081815260200182805461052a90612ecd565b80156105775780601f1061054c57610100808354040283529160200191610577565b820191906000526020600020905b81548152906001019060200180831161055a57829003601f168201915b50505050509050919050565b61058b610b5d565b61059784848484610bdb565b50505050565b6105a5610e08565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105eb57506105ea856105e5610e08565b61089d565b5b61062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190612f71565b60405180910390fd5b6106378585858585610e10565b5050505050565b610646610b5d565b61064e611132565b565b60608151835114610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d90613003565b60405180910390fd5b6000835167ffffffffffffffff8111156106b3576106b2612574565b5b6040519080825280602002602001820160405280156106e15781602001602082028036833780820191505090505b50905060005b845181101561075e5761072e85828151811061070657610705613023565b5b602002602001015185838151811061072157610720613023565b5b6020026020010151610344565b82828151811061074157610740613023565b5b6020026020010181815250508061075790613081565b90506106e7565b508091505092915050565b6000600360009054906101000a900460ff16905090565b610788610e08565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806107ce57506107cd836107c8610e08565b61089d565b5b61080d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080490612f71565b60405180910390fd5b610818838383611195565b505050565b610825610b5d565b61082f6000611464565b565b610839610b5d565b6108458484848461152a565b50505050565b610853610b5d565b61085b6116db565b565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610899610892610e08565b838361173e565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610939610e08565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061097f575061097e85610979610e08565b61089d565b5b6109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b590612f71565b60405180910390fd5b6109cb85858585856118ab565b5050505050565b6109da610b5d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a419061313c565b60405180910390fd5b610a5381611464565b50565b610a5e610e08565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610aa45750610aa383610a9e610e08565b61089d565b5b610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90612f71565b60405180910390fd5b610aee838383611b47565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b65610e08565b73ffffffffffffffffffffffffffffffffffffffff16610b8361085d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd0906131a8565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c429061323a565b60405180910390fd5b8151835114610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c86906132cc565b60405180910390fd5b6000610c99610e08565b9050610caa81600087878787611d8e565b60005b8451811015610d6357838181518110610cc957610cc8613023565b5b6020026020010151600080878481518110610ce757610ce6613023565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d4991906132ec565b925050819055508080610d5b90613081565b915050610cad565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610ddb929190613342565b60405180910390a4610df281600087878787611dac565b610e0181600087878787611db4565b5050505050565b600033905090565b8151835114610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b906132cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb906133eb565b60405180910390fd5b6000610ece610e08565b9050610ede818787878787611d8e565b60005b845181101561108f576000858281518110610eff57610efe613023565b5b602002602001015190506000858381518110610f1e57610f1d613023565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb69061347d565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461107491906132ec565b925050819055505050508061108890613081565b9050610ee1565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611106929190613342565b60405180910390a461111c818787878787611dac565b61112a818787878787611db4565b505050505050565b61113a611f9b565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61117e610e08565b60405161118b9190612c2e565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc9061350f565b60405180910390fd5b8051825114611249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611240906132cc565b60405180910390fd5b6000611253610e08565b905061127381856000868660405180602001604052806000815250611d8e565b60005b83518110156113c057600084828151811061129457611293613023565b5b6020026020010151905060008483815181106112b3576112b2613023565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b906135a1565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505080806113b890613081565b915050611276565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611438929190613342565b60405180910390a461145e81856000868660405180602001604052806000815250611dac565b50505050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561159a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115919061323a565b60405180910390fd5b60006115a4610e08565b905060006115b185611fe4565b905060006115be85611fe4565b90506115cf83600089858589611d8e565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461162e91906132ec565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516116ac9291906135c1565b60405180910390a46116c383600089858589611dac565b6116d28360008989898961205e565b50505050505050565b6116e3612245565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611727610e08565b6040516117349190612c2e565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a49061365c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161189e919061246c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561191b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611912906133eb565b60405180910390fd5b6000611925610e08565b9050600061193285611fe4565b9050600061193f85611fe4565b905061194f838989858589611d8e565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9061347d565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a9b91906132ec565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611b189291906135c1565b60405180910390a4611b2e848a8a86868a611dac565b611b3c848a8a8a8a8a61205e565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae9061350f565b60405180910390fd5b6000611bc1610e08565b90506000611bce84611fe4565b90506000611bdb84611fe4565b9050611bfb83876000858560405180602001604052806000815250611d8e565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c89906135a1565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611d5f9291906135c1565b60405180910390a4611d8584886000868660405180602001604052806000815250611dac565b50505050505050565b611d96612245565b611da486868686868661228f565b505050505050565b505050505050565b611dd38473ffffffffffffffffffffffffffffffffffffffff16612297565b15611f93578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611e199594939291906136d1565b602060405180830381600087803b158015611e3357600080fd5b505af1925050508015611e6457506040513d601f19601f82011682018060405250810190611e61919061374e565b60015b611f0a57611e70613788565b806308c379a01415611ecd5750611e856137aa565b80611e905750611ecf565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec4919061254d565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906138b2565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890613944565b60405180910390fd5b505b505050505050565b611fa3610769565b611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd9906139b0565b60405180910390fd5b565b60606000600167ffffffffffffffff81111561200357612002612574565b5b6040519080825280602002602001820160405280156120315781602001602082028036833780820191505090505b509050828160008151811061204957612048613023565b5b60200260200101818152505080915050919050565b61207d8473ffffffffffffffffffffffffffffffffffffffff16612297565b1561223d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016120c39594939291906139d0565b602060405180830381600087803b1580156120dd57600080fd5b505af192505050801561210e57506040513d601f19601f8201168201806040525081019061210b919061374e565b60015b6121b45761211a613788565b806308c379a01415612177575061212f6137aa565b8061213a5750612179565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e919061254d565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab906138b2565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461223b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223290613944565b60405180910390fd5b505b505050505050565b61224d610769565b1561228d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228490613a76565b60405180910390fd5b565b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122f9826122ce565b9050919050565b612309816122ee565b811461231457600080fd5b50565b60008135905061232681612300565b92915050565b6000819050919050565b61233f8161232c565b811461234a57600080fd5b50565b60008135905061235c81612336565b92915050565b60008060408385031215612379576123786122c4565b5b600061238785828601612317565b92505060206123988582860161234d565b9150509250929050565b6123ab8161232c565b82525050565b60006020820190506123c660008301846123a2565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612401816123cc565b811461240c57600080fd5b50565b60008135905061241e816123f8565b92915050565b60006020828403121561243a576124396122c4565b5b60006124488482850161240f565b91505092915050565b60008115159050919050565b61246681612451565b82525050565b6000602082019050612481600083018461245d565b92915050565b60006020828403121561249d5761249c6122c4565b5b60006124ab8482850161234d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124ee5780820151818401526020810190506124d3565b838111156124fd576000848401525b50505050565b6000601f19601f8301169050919050565b600061251f826124b4565b61252981856124bf565b93506125398185602086016124d0565b61254281612503565b840191505092915050565b600060208201905081810360008301526125678184612514565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125ac82612503565b810181811067ffffffffffffffff821117156125cb576125ca612574565b5b80604052505050565b60006125de6122ba565b90506125ea82826125a3565b919050565b600067ffffffffffffffff82111561260a57612609612574565b5b602082029050602081019050919050565b600080fd5b600061263361262e846125ef565b6125d4565b905080838252602082019050602084028301858111156126565761265561261b565b5b835b8181101561267f578061266b888261234d565b845260208401935050602081019050612658565b5050509392505050565b600082601f83011261269e5761269d61256f565b5b81356126ae848260208601612620565b91505092915050565b600080fd5b600067ffffffffffffffff8211156126d7576126d6612574565b5b6126e082612503565b9050602081019050919050565b82818337600083830152505050565b600061270f61270a846126bc565b6125d4565b90508281526020810184848401111561272b5761272a6126b7565b5b6127368482856126ed565b509392505050565b600082601f8301126127535761275261256f565b5b81356127638482602086016126fc565b91505092915050565b60008060008060808587031215612786576127856122c4565b5b600061279487828801612317565b945050602085013567ffffffffffffffff8111156127b5576127b46122c9565b5b6127c187828801612689565b935050604085013567ffffffffffffffff8111156127e2576127e16122c9565b5b6127ee87828801612689565b925050606085013567ffffffffffffffff81111561280f5761280e6122c9565b5b61281b8782880161273e565b91505092959194509250565b600080600080600060a08688031215612843576128426122c4565b5b600061285188828901612317565b955050602061286288828901612317565b945050604086013567ffffffffffffffff811115612883576128826122c9565b5b61288f88828901612689565b935050606086013567ffffffffffffffff8111156128b0576128af6122c9565b5b6128bc88828901612689565b925050608086013567ffffffffffffffff8111156128dd576128dc6122c9565b5b6128e98882890161273e565b9150509295509295909350565b600067ffffffffffffffff82111561291157612910612574565b5b602082029050602081019050919050565b6000612935612930846128f6565b6125d4565b905080838252602082019050602084028301858111156129585761295761261b565b5b835b81811015612981578061296d8882612317565b84526020840193505060208101905061295a565b5050509392505050565b600082601f8301126129a05761299f61256f565b5b81356129b0848260208601612922565b91505092915050565b600080604083850312156129d0576129cf6122c4565b5b600083013567ffffffffffffffff8111156129ee576129ed6122c9565b5b6129fa8582860161298b565b925050602083013567ffffffffffffffff811115612a1b57612a1a6122c9565b5b612a2785828601612689565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a668161232c565b82525050565b6000612a788383612a5d565b60208301905092915050565b6000602082019050919050565b6000612a9c82612a31565b612aa68185612a3c565b9350612ab183612a4d565b8060005b83811015612ae2578151612ac98882612a6c565b9750612ad483612a84565b925050600181019050612ab5565b5085935050505092915050565b60006020820190508181036000830152612b098184612a91565b905092915050565b600080600060608486031215612b2a57612b296122c4565b5b6000612b3886828701612317565b935050602084013567ffffffffffffffff811115612b5957612b586122c9565b5b612b6586828701612689565b925050604084013567ffffffffffffffff811115612b8657612b856122c9565b5b612b9286828701612689565b9150509250925092565b60008060008060808587031215612bb657612bb56122c4565b5b6000612bc487828801612317565b9450506020612bd58782880161234d565b9350506040612be68782880161234d565b925050606085013567ffffffffffffffff811115612c0757612c066122c9565b5b612c138782880161273e565b91505092959194509250565b612c28816122ee565b82525050565b6000602082019050612c436000830184612c1f565b92915050565b612c5281612451565b8114612c5d57600080fd5b50565b600081359050612c6f81612c49565b92915050565b60008060408385031215612c8c57612c8b6122c4565b5b6000612c9a85828601612317565b9250506020612cab85828601612c60565b9150509250929050565b60008060408385031215612ccc57612ccb6122c4565b5b6000612cda85828601612317565b9250506020612ceb85828601612317565b9150509250929050565b600080600080600060a08688031215612d1157612d106122c4565b5b6000612d1f88828901612317565b9550506020612d3088828901612317565b9450506040612d418882890161234d565b9350506060612d528882890161234d565b925050608086013567ffffffffffffffff811115612d7357612d726122c9565b5b612d7f8882890161273e565b9150509295509295909350565b600060208284031215612da257612da16122c4565b5b6000612db084828501612317565b91505092915050565b600080600060608486031215612dd257612dd16122c4565b5b6000612de086828701612317565b9350506020612df18682870161234d565b9250506040612e028682870161234d565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612e68602a836124bf565b9150612e7382612e0c565b604082019050919050565b60006020820190508181036000830152612e9781612e5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ee557607f821691505b60208210811415612ef957612ef8612e9e565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612f5b602e836124bf565b9150612f6682612eff565b604082019050919050565b60006020820190508181036000830152612f8a81612f4e565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612fed6029836124bf565b9150612ff882612f91565b604082019050919050565b6000602082019050818103600083015261301c81612fe0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308c8261232c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130bf576130be613052565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131266026836124bf565b9150613131826130ca565b604082019050919050565b6000602082019050818103600083015261315581613119565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131926020836124bf565b915061319d8261315c565b602082019050919050565b600060208201905081810360008301526131c181613185565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006132246021836124bf565b915061322f826131c8565b604082019050919050565b6000602082019050818103600083015261325381613217565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006132b66028836124bf565b91506132c18261325a565b604082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b60006132f78261232c565b91506133028361232c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561333757613336613052565b5b828201905092915050565b6000604082019050818103600083015261335c8185612a91565b905081810360208301526133708184612a91565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133d56025836124bf565b91506133e082613379565b604082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000613467602a836124bf565b91506134728261340b565b604082019050919050565b600060208201905081810360008301526134968161345a565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134f96023836124bf565b91506135048261349d565b604082019050919050565b60006020820190508181036000830152613528816134ec565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b600061358b6024836124bf565b91506135968261352f565b604082019050919050565b600060208201905081810360008301526135ba8161357e565b9050919050565b60006040820190506135d660008301856123a2565b6135e360208301846123a2565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006136466029836124bf565b9150613651826135ea565b604082019050919050565b6000602082019050818103600083015261367581613639565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006136a38261367c565b6136ad8185613687565b93506136bd8185602086016124d0565b6136c681612503565b840191505092915050565b600060a0820190506136e66000830188612c1f565b6136f36020830187612c1f565b81810360408301526137058186612a91565b905081810360608301526137198185612a91565b9050818103608083015261372d8184613698565b90509695505050505050565b600081519050613748816123f8565b92915050565b600060208284031215613764576137636122c4565b5b600061377284828501613739565b91505092915050565b60008160e01c9050919050565b600060033d11156137a75760046000803e6137a460005161377b565b90505b90565b600060443d10156137ba5761383d565b6137c26122ba565b60043d036004823e80513d602482011167ffffffffffffffff821117156137ea57505061383d565b808201805167ffffffffffffffff811115613808575050505061383d565b80602083010160043d03850181111561382557505050505061383d565b613834826020018501866125a3565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600061389c6034836124bf565b91506138a782613840565b604082019050919050565b600060208201905081810360008301526138cb8161388f565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600061392e6028836124bf565b9150613939826138d2565b604082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b600061399a6014836124bf565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b600060a0820190506139e56000830188612c1f565b6139f26020830187612c1f565b6139ff60408301866123a2565b613a0c60608301856123a2565b8181036080830152613a1e8184613698565b90509695505050505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613a606010836124bf565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b905091905056fea26469706673582212206f78648e8922546e607b4ef7a1c5a71dfe7d55f7f6c62586947c2dc48e8736a664736f6c63430008090033