0x60806040526000600a553480156200001657600080fd5b506040518060600160405280602881526020016200416e602891396040518060400160405280600581526020017f4d5346495400000000000000000000000000000000000000000000000000000081525081600090805190602001906200007f9291906200018f565b508060019080519060200190620000989291906200018f565b505050620000bb620000af620000c160201b60201c565b620000c960201b60201c565b620002a4565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200019d906200026e565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028757607f821691505b602082108114156200029e576200029d6200023f565b5b50919050565b613eba80620002b46000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a22cb46511610097578063b88d4fde11610071578063b88d4fde14610491578063c87b56dd146104ad578063e985e9c5146104dd578063f2fde38b1461050d576101a9565b8063a22cb4651461043d578063af6c3f8f14610459578063b0c72ac014610475576101a9565b806387dbd7c4116100d357806387dbd7c4146103c75780638c7ea24b146103e55780638da5cb5b1461040157806395d89b411461041f576101a9565b806370a0823114610371578063715018a6146103a15780637b47ec1a146103ab576101a9565b806323b872dd1161016657806340c10f191161014057806340c10f19146102eb57806342842e0e146103075780636352211e1461032357806363c6bd5114610353576101a9565b806323b872dd1461028257806327f8511e1461029e5780632a55205a146102ba576101a9565b806301ffc9a7146101ae578063023924c7146101de57806306fdde03146101fa578063081812fc14610218578063095ea7b3146102485780630ca1c5c914610264575b600080fd5b6101c860048036038101906101c391906127c8565b610529565b6040516101d59190612810565b60405180910390f35b6101f860048036038101906101f39190612889565b61060b565b005b610202610702565b60405161020f919061294f565b60405180910390f35b610232600480360381019061022d91906129a7565b610794565b60405161023f91906129e3565b60405180910390f35b610262600480360381019061025d91906129fe565b610819565b005b61026c610931565b6040516102799190612a4d565b60405180910390f35b61029c60048036038101906102979190612a68565b61093b565b005b6102b860048036038101906102b39190612b20565b61099b565b005b6102d460048036038101906102cf9190612b6d565b610ae5565b6040516102e2929190612bad565b60405180910390f35b610305600480360381019061030091906129fe565b610ba5565b005b610321600480360381019061031c9190612a68565b610c7d565b005b61033d600480360381019061033891906129a7565b610c9d565b60405161034a91906129e3565b60405180910390f35b61035b610d4f565b60405161036891906129e3565b60405180910390f35b61038b60048036038101906103869190612889565b610d75565b6040516103989190612a4d565b60405180910390f35b6103a9610e2d565b005b6103c560048036038101906103c091906129a7565b610eb5565b005b6103cf610f7f565b6040516103dc91906129e3565b60405180910390f35b6103ff60048036038101906103fa91906129fe565b610fa5565b005b61040961110b565b60405161041691906129e3565b60405180910390f35b610427611135565b604051610434919061294f565b60405180910390f35b61045760048036038101906104529190612c02565b6111c7565b005b610473600480360381019061046e9190612889565b6111dd565b005b61048f600480360381019061048a9190612c98565b6112d4565b005b6104ab60048036038101906104a69190612e15565b61140b565b005b6104c760048036038101906104c291906129a7565b61146d565b6040516104d4919061294f565b60405180910390f35b6104f760048036038101906104f29190612e98565b6115bf565b6040516105049190612810565b60405180910390f35b61052760048036038101906105229190612889565b611653565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105f457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061060457506106038261174b565b5b9050919050565b6106136117b5565b73ffffffffffffffffffffffffffffffffffffffff1661063161110b565b73ffffffffffffffffffffffffffffffffffffffff1614610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90612f24565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f08895866d3dbe7b486a2559f0794f69916b11ff4932b1f9dbf635ee54c93240e816040516106f79190612f90565b60405180910390a150565b60606000805461071190612fed565b80601f016020809104026020016040519081016040528092919081815260200182805461073d90612fed565b801561078a5780601f1061075f5761010080835404028352916020019161078a565b820191906000526020600020905b81548152906001019060200180831161076d57829003601f168201915b5050505050905090565b600061079f826117bd565b6107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590613091565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061082482610c9d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088c90613123565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108b46117b5565b73ffffffffffffffffffffffffffffffffffffffff1614806108e357506108e2816108dd6117b5565b6115bf565b5b610922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610919906131b5565b60405180910390fd5b61092c8383611829565b505050565b6000600a54905090565b61094c6109466117b5565b826118e2565b61098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613247565b60405180910390fd5b6109968383836119c0565b505050565b6109a36117b5565b73ffffffffffffffffffffffffffffffffffffffff166109c161110b565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90612f24565b60405180910390fd5b60005b82829050811015610ae057610acd838383818110610a3b57610a3a613267565b5b9050602002810190610a4d91906132a5565b60000135848484818110610a6457610a63613267565b5b9050602002810190610a7691906132a5565b8060200190610a8591906132cd565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611c27565b8080610ad89061335f565b915050610a1a565b505050565b6000806000600b6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff1685610b9191906133a8565b610b9b9190613431565b9150509250929050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c5757600080fd5b610c618282611c53565b600a6000815480929190610c749061335f565b91905055505050565b610c988383836040518060200160405280600081525061140b565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d906134d4565b60405180910390fd5b80915050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd90613566565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e356117b5565b73ffffffffffffffffffffffffffffffffffffffff16610e5361110b565b73ffffffffffffffffffffffffffffffffffffffff1614610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612f24565b60405180910390fd5b610eb36000611c71565b565b610ebe816117bd565b610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906135d2565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16610f1d82610c9d565b73ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a9061363e565b60405180910390fd5b610f7c81611d37565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fad6117b5565b73ffffffffffffffffffffffffffffffffffffffff16610fcb61110b565b73ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101890612f24565b60405180910390fd5b612710811115611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906136aa565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600b60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461114490612fed565b80601f016020809104026020016040519081016040528092919081815260200182805461117090612fed565b80156111bd5780601f10611192576101008083540402835291602001916111bd565b820191906000526020600020905b8154815290600101906020018083116111a057829003601f168201915b5050505050905090565b6111d96111d26117b5565b8383611d8a565b5050565b6111e56117b5565b73ffffffffffffffffffffffffffffffffffffffff1661120361110b565b73ffffffffffffffffffffffffffffffffffffffff1614611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090612f24565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f08895866d3dbe7b486a2559f0794f69916b11ff4932b1f9dbf635ee54c93240e816040516112c99190613716565b60405180910390a150565b6112dc6117b5565b73ffffffffffffffffffffffffffffffffffffffff166112fa61110b565b73ffffffffffffffffffffffffffffffffffffffff1614611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612f24565b60405180910390fd5b60005b828290508110156114065760005b83838381811061137457611373613267565b5b905060400201602001358110156113f2576113c784848481811061139b5761139a613267565b5b90506040020160000160208101906113b39190612889565b6001600a546113c29190613744565b611c53565b600a60008154809291906113da9061335f565b919050555080806113ea9061335f565b915050611361565b5080806113fe9061335f565b915050611353565b505050565b61141c6114166117b5565b836118e2565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290613247565b60405180910390fd5b61146784848484611ef7565b50505050565b6060611478826117bd565b6114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae9061380c565b60405180910390fd5b60006007600084815260200190815260200160002080546114d790612fed565b80601f016020809104026020016040519081016040528092919081815260200182805461150390612fed565b80156115505780601f1061152557610100808354040283529160200191611550565b820191906000526020600020905b81548152906001019060200180831161153357829003601f168201915b505050505090506000611561611f53565b90506000815114156115775781925050506115ba565b6000825111156115ac578082604051602001611594929190613868565b604051602081830303815290604052925050506115ba565b6115b584611f6a565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61165b6117b5565b73ffffffffffffffffffffffffffffffffffffffff1661167961110b565b73ffffffffffffffffffffffffffffffffffffffff16146116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690612f24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561173f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611736906138fe565b60405180910390fd5b61174881611c71565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661189c83610c9d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006118ed826117bd565b61192c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192390613990565b60405180910390fd5b600061193783610c9d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611979575061197881856115bf565b5b806119b757508373ffffffffffffffffffffffffffffffffffffffff1661199f84610794565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166119e082610c9d565b73ffffffffffffffffffffffffffffffffffffffff1614611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d90613a22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613ab4565b60405180910390fd5b611ab1838383612011565b611abc600082611829565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0c9190613ad4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b639190613744565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611c22838383612016565b505050565b80600760008481526020019081526020016000209080519060200190611c4e929190612679565b505050565b611c6d82826040518060200160405280600081525061201b565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611d4081612076565b6000600760008381526020019081526020016000208054611d6090612fed565b905014611d8757600760008281526020019081526020016000206000611d8691906126ff565b5b50565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df090613b54565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611eea9190612810565b60405180910390a3505050565b611f028484846119c0565b611f0e84848484612193565b611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4490613be6565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611f75826117bd565b611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613c78565b60405180910390fd5b6000611fbe611f53565b90506000815111611fde5760405180602001604052806000815250612009565b80611fe88461231b565b604051602001611ff9929190613868565b6040516020818303038152906040525b915050919050565b505050565b505050565b612025838361247c565b6120326000848484612193565b612071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206890613be6565b60405180910390fd5b505050565b600061208182610c9d565b905061208f81600084612011565b61209a600083611829565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120ea9190613ad4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461218f81600084612016565b5050565b60006121b48473ffffffffffffffffffffffffffffffffffffffff16612656565b1561230e578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121dd6117b5565b8786866040518563ffffffff1660e01b81526004016121ff9493929190613ced565b6020604051808303816000875af192505050801561223b57506040513d601f19601f820116820180604052508101906122389190613d4e565b60015b6122be573d806000811461226b576040519150601f19603f3d011682016040523d82523d6000602084013e612270565b606091505b506000815114156122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad90613be6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612313565b600190505b949350505050565b60606000821415612363576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612477565b600082905060005b6000821461239557808061237e9061335f565b915050600a8261238e9190613431565b915061236b565b60008167ffffffffffffffff8111156123b1576123b0612cea565b5b6040519080825280601f01601f1916602001820160405280156123e35781602001600182028036833780820191505090505b5090505b60008514612470576001826123fc9190613ad4565b9150600a8561240b9190613d7b565b60306124179190613744565b60f81b81838151811061242d5761242c613267565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124699190613431565b94506123e7565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e390613df8565b60405180910390fd5b6124f5816117bd565b15612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c90613e64565b60405180910390fd5b61254160008383612011565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125919190613744565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265260008383612016565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461268590612fed565b90600052602060002090601f0160209004810192826126a757600085556126ee565b82601f106126c057805160ff19168380011785556126ee565b828001600101855582156126ee579182015b828111156126ed5782518255916020019190600101906126d2565b5b5090506126fb919061273f565b5090565b50805461270b90612fed565b6000825580601f1061271d575061273c565b601f01602090049060005260206000209081019061273b919061273f565b5b50565b5b80821115612758576000816000905550600101612740565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127a581612770565b81146127b057600080fd5b50565b6000813590506127c28161279c565b92915050565b6000602082840312156127de576127dd612766565b5b60006127ec848285016127b3565b91505092915050565b60008115159050919050565b61280a816127f5565b82525050565b60006020820190506128256000830184612801565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128568261282b565b9050919050565b6128668161284b565b811461287157600080fd5b50565b6000813590506128838161285d565b92915050565b60006020828403121561289f5761289e612766565b5b60006128ad84828501612874565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b6000601f19601f8301169050919050565b6000612921826128b6565b61292b81856128c1565b935061293b8185602086016128d2565b61294481612905565b840191505092915050565b600060208201905081810360008301526129698184612916565b905092915050565b6000819050919050565b61298481612971565b811461298f57600080fd5b50565b6000813590506129a18161297b565b92915050565b6000602082840312156129bd576129bc612766565b5b60006129cb84828501612992565b91505092915050565b6129dd8161284b565b82525050565b60006020820190506129f860008301846129d4565b92915050565b60008060408385031215612a1557612a14612766565b5b6000612a2385828601612874565b9250506020612a3485828601612992565b9150509250929050565b612a4781612971565b82525050565b6000602082019050612a626000830184612a3e565b92915050565b600080600060608486031215612a8157612a80612766565b5b6000612a8f86828701612874565b9350506020612aa086828701612874565b9250506040612ab186828701612992565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612ae057612adf612abb565b5b8235905067ffffffffffffffff811115612afd57612afc612ac0565b5b602083019150836020820283011115612b1957612b18612ac5565b5b9250929050565b60008060208385031215612b3757612b36612766565b5b600083013567ffffffffffffffff811115612b5557612b5461276b565b5b612b6185828601612aca565b92509250509250929050565b60008060408385031215612b8457612b83612766565b5b6000612b9285828601612992565b9250506020612ba385828601612992565b9150509250929050565b6000604082019050612bc260008301856129d4565b612bcf6020830184612a3e565b9392505050565b612bdf816127f5565b8114612bea57600080fd5b50565b600081359050612bfc81612bd6565b92915050565b60008060408385031215612c1957612c18612766565b5b6000612c2785828601612874565b9250506020612c3885828601612bed565b9150509250929050565b60008083601f840112612c5857612c57612abb565b5b8235905067ffffffffffffffff811115612c7557612c74612ac0565b5b602083019150836040820283011115612c9157612c90612ac5565b5b9250929050565b60008060208385031215612caf57612cae612766565b5b600083013567ffffffffffffffff811115612ccd57612ccc61276b565b5b612cd985828601612c42565b92509250509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2282612905565b810181811067ffffffffffffffff82111715612d4157612d40612cea565b5b80604052505050565b6000612d5461275c565b9050612d608282612d19565b919050565b600067ffffffffffffffff821115612d8057612d7f612cea565b5b612d8982612905565b9050602081019050919050565b82818337600083830152505050565b6000612db8612db384612d65565b612d4a565b905082815260208101848484011115612dd457612dd3612ce5565b5b612ddf848285612d96565b509392505050565b600082601f830112612dfc57612dfb612abb565b5b8135612e0c848260208601612da5565b91505092915050565b60008060008060808587031215612e2f57612e2e612766565b5b6000612e3d87828801612874565b9450506020612e4e87828801612874565b9350506040612e5f87828801612992565b925050606085013567ffffffffffffffff811115612e8057612e7f61276b565b5b612e8c87828801612de7565b91505092959194509250565b60008060408385031215612eaf57612eae612766565b5b6000612ebd85828601612874565b9250506020612ece85828601612874565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f0e6020836128c1565b9150612f1982612ed8565b602082019050919050565b60006020820190508181036000830152612f3d81612f01565b9050919050565b7f61756374696f6e20636f6e747261637400000000000000000000000000000000600082015250565b6000612f7a6010836128c1565b9150612f8582612f44565b602082019050919050565b6000604082019050612fa560008301846129d4565b8181036020830152612fb681612f6d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061300557607f821691505b6020821081141561301957613018612fbe565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061307b602c836128c1565b91506130868261301f565b604082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061310d6021836128c1565b9150613118826130b1565b604082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b600061319f6038836128c1565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006132316031836128c1565b915061323c826131d5565b604082019050919050565b6000602082019050818103600083015261326081613224565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126132c1576132c0613296565b5b80830191505092915050565b600080833560016020038436030381126132ea576132e9613296565b5b80840192508235915067ffffffffffffffff82111561330c5761330b61329b565b5b602083019250600182023603831315613328576133276132a0565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061336a82612971565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561339d5761339c613330565b5b600182019050919050565b60006133b382612971565b91506133be83612971565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133f7576133f6613330565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061343c82612971565b915061344783612971565b92508261345757613456613402565b5b828204905092915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006134be6029836128c1565b91506134c982613462565b604082019050919050565b600060208201905081810360008301526134ed816134b1565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613550602a836128c1565b915061355b826134f4565b604082019050919050565b6000602082019050818103600083015261357f81613543565b9050919050565b7f4552433732313a20746f6b656e20646f6573206e6f7420657869737400000000600082015250565b60006135bc601c836128c1565b91506135c782613586565b602082019050919050565b600060208201905081810360008301526135eb816135af565b9050919050565b7f4e6f7420746f6b656e206f776e65720000000000000000000000000000000000600082015250565b6000613628600f836128c1565b9150613633826135f2565b602082019050919050565b600060208201905081810360008301526136578161361b565b9050919050565b7f546f6f20686967682e204d757374206265206c657373207468616e2031306b00600082015250565b6000613694601f836128c1565b915061369f8261365e565b602082019050919050565b600060208201905081810360008301526136c381613687565b9050919050565b7f6c61756e636870616420636f6e74726163740000000000000000000000000000600082015250565b60006137006012836128c1565b915061370b826136ca565b602082019050919050565b600060408201905061372b60008301846129d4565b818103602083015261373c816136f3565b905092915050565b600061374f82612971565b915061375a83612971565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561378f5761378e613330565b5b828201905092915050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b60006137f66031836128c1565b91506138018261379a565b604082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b600081905092915050565b6000613842826128b6565b61384c818561382c565b935061385c8185602086016128d2565b80840191505092915050565b60006138748285613837565b91506138808284613837565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138e86026836128c1565b91506138f38261388c565b604082019050919050565b60006020820190508181036000830152613917816138db565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061397a602c836128c1565b91506139858261391e565b604082019050919050565b600060208201905081810360008301526139a98161396d565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613a0c6025836128c1565b9150613a17826139b0565b604082019050919050565b60006020820190508181036000830152613a3b816139ff565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a9e6024836128c1565b9150613aa982613a42565b604082019050919050565b60006020820190508181036000830152613acd81613a91565b9050919050565b6000613adf82612971565b9150613aea83612971565b925082821015613afd57613afc613330565b5b828203905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613b3e6019836128c1565b9150613b4982613b08565b602082019050919050565b60006020820190508181036000830152613b6d81613b31565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613bd06032836128c1565b9150613bdb82613b74565b604082019050919050565b60006020820190508181036000830152613bff81613bc3565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613c62602f836128c1565b9150613c6d82613c06565b604082019050919050565b60006020820190508181036000830152613c9181613c55565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613cbf82613c98565b613cc98185613ca3565b9350613cd98185602086016128d2565b613ce281612905565b840191505092915050565b6000608082019050613d0260008301876129d4565b613d0f60208301866129d4565b613d1c6040830185612a3e565b8181036060830152613d2e8184613cb4565b905095945050505050565b600081519050613d488161279c565b92915050565b600060208284031215613d6457613d63612766565b5b6000613d7284828501613d39565b91505092915050565b6000613d8682612971565b9150613d9183612971565b925082613da157613da0613402565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613de26020836128c1565b9150613ded82613dac565b602082019050919050565b60006020820190508181036000830152613e1181613dd5565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613e4e601c836128c1565b9150613e5982613e18565b602082019050919050565b60006020820190508181036000830152613e7d81613e41565b905091905056fea264697066735822122022d4b0df76e0a114feb1e93a2da0a3fde8c29ff990599fa46ad8274b13f3c97e64736f6c634300080a00334d61676e69666963656e74204d697366697473206f6620746865204368656c73656120486f74656c