60806040526001600660146101000a81548160ff0219169083151502179055506001600660156101000a81548160ff02191690831515021790555060006008553480156200004c57600080fd5b5060405162004326380380620043268339818101604052810190620000729190620006bf565b6040518060400160405280600c81526020017f4c617a79204c6f6f646c657300000000000000000000000000000000000000008152506040518060400160405280600281526020017f4c4c0000000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000f692919062000591565b5080600190805190602001906200010f92919062000591565b50505062000132620001266200019760201b60201c565b6200019f60201b60201c565b62000143816200026560201b60201c565b603760088190555060005b60378110156200018f57620001796200016c6200031060201b60201c565b826200033a60201b60201c565b8080620001869062000964565b9150506200014e565b505062000adf565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002756200019760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200029b6200031060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002eb90620007c9565b60405180910390fd5b80600790805190602001906200030c92919062000591565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a490620007a7565b60405180910390fd5b620003be816200052060201b60201c565b1562000401576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003f89062000785565b60405180910390fd5b62000415600083836200058c60201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200046791906200085b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b8280546200059f90620008f8565b90600052602060002090601f016020900481019282620005c357600085556200060f565b82601f10620005de57805160ff19168380011785556200060f565b828001600101855582156200060f579182015b828111156200060e578251825591602001919060010190620005f1565b5b5090506200061e919062000622565b5090565b5b808211156200063d57600081600090555060010162000623565b5090565b600062000658620006528462000814565b620007eb565b90508281526020810184848401111562000677576200067662000a44565b5b62000684848285620008c2565b509392505050565b600082601f830112620006a457620006a362000a3f565b5b8151620006b684826020860162000641565b91505092915050565b600060208284031215620006d857620006d762000a4e565b5b600082015167ffffffffffffffff811115620006f957620006f862000a49565b5b62000707848285016200068c565b91505092915050565b60006200071f601c836200084a565b91506200072c8262000a64565b602082019050919050565b6000620007466020836200084a565b9150620007538262000a8d565b602082019050919050565b60006200076d6020836200084a565b91506200077a8262000ab6565b602082019050919050565b60006020820190508181036000830152620007a08162000710565b9050919050565b60006020820190508181036000830152620007c28162000737565b9050919050565b60006020820190508181036000830152620007e4816200075e565b9050919050565b6000620007f76200080a565b90506200080582826200092e565b919050565b6000604051905090565b600067ffffffffffffffff82111562000832576200083162000a10565b5b6200083d8262000a53565b9050602081019050919050565b600082825260208201905092915050565b60006200086882620008b8565b91506200087583620008b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008ad57620008ac620009b2565b5b828201905092915050565b6000819050919050565b60005b83811015620008e2578082015181840152602081019050620008c5565b83811115620008f2576000848401525b50505050565b600060028204905060018216806200091157607f821691505b60208210811415620009285762000927620009e1565b5b50919050565b620009398262000a53565b810181811067ffffffffffffffff821117156200095b576200095a62000a10565b5b80604052505050565b60006200097182620008b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009a757620009a6620009b2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6138378062000aef6000396000f3fe60806040526004361061019c5760003560e01c806370a08231116100ec578063a0712d681161008a578063c87b56dd11610064578063c87b56dd1461057f578063d5abeb01146105bc578063e985e9c5146105e7578063f2fde38b146106245761019c565b8063a0712d6814610511578063a22cb4651461052d578063b88d4fde146105565761019c565b8063853828b6116100c6578063853828b6146104795780638da5cb5b1461049057806395d89b41146104bb578063a035b1fe146104e65761019c565b806370a08231146103fa578063715018a614610437578063732496c91461044e5761019c565b806323b872dd1161015957806342842e0e1161013357806342842e0e1461034057806355f804b3146103695780635c975abb146103925780636352211e146103bd5761019c565b806323b872dd146102c357806327d2a39e146102ec5780633b13be40146103175761019c565b806301ffc9a7146101a157806302329a29146101de57806306fdde0314610207578063081812fc14610232578063095ea7b31461026f57806318160ddd14610298575b600080fd5b3480156101ad57600080fd5b506101c860048036038101906101c39190612590565b61064d565b6040516101d59190612abd565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190612563565b61072f565b005b34801561021357600080fd5b5061021c6107c8565b6040516102299190612ad8565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190612633565b61085a565b6040516102669190612a56565b60405180910390f35b34801561027b57600080fd5b5061029660048036038101906102919190612523565b6108df565b005b3480156102a457600080fd5b506102ad6109f7565b6040516102ba9190612dba565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e5919061240d565b6109fd565b005b3480156102f857600080fd5b50610301610a5d565b60405161030e9190612abd565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190612563565b610a70565b005b34801561034c57600080fd5b506103676004803603810190610362919061240d565b610b09565b005b34801561037557600080fd5b50610390600480360381019061038b91906125ea565b610b29565b005b34801561039e57600080fd5b506103a7610bbf565b6040516103b49190612abd565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612633565b610bd2565b6040516103f19190612a56565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906123a0565b610c84565b60405161042e9190612dba565b60405180910390f35b34801561044357600080fd5b5061044c610d3c565b005b34801561045a57600080fd5b50610463610dc4565b6040516104709190612dba565b60405180910390f35b34801561048557600080fd5b5061048e610dca565b005b34801561049c57600080fd5b506104a5610ec3565b6040516104b29190612a56565b60405180910390f35b3480156104c757600080fd5b506104d0610eed565b6040516104dd9190612ad8565b60405180910390f35b3480156104f257600080fd5b506104fb610f7f565b6040516105089190612dba565b60405180910390f35b61052b60048036038101906105269190612633565b610f8a565b005b34801561053957600080fd5b50610554600480360381019061054f91906124e3565b611233565b005b34801561056257600080fd5b5061057d60048036038101906105789190612460565b611249565b005b34801561058b57600080fd5b506105a660048036038101906105a19190612633565b6112ab565b6040516105b39190612ad8565b60405180910390f35b3480156105c857600080fd5b506105d1611352565b6040516105de9190612dba565b60405180910390f35b3480156105f357600080fd5b5061060e600480360381019061060991906123cd565b611358565b60405161061b9190612abd565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906123a0565b6113ec565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061071857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107285750610727826114e4565b5b9050919050565b61073761154e565b73ffffffffffffffffffffffffffffffffffffffff16610755610ec3565b73ffffffffffffffffffffffffffffffffffffffff16146107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612cda565b60405180910390fd5b80600660146101000a81548160ff02191690831515021790555050565b6060600080546107d79061306a565b80601f01602080910402602001604051908101604052809291908181526020018280546108039061306a565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b5050505050905090565b600061086582611556565b6108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90612cba565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108ea82610bd2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612d3a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661097a61154e565b73ffffffffffffffffffffffffffffffffffffffff1614806109a957506109a8816109a361154e565b611358565b5b6109e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109df90612c3a565b60405180910390fd5b6109f283836115c2565b505050565b60085481565b610a0e610a0861154e565b8261167b565b610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4490612d5a565b60405180910390fd5b610a58838383611759565b505050565b600660159054906101000a900460ff1681565b610a7861154e565b73ffffffffffffffffffffffffffffffffffffffff16610a96610ec3565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390612cda565b60405180910390fd5b80600660156101000a81548160ff02191690831515021790555050565b610b2483838360405180602001604052806000815250611249565b505050565b610b3161154e565b73ffffffffffffffffffffffffffffffffffffffff16610b4f610ec3565b73ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90612cda565b60405180910390fd5b8060079080519060200190610bbb9291906121b4565b5050565b600660149054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290612c7a565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90612c5a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d4461154e565b73ffffffffffffffffffffffffffffffffffffffff16610d62610ec3565b73ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612cda565b60405180910390fd5b610dc260006119b5565b565b6101f481565b610dd261154e565b73ffffffffffffffffffffffffffffffffffffffff16610df0610ec3565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90612cda565b60405180910390fd5b610e4e610ec3565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb890612b1a565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610efc9061306a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f289061306a565b8015610f755780601f10610f4a57610100808354040283529160200191610f75565b820191906000526020600020905b815481529060010190602001808311610f5857829003601f168201915b5050505050905090565b66470de4df82000081565b60006008549050600660149054906101000a900460ff1615610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612b3a565b60405180910390fd5b61138882600854610ff29190612e9f565b1115611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a90612afa565b60405180910390fd5b6101f4826008546110449190612e9f565b11801561105d5750600660159054906101000a900460ff165b156110fe57600b82106110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612d9a565b60405180910390fd5b8166470de4df8200006110b89190612f26565b34146110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090612b7a565b60405180910390fd5b6111e2565b600682600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114b9190612e9f565b1061118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612d7a565b60405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111da9190612e9f565b925050819055505b81600860008282546111f49190612e9f565b9250508190555060005b8281101561122e5761121b3382846112169190612e9f565b611a7b565b8080611226906130cd565b9150506111fe565b505050565b61124561123e61154e565b8383611c49565b5050565b61125a61125461154e565b8361167b565b611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129090612d5a565b60405180910390fd5b6112a584848484611db6565b50505050565b60606112b682611556565b6112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612d1a565b60405180910390fd5b60006112ff611e12565b9050600081511161131f576040518060200160405280600081525061134a565b8061132984611ea4565b60405160200161133a929190612a32565b6040516020818303038152906040525b915050919050565b61138881565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6113f461154e565b73ffffffffffffffffffffffffffffffffffffffff16611412610ec3565b73ffffffffffffffffffffffffffffffffffffffff1614611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612cda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf90612b9a565b60405180910390fd5b6114e1816119b5565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661163583610bd2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061168682611556565b6116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90612c1a565b60405180910390fd5b60006116d083610bd2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061173f57508373ffffffffffffffffffffffffffffffffffffffff166117278461085a565b73ffffffffffffffffffffffffffffffffffffffff16145b80611750575061174f8185611358565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661177982610bd2565b73ffffffffffffffffffffffffffffffffffffffff16146117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c690612cfa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690612bda565b60405180910390fd5b61184a838383612005565b6118556000826115c2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118a59190612f80565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118fc9190612e9f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae290612c9a565b60405180910390fd5b611af481611556565b15611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b90612bba565b60405180910390fd5b611b4060008383612005565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b909190612e9f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90612bfa565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611da99190612abd565b60405180910390a3505050565b611dc1848484611759565b611dcd8484848461200a565b611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0390612b5a565b60405180910390fd5b50505050565b606060078054611e219061306a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4d9061306a565b8015611e9a5780601f10611e6f57610100808354040283529160200191611e9a565b820191906000526020600020905b815481529060010190602001808311611e7d57829003601f168201915b5050505050905090565b60606000821415611eec576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612000565b600082905060005b60008214611f1e578080611f07906130cd565b915050600a82611f179190612ef5565b9150611ef4565b60008167ffffffffffffffff811115611f3a57611f39613203565b5b6040519080825280601f01601f191660200182016040528015611f6c5781602001600182028036833780820191505090505b5090505b60008514611ff957600182611f859190612f80565b9150600a85611f949190613116565b6030611fa09190612e9f565b60f81b818381518110611fb657611fb56131d4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ff29190612ef5565b9450611f70565b8093505050505b919050565b505050565b600061202b8473ffffffffffffffffffffffffffffffffffffffff166121a1565b15612194578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261205461154e565b8786866040518563ffffffff1660e01b81526004016120769493929190612a71565b602060405180830381600087803b15801561209057600080fd5b505af19250505080156120c157506040513d601f19601f820116820180604052508101906120be91906125bd565b60015b612144573d80600081146120f1576040519150601f19603f3d011682016040523d82523d6000602084013e6120f6565b606091505b5060008151141561213c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213390612b5a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612199565b600190505b949350505050565b600080823b905060008111915050919050565b8280546121c09061306a565b90600052602060002090601f0160209004810192826121e25760008555612229565b82601f106121fb57805160ff1916838001178555612229565b82800160010185558215612229579182015b8281111561222857825182559160200191906001019061220d565b5b509050612236919061223a565b5090565b5b8082111561225357600081600090555060010161223b565b5090565b600061226a61226584612dfa565b612dd5565b90508281526020810184848401111561228657612285613237565b5b612291848285613028565b509392505050565b60006122ac6122a784612e2b565b612dd5565b9050828152602081018484840111156122c8576122c7613237565b5b6122d3848285613028565b509392505050565b6000813590506122ea816137a5565b92915050565b6000813590506122ff816137bc565b92915050565b600081359050612314816137d3565b92915050565b600081519050612329816137d3565b92915050565b600082601f83011261234457612343613232565b5b8135612354848260208601612257565b91505092915050565b600082601f83011261237257612371613232565b5b8135612382848260208601612299565b91505092915050565b60008135905061239a816137ea565b92915050565b6000602082840312156123b6576123b5613241565b5b60006123c4848285016122db565b91505092915050565b600080604083850312156123e4576123e3613241565b5b60006123f2858286016122db565b9250506020612403858286016122db565b9150509250929050565b60008060006060848603121561242657612425613241565b5b6000612434868287016122db565b9350506020612445868287016122db565b92505060406124568682870161238b565b9150509250925092565b6000806000806080858703121561247a57612479613241565b5b6000612488878288016122db565b9450506020612499878288016122db565b93505060406124aa8782880161238b565b925050606085013567ffffffffffffffff8111156124cb576124ca61323c565b5b6124d78782880161232f565b91505092959194509250565b600080604083850312156124fa576124f9613241565b5b6000612508858286016122db565b9250506020612519858286016122f0565b9150509250929050565b6000806040838503121561253a57612539613241565b5b6000612548858286016122db565b92505060206125598582860161238b565b9150509250929050565b60006020828403121561257957612578613241565b5b6000612587848285016122f0565b91505092915050565b6000602082840312156125a6576125a5613241565b5b60006125b484828501612305565b91505092915050565b6000602082840312156125d3576125d2613241565b5b60006125e18482850161231a565b91505092915050565b600060208284031215612600576125ff613241565b5b600082013567ffffffffffffffff81111561261e5761261d61323c565b5b61262a8482850161235d565b91505092915050565b60006020828403121561264957612648613241565b5b60006126578482850161238b565b91505092915050565b61266981612fb4565b82525050565b61267881612fc6565b82525050565b600061268982612e5c565b6126938185612e72565b93506126a3818560208601613037565b6126ac81613246565b840191505092915050565b60006126c282612e67565b6126cc8185612e83565b93506126dc818560208601613037565b6126e581613246565b840191505092915050565b60006126fb82612e67565b6127058185612e94565b9350612715818560208601613037565b80840191505092915050565b600061272e601283612e83565b915061273982613257565b602082019050919050565b6000612751601583612e83565b915061275c82613280565b602082019050919050565b6000612774600e83612e83565b915061277f826132a9565b602082019050919050565b6000612797603283612e83565b91506127a2826132d2565b604082019050919050565b60006127ba601583612e83565b91506127c582613321565b602082019050919050565b60006127dd602683612e83565b91506127e88261334a565b604082019050919050565b6000612800601c83612e83565b915061280b82613399565b602082019050919050565b6000612823602483612e83565b915061282e826133c2565b604082019050919050565b6000612846601983612e83565b915061285182613411565b602082019050919050565b6000612869602c83612e83565b91506128748261343a565b604082019050919050565b600061288c603883612e83565b915061289782613489565b604082019050919050565b60006128af602a83612e83565b91506128ba826134d8565b604082019050919050565b60006128d2602983612e83565b91506128dd82613527565b604082019050919050565b60006128f5602083612e83565b915061290082613576565b602082019050919050565b6000612918602c83612e83565b91506129238261359f565b604082019050919050565b600061293b602083612e83565b9150612946826135ee565b602082019050919050565b600061295e602983612e83565b915061296982613617565b604082019050919050565b6000612981602f83612e83565b915061298c82613666565b604082019050919050565b60006129a4602183612e83565b91506129af826136b5565b604082019050919050565b60006129c7603183612e83565b91506129d282613704565b604082019050919050565b60006129ea601e83612e83565b91506129f582613753565b602082019050919050565b6000612a0d601983612e83565b9150612a188261377c565b602082019050919050565b612a2c8161301e565b82525050565b6000612a3e82856126f0565b9150612a4a82846126f0565b91508190509392505050565b6000602082019050612a6b6000830184612660565b92915050565b6000608082019050612a866000830187612660565b612a936020830186612660565b612aa06040830185612a23565b8181036060830152612ab2818461267e565b905095945050505050565b6000602082019050612ad2600083018461266f565b92915050565b60006020820190508181036000830152612af281846126b7565b905092915050565b60006020820190508181036000830152612b1381612721565b9050919050565b60006020820190508181036000830152612b3381612744565b9050919050565b60006020820190508181036000830152612b5381612767565b9050919050565b60006020820190508181036000830152612b738161278a565b9050919050565b60006020820190508181036000830152612b93816127ad565b9050919050565b60006020820190508181036000830152612bb3816127d0565b9050919050565b60006020820190508181036000830152612bd3816127f3565b9050919050565b60006020820190508181036000830152612bf381612816565b9050919050565b60006020820190508181036000830152612c1381612839565b9050919050565b60006020820190508181036000830152612c338161285c565b9050919050565b60006020820190508181036000830152612c538161287f565b9050919050565b60006020820190508181036000830152612c73816128a2565b9050919050565b60006020820190508181036000830152612c93816128c5565b9050919050565b60006020820190508181036000830152612cb3816128e8565b9050919050565b60006020820190508181036000830152612cd38161290b565b9050919050565b60006020820190508181036000830152612cf38161292e565b9050919050565b60006020820190508181036000830152612d1381612951565b9050919050565b60006020820190508181036000830152612d3381612974565b9050919050565b60006020820190508181036000830152612d5381612997565b9050919050565b60006020820190508181036000830152612d73816129ba565b9050919050565b60006020820190508181036000830152612d93816129dd565b9050919050565b60006020820190508181036000830152612db381612a00565b9050919050565b6000602082019050612dcf6000830184612a23565b92915050565b6000612ddf612df0565b9050612deb828261309c565b919050565b6000604051905090565b600067ffffffffffffffff821115612e1557612e14613203565b5b612e1e82613246565b9050602081019050919050565b600067ffffffffffffffff821115612e4657612e45613203565b5b612e4f82613246565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612eaa8261301e565b9150612eb58361301e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612eea57612ee9613147565b5b828201905092915050565b6000612f008261301e565b9150612f0b8361301e565b925082612f1b57612f1a613176565b5b828204905092915050565b6000612f318261301e565b9150612f3c8361301e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7557612f74613147565b5b828202905092915050565b6000612f8b8261301e565b9150612f968361301e565b925082821015612fa957612fa8613147565b5b828203905092915050565b6000612fbf82612ffe565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561305557808201518184015260208101905061303a565b83811115613064576000848401525b50505050565b6000600282049050600182168061308257607f821691505b60208210811415613096576130956131a5565b5b50919050565b6130a582613246565b810181811067ffffffffffffffff821117156130c4576130c3613203565b5b80604052505050565b60006130d88261301e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561310b5761310a613147565b5b600182019050919050565b60006131218261301e565b915061312c8361301e565b92508261313c5761313b613176565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45584345454453204d415820535550504c590000000000000000000000000000600082015250565b7f574954484452415720554e5355434345535346554c0000000000000000000000600082015250565b7f4d494e54494e4720504155534544000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f57524f4e472045544820414d4f554e542053454e540000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d41582046524545204d494e5453205045522057414c4c455420495320350000600082015250565b7f4d415820504552205452414e53414354494f4e20495320313000000000000000600082015250565b6137ae81612fb4565b81146137b957600080fd5b50565b6137c581612fc6565b81146137d057600080fd5b50565b6137dc81612fd2565b81146137e757600080fd5b50565b6137f38161301e565b81146137fe57600080fd5b5056fea2646970667358221220a63d0596316b8c25cb6ce37fe3e90e96c3fb7f191bd004e9f519f63f3c0f3d2864736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d597831487644684379663753725653596d424e717a4c64675133634d35674531535a41733578444b715151432f00000000000000000000