@towns-protocol/generated 0.0.280 → 0.0.283

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1396,7 +1396,7 @@ const _abi = [
1396
1396
  ] as const;
1397
1397
 
1398
1398
  const _bytecode =
1399
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61529b806100ca5f395ff3fe608060405260043610610162575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103ab578063df9a9fe6146103bf578063e847abdd146103de575f5ffd5b806393b13cb71461035757806395d600c81461037857806397fb7c1e1461038c575f5ffd5b80638120f0ba116100ac5780638120f0ba146102f857806383f3f0dc146103255780638c625b0614610344575f5ffd5b806379dda585146102d15780637c9669ac146102e5575f5ffd5b80635becd24a1161011b578063686f768411610101578063686f76841461028b57806369d5f38a1461029e578063706b8e09146102bd575f5ffd5b80635becd24a14610233578063657e45e814610252575f5ffd5b806317c957091161014b57806317c95709146101ae5780633e9491a2146102025780635803909f14610214575f5ffd5b80630ef1be5f146101665780631278076a14610187575b5f5ffd5b348015610171575f5ffd5b506101856101803660046146cd565b6103f2565b005b348015610192575f5ffd5b5061019b6104a7565b6040519081526020015b60405180910390f35b3480156101b9575f5ffd5b5061019b6101c836600461473b565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b34801561020d575f5ffd5b504761019b565b34801561021f575f5ffd5b5061019b61022e36600461473b565b610500565b34801561023e575f5ffd5b5061018561024d36600461473b565b61055b565b34801561025d575f5ffd5b50610266610642565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b61018561029936600461485d565b610681565b3480156102a9575f5ffd5b506101856102b836600461473b565b6106c5565b3480156102c8575f5ffd5b5061019b6107dd565b3480156102dc575f5ffd5b506102666107e6565b6101856102f336600461473b565b610825565b348015610303575f5ffd5b5061030c610868565b60405167ffffffffffffffff90911681526020016101a5565b348015610330575f5ffd5b5061018561033f36600461495c565b610871565b610185610352366004614977565b6108eb565b348015610362575f5ffd5b5061036b61091e565b6040516101a591906149de565b348015610383575f5ffd5b5061019b610928565b348015610397575f5ffd5b506101856103a636600461473b565b610951565b3480156103b6575f5ffd5b5061019b610a3b565b3480156103ca575f5ffd5b506101856103d9366004614977565b610a92565b3480156103e9575f5ffd5b50610266610b6b565b6103fa610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610465576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104a382828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c6a92505050565b5050565b5f6104fb6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610c95565b905090565b5f610555826105507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f0c565b92915050565b610563610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105c9576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b5f6105f27fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b9050801580159061060257508082115b15610630576106307fc3983b9100000000000000000000000000000000000000000000000000000000610ff5565b61063982610ffd565b6104a3826110a1565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd21268540361069f5763ab143c065f526004601cfd5b3068929eee149b4bd21268556106b5828261115f565b3868929eee149b4bd21268555050565b6106cd610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610733576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b61073c81611263565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156107c4575f5ffd5b505af11580156107d6573d5f5f3e3d5ffd5b5050505050565b5f6104fb61130b565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036108435763ab143c065f526004601cfd5b3068929eee149b4bd212685561085933826113d6565b3868929eee149b4bd212685550565b5f6104fb611564565b610879610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108df576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b6108e881611627565b50565b3068929eee149b4bd2126854036109095763ab143c065f526004601cfd5b3068929eee149b4bd2126855610859816116a2565b60606104fb61174b565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610959610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bf576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b610a1381610a0e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6117fd565b6108e8817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f6104fb610a8d6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61182e565b610a9a610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b610b09816119a1565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610c40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6491906149f0565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104a38282614aa0565b5f5f610c9f61130b565b90505f610ce07fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b90505f610ceb6107e6565b905073ffffffffffffffffffffffffffffffffffffffff8216610d7e578073ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190614bb7565b95945050505050565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018490526024810186905273ffffffffffffffffffffffffffffffffffffffff831690635cf4ee9190604401602060405180830381865afa158015610dee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e129190614bb7565b93505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e829190614bb7565b905080851015610f03578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190614bb7565b9695505050505050565b50505050919050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60081610f376107e6565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa79190614bb7565b5f8781526009850160205260409020549091508015610fd457818110828218028118945050505050610555565b5f610fde87610c95565b905082811083821802811898975050505050505050565b805f5260045ffd5b6110056107e6565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110719190614bb7565b8111156108e8576108e87fc3983b9100000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b61116882611ada565b5f611171611bd0565b90505f811561118557611182611c69565b90505b61118f8484611cfb565b5f836040516020016111a19190614bce565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6112088761120384338388611da0565b611dd2565b90505f5f61121889338589611f0d565b915091508061125857811561124e5786156112365761123683611f88565b611240838a612101565b6112498961218c565b611258565b611258838a61227b565b505050505050505050565b5f61126c6107e6565b73ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d89190614bb7565b9050808210156104a3576104a37f3447ac8e00000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156113625760070154919050565b61136a6107e6565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c649190614bb7565b5f6113e0826122e1565b905073ffffffffffffffffffffffffffffffffffffffff8116611426576114267f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b5f61142f611564565b67ffffffffffffffff1690505f61148b846105507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050348111156114be576114be7f34a7a93d00000000000000000000000000000000000000000000000000000000610ff5565b6114c883826122ec565b5f6114d38683612349565b90505f6114e08284614c55565b905080156114f4576114f28782612411565b505b5f6114ff8434614c55565b90508015611550576115506115487fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308a84612587565b61155a87866125d9565b5050505050505050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f819003611624576115b86107e6565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611600573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190614c68565b90565b61163081612707565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6116ab81611ada565b5f6116b4611bd0565b90505f81156116c8576116c5611c69565b90505b5f638c625b0660e01b90505f6116f28561120384338960405180602001604052805f815250611da0565b90505f5f61170287338588611f0d565b915091508061174257811561173857851561172057611720836127fd565b61172a8388612101565b6117338761218c565b611742565b611742838861227b565b50505050505050565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c01805461177c90614a0b565b80601f01602080910402602001604051908101604052809291908181526020018280546117a890614a0b565b80156117f35780601f106117ca576101008083540402835291602001916117f3565b820191905f5260205f20905b8154815290600101906020018083116117d657829003601f168201915b5050505050905090565b808210156104a3576104a37fccc9aa2e00000000000000000000000000000000000000000000000000000000610ff5565b5f5f6118386107e6565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611884573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118a89190614bb7565b905080841015611927578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191f9190614bb7565b949350505050565b61191f848373ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611974573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119989190614c83565b61ffff1661291b565b73ffffffffffffffffffffffffffffffffffffffff81166119e5576119e57f0e88bf4b00000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611a89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aad9190614cb8565b6108e8576108e87f0e88bf4b00000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff8116611b1e57611b1e7f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b5f611b477fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611ba2575080611b9f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104a3576104a37f7efcdb4900000000000000000000000000000000000000000000000000000000610ff5565b5f5f611c1d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611c2861130b565b90505f611c3361296e565b905082821115611c46575f935050505090565b8015611c5f57611c566001612997565b5f935050505090565b6001935050505090565b5f5f611cb96104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050611cc4816129d4565b915081341015611cf757611cf77fb1296a8a00000000000000000000000000000000000000000000000000000000610ff5565b5090565b602081015173ffffffffffffffffffffffffffffffffffffffff16156104a3578173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161480611d725750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104a3576104a37f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b606084848484604051602001611db99493929190614cd1565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611eb181611e858387611e3886612a04565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b91505f611ebd83612a4a565b511115611eed57611eed7ff82e65c300000000000000000000000000000000000000000000000000000000610ff5565b611ef78284612b2a565b3415611f0657611f0682612b82565b5092915050565b5f5f5f611f4e6040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612be0565b9050611f5a8188612d78565b15611f6c5760015f9250925050611f7f565b611f798188888888612f93565b92509250505b94509492505050565b5f611fd76104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611fe3826129d4565b90505f5f5f5f611ff287612a4a565b8060200190518101906120059190614da8565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612081576120817fda6153bd00000000000000000000000000000000000000000000000000000000610ff5565b5f818060200190518101906120969190614e2c565b90505f5f6120a4868a612349565b90505f6120b587855f01518c613120565b90505f6120cc88866020015187604001518e61328d565b905080826120da858d614c55565b6120e49190614c55565b6120ee9190614c55565b93505050506112588986868a858d61340f565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01602052604090205480156121875761213e8382613455565b61218761217f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308484612587565b505050565b5f6121956134bd565b9050612219816121e96104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6122248260016134e4565b61223581612230611564565b6125d9565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b6122938260405180602001604052805f815250612b2a565b61229d8282612101565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b5f61055581836134fd565b5f6122f5613508565b90505f612324825f8560405160200161231091815260200190565b6040516020818303038152906040526135db565b905061233182858361364c565b6123438261233d610baa565b8361364c565b50505050565b5f6123538261182e565b90506105556123967fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8461239f6107e6565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240b91906149f0565b84612587565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816124727fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8216016124d4578382600a015f8282546124c49190614ed4565b9091555084935061055592505050565b5f6124f573ffffffffffffffffffffffffffffffffffffffff8316306136cb565b905061250382873088612587565b5f61252473ffffffffffffffffffffffffffffffffffffffff8416306136cb565b90505f6125318383614c55565b9050868114612563576125637fb1296a8a00000000000000000000000000000000000000000000000000000000610ff5565b8085600a015f8282546125769190614ed4565b909155509098975050505050505050565b80156123435773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146125cf576125ca848484846136fe565b612343565b6123438282613792565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061261f57505f5b15612659576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161045c565b5f428267ffffffffffffffff16111561267d576126768483614ee7565b905061268a565b6126878442614ee7565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f6127106107e6565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277c9190614c68565b67ffffffffffffffff1690508167ffffffffffffffff165f036127c2576127c27f82323d2e00000000000000000000000000000000000000000000000000000000610ff5565b808267ffffffffffffffff1611156104a3576104a37f82323d2e00000000000000000000000000000000000000000000000000000000610ff5565b5f61284c6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f612858826129d4565b90505f5f5f61286686612a4a565b8060200190518101906128799190614da8565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b0600000000000000000000000000000000000000000000000000000000146128f3576128f37fda6153bd00000000000000000000000000000000000000000000000000000000610ff5565b5f6128fe8387612349565b90505f61290b8287614c55565b905061155a88858589858c61340f565b5f612710821115612950576129507f197f196200000000000000000000000000000000000000000000000000000000836137b2565b61271061295d8385614f07565b6129679190614f1e565b9392505050565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f906129cb908490614c55565b90915550505050565b5f5f6129de61296e565b905080156129ee57505f92915050565b825f036129fd57505f92915050565b5090919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612a3f83614f56565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060917f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0091612aa690614a0b565b80601f0160208091040260200160405190810160405280929190818152602001828054612ad290614a0b565b8015612b1d5780601f10612af457610100808354040283529160200191612b1d565b820191905f5260205f20905b815481529060010190602001808311612b0057829003601f168201915b5050505050915050919050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906123438382614aa0565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00923492916129cb908490614ed4565b60605f612beb6137be565b80519091505f8167ffffffffffffffff811115612c0a57612c0a614773565b604051908082528060200260200182016040528015612c6d57816020015b612c5a6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612c285790505b50855160208701209091505f90815b84811015612d6c575f5f5f5f612caa8a8681518110612c9d57612c9d614f8d565b60200260200101516137e9565b93509350935093505f5b8251811015612d5c5786838281518110612cd057612cd0614f8d565b60200260200101518051906020012003612d54576040518060a001604052808c8881518110612d0157612d01614f8d565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612d3857612d38614f8d565b602002602001018190525087612d4d90614f56565b9750612d5c565b600101612cb4565b5050505050806001019050612c7c565b50508152949350505050565b5f5f612d83836138d5565b90505f5b8451811015612f8957848181518110612da257612da2614f8d565b602002602001015160400151612f81575f5b858281518110612dc657612dc6614f8d565b60200260200101516080015151811015612f7f575f868381518110612ded57612ded614f8d565b6020026020010151608001518281518110612e0a57612e0a614f8d565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e819190614cb8565b158015612f6457508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612eef9190614fba565b604051602081830303815290604052612f0790614fd0565b6040518463ffffffff1660e01b8152600401612f2593929190615012565b602060405180830381865afa158015612f40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f649190614cb8565b15612f76576001945050505050610555565b50600101612db4565b505b600101612d87565b505f949350505050565b5f8080805b885181101561311157888181518110612fb357612fb3614f8d565b602002602001015160400151613109575f5b898281518110612fd757612fd7614f8d565b60200260200101516080015151811015613107575f8a8381518110612ffe57612ffe614f8d565b602002602001015160800151828151811061301b5761301b614f8d565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561306e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130929190614cb8565b156130fe57836130cf576130c68a8a8a848f88815181106130b5576130b5614f8d565b60200260200101515f01518c613c19565b600193506130f9565b6130f98a8a8a848f88815181106130e8576130e8614f8d565b60200260200101515f01515f613c19565b600194505b50600101612fc5565b505b600101612f98565b505f9250509550959350505050565b5f73ffffffffffffffffffffffffffffffffffffffff831661314357505f612967565b5f6131827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa1580156131ee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613212919061507d565b905080604001515f03613228575f915050612967565b61323683826040015161291b565b91506132856132797fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b86836020015185612587565b509392505050565b5f82515f1461333d575f6132a084613d09565b604081015190915073ffffffffffffffffffffffffffffffffffffffff1615806132cc57506020810151155b156132da575f91505061191f565b6132e883826020015161291b565b915061333761332b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b87836040015185612587565b5061191f565b73ffffffffffffffffffffffffffffffffffffffff84161561191f578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361339357505f61191f565b6133c4826133bf7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b61291b565b905061191f6134077fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868684612587565b81156134215761341f8583612411565b505b61342b8684613455565b6134438660405180602001604052805f815250612b2a565b61344d84826122ec565b505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00928492916134b3908490614c55565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00612991565b6104a3828260405180602001604052805f815250613db1565b5f6129678383613e79565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa1580156135b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906149f0565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde9061363190869086906004016150f7565b602060405180830381865afa1580156118fb573d5f5f3e3d5ffd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156136b9575f5ffd5b505af1158015611742573d5f5f3e3d5ffd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156123435773ffffffffffffffffffffffffffffffffffffffff83163014613771576125ca73ffffffffffffffffffffffffffffffffffffffff8516848484613fb4565b61234373ffffffffffffffffffffffffffffffffffffffff85168383614016565b6104a373ffffffffffffffffffffffffffffffffffffffff831682614069565b815f528060045260245ffd5b60606104fb7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614082565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061382b90614a0b565b80601f016020809104026020016040519081016040528092919081815260200182805461385790614a0b565b80156138a25780601f10613879576101008083540402835291602001916138a2565b820191905f5260205f20905b81548152906001019060200180831161388557829003601f168201915b5050505060018301549196505060ff1693506138c06002820161408e565b92506138cb81614165565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa15801561396c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526139b19190810190615144565b905080515f03613b22576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613a28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4c91906149f0565b905073ffffffffffffffffffffffffffffffffffffffff811615613b20576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613ad8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613b1d9190810190615144565b91505b505b80515f613b30826001614ed4565b67ffffffffffffffff811115613b4857613b48614773565b604051908082528060200260200182016040528015613b71578160200160208202803683370190505b5090505f5b82811015613bd757838181518110613b9057613b90614f8d565b6020026020010151828281518110613baa57613baa614f8d565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101613b76565b5085818381518110613beb57613beb614f8d565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015295945050505050565b613c24868483614174565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526117429316918a918991889188910160405160208183030381529060405261422d565b613d416040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b613dbb838361434d565b73ffffffffffffffffffffffffffffffffffffffff83163b15612187577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613e105f868380600101945086614502565b613e46576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dfe57817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146107d6575f5ffd5b5f818311613f8257505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613f8057815f03613f7a5780548310613f39576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613f3a575b50610555565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661400857803d873b15171061400857637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661405f57803d853b15171061405f576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104a35763b12d13eb5f526004601cfd5b60605f61296783614674565b6060815f01805480602002602001604051908101604052809291908181526020015f905b8282101561415a578382905f5260205f200180546140cf90614a0b565b80601f01602080910402602001604051908101604052809291908181526020018280546140fb90614a0b565b80156141465780601f1061411d57610100808354040283529160200191614146565b820191905f5260205f20905b81548152906001019060200180831161412957829003601f168201915b5050505050815260200190600101906140b2565b505050509050919050565b60605f61296783600401614082565b348111156141a5576141a57ff4e95a4100000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff83166141e9576141e97f99ef038800000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff8216612187576121877f4bb7c20500000000000000000000000000000000000000000000000000000000610ff5565b81156142c0576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a90849061428d9089908990899088906004016151f8565b5f604051808303818588803b1580156142a4575f5ffd5b505af11580156142b6573d5f5f3e3d5ffd5b505050505061344d565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a906143189088908890889087906004016151f8565b5f604051808303815f87803b15801561432f575f5ffd5b505af1158015614341573d5f5f3e3d5ffd5b50505050505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f8290036143a9576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146144a05780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa460010161446a565b50815f036144da576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061455c903390899088908890600401615232565b6020604051808303815f875af19250505080156145b4575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526145b191810190615282565b60015b614629573d8080156145e1576040519150601f19603f3d011682016040523d82523d5f602084013e6145e6565b606091505b5080515f03614621576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061191f565b6060815f018054806020026020016040519081016040528092919081815260200182805480156146c157602002820191905f5260205f20905b8154815260200190600101908083116146ad575b50505050509050919050565b5f5f602083850312156146de575f5ffd5b823567ffffffffffffffff8111156146f4575f5ffd5b8301601f81018513614704575f5ffd5b803567ffffffffffffffff81111561471a575f5ffd5b85602082840101111561472b575f5ffd5b6020919091019590945092505050565b5f6020828403121561474b575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146108e8575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156147c3576147c3614773565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561481057614810614773565b604052919050565b5f67ffffffffffffffff82111561483157614831614773565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f5f6040838503121561486e575f5ffd5b823561487981614752565b9150602083013567ffffffffffffffff811115614894575f5ffd5b8301606081860312156148a5575f5ffd5b6148ad6147a0565b81356148b881614752565b815260208201356148c881614752565b6020820152604082013567ffffffffffffffff8111156148e6575f5ffd5b80830192505085601f8301126148fa575f5ffd5b813561490d61490882614818565b6147c9565b818152876020838601011115614921575f5ffd5b816020850160208301375f60208383010152806040840152505080925050509250929050565b67ffffffffffffffff811681146108e8575f5ffd5b5f6020828403121561496c575f5ffd5b813561296781614947565b5f60208284031215614987575f5ffd5b813561296781614752565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6129676020830184614992565b5f60208284031215614a00575f5ffd5b815161296781614752565b600181811c90821680614a1f57607f821691505b602082108103614a56577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561218757805f5260205f20601f840160051c81016020851015614a815750805b601f840160051c820191505b818110156107d6575f8155600101614a8d565b815167ffffffffffffffff811115614aba57614aba614773565b614ace81614ac88454614a0b565b84614a5c565b6020601f821160018114614b1f575f8315614ae95750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556107d6565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614b6c5787850151825560209485019460019092019101614b4c565b5084821015614ba857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614bc7575f5ffd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f604083015160608084015261191f6080840182614992565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561055557610555614c28565b5f60208284031215614c78575f5ffd5b815161296781614947565b5f60208284031215614c93575f5ffd5b815161ffff81168114612967575f5ffd5b80518015158114614cb3575f5ffd5b919050565b5f60208284031215614cc8575f5ffd5b61296782614ca4565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f610ef96080830184614992565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614cb3575f5ffd5b5f614d7f61490884614818565b9050828152838383011115614d92575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614dbb575f5ffd5b614dc485614d43565b93506020850151614dd481614752565b6040860151909350614de581614752565b606086015190925067ffffffffffffffff811115614e01575f5ffd5b8501601f81018713614e11575f5ffd5b614e2087825160208401614d72565b91505092959194509250565b5f60208284031215614e3c575f5ffd5b815167ffffffffffffffff811115614e52575f5ffd5b820160608185031215614e63575f5ffd5b614e6b6147a0565b8151614e7681614752565b81526020820151614e8681614752565b6020820152604082015167ffffffffffffffff811115614ea4575f5ffd5b80830192505084601f830112614eb8575f5ffd5b614ec785835160208501614d72565b6040820152949350505050565b8082018082111561055557610555614c28565b67ffffffffffffffff818116838216019081111561055557610555614c28565b808202811582820484141761055557610555614c28565b5f82614f51577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f8657614f86614c28565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015614a56577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561506957835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615035565b505060409390930193909352509392505050565b5f608082840312801561508e575f5ffd5b506040516080810167ffffffffffffffff811182821017156150b2576150b2614773565b60405282516150c081614752565b815260208301516150d081614752565b6020820152604083810151908201526150eb60608401614ca4565b60608201529392505050565b5f6004841061512d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8382526040602083015261191f6040830184614992565b5f60208284031215615154575f5ffd5b815167ffffffffffffffff81111561516a575f5ffd5b8201601f8101841361517a575f5ffd5b805167ffffffffffffffff81111561519457615194614773565b8060051b6151a4602082016147c9565b918252602081840181019290810190878411156151bf575f5ffd5b6020850194505b838510156151ed57845192506151db83614752565b828252602094850194909101906151c6565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f610ef96080830184614992565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f610ef96080830184614992565b5f60208284031215615292575f5ffd5b61296782614d4356";
1399
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61529b806100ca5f395ff3fe608060405260043610610162575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103ab578063df9a9fe6146103bf578063e847abdd146103de575f5ffd5b806393b13cb71461035757806395d600c81461037857806397fb7c1e1461038c575f5ffd5b80638120f0ba116100ac5780638120f0ba146102f857806383f3f0dc146103255780638c625b0614610344575f5ffd5b806379dda585146102d15780637c9669ac146102e5575f5ffd5b80635becd24a1161011b578063686f768411610101578063686f76841461028b57806369d5f38a1461029e578063706b8e09146102bd575f5ffd5b80635becd24a14610233578063657e45e814610252575f5ffd5b806317c957091161014b57806317c95709146101ae5780633e9491a2146102025780635803909f14610214575f5ffd5b80630ef1be5f146101665780631278076a14610187575b5f5ffd5b348015610171575f5ffd5b506101856101803660046146cd565b6103f2565b005b348015610192575f5ffd5b5061019b6104a7565b6040519081526020015b60405180910390f35b3480156101b9575f5ffd5b5061019b6101c836600461473b565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b34801561020d575f5ffd5b504761019b565b34801561021f575f5ffd5b5061019b61022e36600461473b565b610500565b34801561023e575f5ffd5b5061018561024d36600461473b565b61055b565b34801561025d575f5ffd5b50610266610642565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b61018561029936600461485d565b610681565b3480156102a9575f5ffd5b506101856102b836600461473b565b6106c5565b3480156102c8575f5ffd5b5061019b6107dd565b3480156102dc575f5ffd5b506102666107e6565b6101856102f336600461473b565b610825565b348015610303575f5ffd5b5061030c610868565b60405167ffffffffffffffff90911681526020016101a5565b348015610330575f5ffd5b5061018561033f36600461495c565b610871565b610185610352366004614977565b6108eb565b348015610362575f5ffd5b5061036b61091e565b6040516101a591906149de565b348015610383575f5ffd5b5061019b610928565b348015610397575f5ffd5b506101856103a636600461473b565b610951565b3480156103b6575f5ffd5b5061019b610a3b565b3480156103ca575f5ffd5b506101856103d9366004614977565b610a92565b3480156103e9575f5ffd5b50610266610b6b565b6103fa610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610465576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104a382828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c6a92505050565b5050565b5f6104fb6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610c95565b905090565b5f610555826105507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f0c565b92915050565b610563610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105c9576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b5f6105f27fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b9050801580159061060257508082115b15610630576106307fc3983b9100000000000000000000000000000000000000000000000000000000610ff5565b61063982610ffd565b6104a3826110a1565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd21268540361069f5763ab143c065f526004601cfd5b3068929eee149b4bd21268556106b5828261115f565b3868929eee149b4bd21268555050565b6106cd610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610733576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b61073c81611263565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156107c4575f5ffd5b505af11580156107d6573d5f5f3e3d5ffd5b5050505050565b5f6104fb61130b565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036108435763ab143c065f526004601cfd5b3068929eee149b4bd212685561085933826113d6565b3868929eee149b4bd212685550565b5f6104fb611564565b610879610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108df576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b6108e881611627565b50565b3068929eee149b4bd2126854036109095763ab143c065f526004601cfd5b3068929eee149b4bd2126855610859816116a2565b60606104fb61174b565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610959610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bf576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b610a1381610a0e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6117fd565b6108e8817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f6104fb610a8d6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61182e565b610a9a610baa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161045c565b610b09816119a1565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6104fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610c40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6491906149f0565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104a38282614aa0565b5f5f610c9f61130b565b90505f610ce07fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b90505f610ceb6107e6565b905073ffffffffffffffffffffffffffffffffffffffff8216610d7e578073ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190614bb7565b95945050505050565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018490526024810186905273ffffffffffffffffffffffffffffffffffffffff831690635cf4ee9190604401602060405180830381865afa158015610dee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e129190614bb7565b93505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e829190614bb7565b905080851015610f03578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190614bb7565b9695505050505050565b50505050919050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60081610f376107e6565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa79190614bb7565b5f8781526009850160205260409020549091508015610fd457818110828218028118945050505050610555565b5f610fde87610c95565b905082811083821802811898975050505050505050565b805f5260045ffd5b6110056107e6565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110719190614bb7565b8111156108e8576108e87fc3983b9100000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b61116882611ada565b5f611171611bd0565b90505f811561118557611182611c69565b90505b61118f8484611cfb565b5f836040516020016111a19190614bce565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6112088761120384338388611da0565b611dd2565b90505f5f61121889338589611f0d565b915091508061125857811561124e5786156112365761123683611f88565b611240838a612101565b6112498961218c565b611258565b611258838a61227b565b505050505050505050565b5f61126c6107e6565b73ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d89190614bb7565b9050808210156104a3576104a37f3447ac8e00000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156113625760070154919050565b61136a6107e6565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c649190614bb7565b5f6113e0826122e1565b905073ffffffffffffffffffffffffffffffffffffffff8116611426576114267f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b5f61142f611564565b67ffffffffffffffff1690505f61148b846105507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050348111156114be576114be7f34a7a93d00000000000000000000000000000000000000000000000000000000610ff5565b6114c883826122ec565b5f6114d38683612349565b90505f6114e08284614c55565b905080156114f4576114f28782612411565b505b5f6114ff8434614c55565b90508015611550576115506115487fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308a84612587565b61155a87866125d9565b5050505050505050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f819003611624576115b86107e6565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611600573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190614c68565b90565b61163081612707565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6116ab81611ada565b5f6116b4611bd0565b90505f81156116c8576116c5611c69565b90505b5f638c625b0660e01b90505f6116f28561120384338960405180602001604052805f815250611da0565b90505f5f61170287338588611f0d565b915091508061174257811561173857851561172057611720836127fd565b61172a8388612101565b6117338761218c565b611742565b611742838861227b565b50505050505050565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c01805461177c90614a0b565b80601f01602080910402602001604051908101604052809291908181526020018280546117a890614a0b565b80156117f35780601f106117ca576101008083540402835291602001916117f3565b820191905f5260205f20905b8154815290600101906020018083116117d657829003601f168201915b5050505050905090565b808210156104a3576104a37fccc9aa2e00000000000000000000000000000000000000000000000000000000610ff5565b5f5f6118386107e6565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611884573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118a89190614bb7565b905080841015611927578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191f9190614bb7565b949350505050565b61191f848373ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611974573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119989190614c83565b61ffff1661291b565b73ffffffffffffffffffffffffffffffffffffffff81166119e5576119e57f0e88bf4b00000000000000000000000000000000000000000000000000000000610ff5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611a89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aad9190614cb8565b6108e8576108e87f0e88bf4b00000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff8116611b1e57611b1e7f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b5f611b477fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611ba2575080611b9f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104a3576104a37f7efcdb4900000000000000000000000000000000000000000000000000000000610ff5565b5f5f611c1d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611c2861130b565b90505f611c3361296e565b905082821115611c46575f935050505090565b8015611c5f57611c566001612997565b5f935050505090565b6001935050505090565b5f5f611cb96104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050611cc4816129d4565b915081341015611cf757611cf77fb1296a8a00000000000000000000000000000000000000000000000000000000610ff5565b5090565b602081015173ffffffffffffffffffffffffffffffffffffffff16156104a3578173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161480611d725750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104a3576104a37f5fbd571700000000000000000000000000000000000000000000000000000000610ff5565b606084848484604051602001611db99493929190614cd1565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611eb181611e858387611e3886612a04565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b91505f611ebd83612a4a565b511115611eed57611eed7ff82e65c300000000000000000000000000000000000000000000000000000000610ff5565b611ef78284612b2a565b3415611f0657611f0682612b82565b5092915050565b5f5f5f611f4e6040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612be0565b9050611f5a8188612d78565b15611f6c5760015f9250925050611f7f565b611f798188888888612f93565b92509250505b94509492505050565b5f611fd76104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611fe3826129d4565b90505f5f5f5f611ff287612a4a565b8060200190518101906120059190614da8565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612081576120817fda6153bd00000000000000000000000000000000000000000000000000000000610ff5565b5f818060200190518101906120969190614e2c565b90505f5f6120a4868a612349565b90505f6120b587855f01518c613120565b90505f6120cc88866020015187604001518e61328d565b905080826120da858d614c55565b6120e49190614c55565b6120ee9190614c55565b93505050506112588986868a858d61340f565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01602052604090205480156121875761213e8382613455565b61218761217f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308484612587565b505050565b5f6121956134bd565b9050612219816121e96104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6122248260016134e4565b61223581612230611564565b6125d9565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b6122938260405180602001604052805f815250612b2a565b61229d8282612101565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b5f61055581836134fd565b5f6122f5613508565b90505f612324825f8560405160200161231091815260200190565b6040516020818303038152906040526135db565b905061233182858361364c565b6123438261233d610baa565b8361364c565b50505050565b5f6123538261182e565b90506105556123967fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8461239f6107e6565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240b91906149f0565b84612587565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816124727fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8216016124d4578382600a015f8282546124c49190614ed4565b9091555084935061055592505050565b5f6124f573ffffffffffffffffffffffffffffffffffffffff8316306136cb565b9050612503828730886136fe565b5f61252473ffffffffffffffffffffffffffffffffffffffff8416306136cb565b90505f6125318383614c55565b9050868114612563576125637fb1296a8a00000000000000000000000000000000000000000000000000000000610ff5565b8085600a015f8282546125769190614ed4565b909155509098975050505050505050565b80156123435773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146125cf576125ca848484846136fe565b612343565b6123438282613792565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061261f57505f5b15612659576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161045c565b5f428267ffffffffffffffff16111561267d576126768483614ee7565b905061268a565b6126878442614ee7565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f6127106107e6565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277c9190614c68565b67ffffffffffffffff1690508167ffffffffffffffff165f036127c2576127c27f82323d2e00000000000000000000000000000000000000000000000000000000610ff5565b808267ffffffffffffffff1611156104a3576104a37f82323d2e00000000000000000000000000000000000000000000000000000000610ff5565b5f61284c6104f67f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f612858826129d4565b90505f5f5f61286686612a4a565b8060200190518101906128799190614da8565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b0600000000000000000000000000000000000000000000000000000000146128f3576128f37fda6153bd00000000000000000000000000000000000000000000000000000000610ff5565b5f6128fe8387612349565b90505f61290b8287614c55565b905061155a88858589858c61340f565b5f612710821115612950576129507f197f196200000000000000000000000000000000000000000000000000000000836137b2565b61271061295d8385614f07565b6129679190614f1e565b9392505050565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f906129cb908490614c55565b90915550505050565b5f5f6129de61296e565b905080156129ee57505f92915050565b825f036129fd57505f92915050565b5090919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612a3f83614f56565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060917f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0091612aa690614a0b565b80601f0160208091040260200160405190810160405280929190818152602001828054612ad290614a0b565b8015612b1d5780601f10612af457610100808354040283529160200191612b1d565b820191905f5260205f20905b815481529060010190602001808311612b0057829003601f168201915b5050505050915050919050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906123438382614aa0565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00923492916129cb908490614ed4565b60605f612beb6137be565b80519091505f8167ffffffffffffffff811115612c0a57612c0a614773565b604051908082528060200260200182016040528015612c6d57816020015b612c5a6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612c285790505b50855160208701209091505f90815b84811015612d6c575f5f5f5f612caa8a8681518110612c9d57612c9d614f8d565b60200260200101516137e9565b93509350935093505f5b8251811015612d5c5786838281518110612cd057612cd0614f8d565b60200260200101518051906020012003612d54576040518060a001604052808c8881518110612d0157612d01614f8d565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612d3857612d38614f8d565b602002602001018190525087612d4d90614f56565b9750612d5c565b600101612cb4565b5050505050806001019050612c7c565b50508152949350505050565b5f5f612d83836138d5565b90505f5b8451811015612f8957848181518110612da257612da2614f8d565b602002602001015160400151612f81575f5b858281518110612dc657612dc6614f8d565b60200260200101516080015151811015612f7f575f868381518110612ded57612ded614f8d565b6020026020010151608001518281518110612e0a57612e0a614f8d565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e819190614cb8565b158015612f6457508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612eef9190614fba565b604051602081830303815290604052612f0790614fd0565b6040518463ffffffff1660e01b8152600401612f2593929190615012565b602060405180830381865afa158015612f40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f649190614cb8565b15612f76576001945050505050610555565b50600101612db4565b505b600101612d87565b505f949350505050565b5f8080805b885181101561311157888181518110612fb357612fb3614f8d565b602002602001015160400151613109575f5b898281518110612fd757612fd7614f8d565b60200260200101516080015151811015613107575f8a8381518110612ffe57612ffe614f8d565b602002602001015160800151828151811061301b5761301b614f8d565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561306e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130929190614cb8565b156130fe57836130cf576130c68a8a8a848f88815181106130b5576130b5614f8d565b60200260200101515f01518c613c19565b600193506130f9565b6130f98a8a8a848f88815181106130e8576130e8614f8d565b60200260200101515f01515f613c19565b600194505b50600101612fc5565b505b600101612f98565b505f9250509550959350505050565b5f73ffffffffffffffffffffffffffffffffffffffff831661314357505f612967565b5f6131827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa1580156131ee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613212919061507d565b905080604001515f03613228575f915050612967565b61323683826040015161291b565b91506132856132797fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b86836020015185612587565b509392505050565b5f82515f1461333d575f6132a084613d09565b604081015190915073ffffffffffffffffffffffffffffffffffffffff1615806132cc57506020810151155b156132da575f91505061191f565b6132e883826020015161291b565b915061333761332b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b87836040015185612587565b5061191f565b73ffffffffffffffffffffffffffffffffffffffff84161561191f578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361339357505f61191f565b6133c4826133bf7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b61291b565b905061191f6134077fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868684612587565b81156134215761341f8583612411565b505b61342b8684613455565b6134438660405180602001604052805f815250612b2a565b61344d84826122ec565b505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00928492916134b3908490614c55565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00612991565b6104a3828260405180602001604052805f815250613db1565b5f6129678383613e79565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa1580156135b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906149f0565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde9061363190869086906004016150f7565b602060405180830381865afa1580156118fb573d5f5f3e3d5ffd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156136b9575f5ffd5b505af1158015611742573d5f5f3e3d5ffd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156123435773ffffffffffffffffffffffffffffffffffffffff83163014613771576125ca73ffffffffffffffffffffffffffffffffffffffff8516848484613fb4565b61234373ffffffffffffffffffffffffffffffffffffffff85168383614016565b6104a373ffffffffffffffffffffffffffffffffffffffff831682614069565b815f528060045260245ffd5b60606104fb7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614082565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061382b90614a0b565b80601f016020809104026020016040519081016040528092919081815260200182805461385790614a0b565b80156138a25780601f10613879576101008083540402835291602001916138a2565b820191905f5260205f20905b81548152906001019060200180831161388557829003601f168201915b5050505060018301549196505060ff1693506138c06002820161408e565b92506138cb81614165565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa15801561396c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526139b19190810190615144565b905080515f03613b22576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613a28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4c91906149f0565b905073ffffffffffffffffffffffffffffffffffffffff811615613b20576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613ad8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613b1d9190810190615144565b91505b505b80515f613b30826001614ed4565b67ffffffffffffffff811115613b4857613b48614773565b604051908082528060200260200182016040528015613b71578160200160208202803683370190505b5090505f5b82811015613bd757838181518110613b9057613b90614f8d565b6020026020010151828281518110613baa57613baa614f8d565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101613b76565b5085818381518110613beb57613beb614f8d565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015295945050505050565b613c24868483614174565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526117429316918a918991889188910160405160208183030381529060405261422d565b613d416040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b613dbb838361434d565b73ffffffffffffffffffffffffffffffffffffffff83163b15612187577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613e105f868380600101945086614502565b613e46576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dfe57817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146107d6575f5ffd5b5f818311613f8257505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613f8057815f03613f7a5780548310613f39576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613f3a575b50610555565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661400857803d873b15171061400857637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661405f57803d853b15171061405f576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104a35763b12d13eb5f526004601cfd5b60605f61296783614674565b6060815f01805480602002602001604051908101604052809291908181526020015f905b8282101561415a578382905f5260205f200180546140cf90614a0b565b80601f01602080910402602001604051908101604052809291908181526020018280546140fb90614a0b565b80156141465780601f1061411d57610100808354040283529160200191614146565b820191905f5260205f20905b81548152906001019060200180831161412957829003601f168201915b5050505050815260200190600101906140b2565b505050509050919050565b60605f61296783600401614082565b348111156141a5576141a57ff4e95a4100000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff83166141e9576141e97f99ef038800000000000000000000000000000000000000000000000000000000610ff5565b73ffffffffffffffffffffffffffffffffffffffff8216612187576121877f4bb7c20500000000000000000000000000000000000000000000000000000000610ff5565b81156142c0576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a90849061428d9089908990899088906004016151f8565b5f604051808303818588803b1580156142a4575f5ffd5b505af11580156142b6573d5f5f3e3d5ffd5b505050505061344d565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a906143189088908890889087906004016151f8565b5f604051808303815f87803b15801561432f575f5ffd5b505af1158015614341573d5f5f3e3d5ffd5b50505050505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f8290036143a9576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146144a05780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa460010161446a565b50815f036144da576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061455c903390899088908890600401615232565b6020604051808303815f875af19250505080156145b4575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526145b191810190615282565b60015b614629573d8080156145e1576040519150601f19603f3d011682016040523d82523d5f602084013e6145e6565b606091505b5080515f03614621576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061191f565b6060815f018054806020026020016040519081016040528092919081815260200182805480156146c157602002820191905f5260205f20905b8154815260200190600101908083116146ad575b50505050509050919050565b5f5f602083850312156146de575f5ffd5b823567ffffffffffffffff8111156146f4575f5ffd5b8301601f81018513614704575f5ffd5b803567ffffffffffffffff81111561471a575f5ffd5b85602082840101111561472b575f5ffd5b6020919091019590945092505050565b5f6020828403121561474b575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146108e8575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156147c3576147c3614773565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561481057614810614773565b604052919050565b5f67ffffffffffffffff82111561483157614831614773565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f5f6040838503121561486e575f5ffd5b823561487981614752565b9150602083013567ffffffffffffffff811115614894575f5ffd5b8301606081860312156148a5575f5ffd5b6148ad6147a0565b81356148b881614752565b815260208201356148c881614752565b6020820152604082013567ffffffffffffffff8111156148e6575f5ffd5b80830192505085601f8301126148fa575f5ffd5b813561490d61490882614818565b6147c9565b818152876020838601011115614921575f5ffd5b816020850160208301375f60208383010152806040840152505080925050509250929050565b67ffffffffffffffff811681146108e8575f5ffd5b5f6020828403121561496c575f5ffd5b813561296781614947565b5f60208284031215614987575f5ffd5b813561296781614752565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6129676020830184614992565b5f60208284031215614a00575f5ffd5b815161296781614752565b600181811c90821680614a1f57607f821691505b602082108103614a56577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561218757805f5260205f20601f840160051c81016020851015614a815750805b601f840160051c820191505b818110156107d6575f8155600101614a8d565b815167ffffffffffffffff811115614aba57614aba614773565b614ace81614ac88454614a0b565b84614a5c565b6020601f821160018114614b1f575f8315614ae95750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556107d6565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614b6c5787850151825560209485019460019092019101614b4c565b5084821015614ba857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614bc7575f5ffd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f604083015160608084015261191f6080840182614992565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561055557610555614c28565b5f60208284031215614c78575f5ffd5b815161296781614947565b5f60208284031215614c93575f5ffd5b815161ffff81168114612967575f5ffd5b80518015158114614cb3575f5ffd5b919050565b5f60208284031215614cc8575f5ffd5b61296782614ca4565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f610ef96080830184614992565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614cb3575f5ffd5b5f614d7f61490884614818565b9050828152838383011115614d92575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614dbb575f5ffd5b614dc485614d43565b93506020850151614dd481614752565b6040860151909350614de581614752565b606086015190925067ffffffffffffffff811115614e01575f5ffd5b8501601f81018713614e11575f5ffd5b614e2087825160208401614d72565b91505092959194509250565b5f60208284031215614e3c575f5ffd5b815167ffffffffffffffff811115614e52575f5ffd5b820160608185031215614e63575f5ffd5b614e6b6147a0565b8151614e7681614752565b81526020820151614e8681614752565b6020820152604082015167ffffffffffffffff811115614ea4575f5ffd5b80830192505084601f830112614eb8575f5ffd5b614ec785835160208501614d72565b6040820152949350505050565b8082018082111561055557610555614c28565b67ffffffffffffffff818116838216019081111561055557610555614c28565b808202811582820484141761055557610555614c28565b5f82614f51577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614f8657614f86614c28565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015614a56577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561506957835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615035565b505060409390930193909352509392505050565b5f608082840312801561508e575f5ffd5b506040516080810167ffffffffffffffff811182821017156150b2576150b2614773565b60405282516150c081614752565b815260208301516150d081614752565b6020820152604083810151908201526150eb60608401614ca4565b60608201529392505050565b5f6004841061512d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8382526040602083015261191f6040830184614992565b5f60208284031215615154575f5ffd5b815167ffffffffffffffff81111561516a575f5ffd5b8201601f8101841361517a575f5ffd5b805167ffffffffffffffff81111561519457615194614773565b8060051b6151a4602082016147c9565b918252602081840181019290810190878411156151bf575f5ffd5b6020850194505b838510156151ed57845192506151db83614752565b828252602094850194909101906151c6565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f610ef96080830184614992565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f610ef96080830184614992565b5f60208284031215615292575f5ffd5b61296782614d4356";
1400
1400
 
1401
1401
  type MembershipFacetConstructorParams =
1402
1402
  | [signer?: Signer]
@@ -7,6 +7,10 @@ import type { PromiseOrValue } from "../common";
7
7
  import type { SimpleApp, SimpleAppInterface } from "../SimpleApp";
8
8
 
9
9
  const _abi = [
10
+ {
11
+ type: "receive",
12
+ stateMutability: "payable",
13
+ },
10
14
  {
11
15
  type: "function",
12
16
  name: "accessDuration",
@@ -316,6 +320,19 @@ const _abi = [
316
320
  outputs: [],
317
321
  stateMutability: "nonpayable",
318
322
  },
323
+ {
324
+ type: "function",
325
+ name: "withdrawETH",
326
+ inputs: [
327
+ {
328
+ name: "recipient",
329
+ type: "address",
330
+ internalType: "address",
331
+ },
332
+ ],
333
+ outputs: [],
334
+ stateMutability: "nonpayable",
335
+ },
319
336
  {
320
337
  type: "event",
321
338
  name: "Initialized",
@@ -374,6 +391,44 @@ const _abi = [
374
391
  ],
375
392
  anonymous: false,
376
393
  },
394
+ {
395
+ type: "event",
396
+ name: "PricingUpdated",
397
+ inputs: [
398
+ {
399
+ name: "installPrice",
400
+ type: "uint256",
401
+ indexed: false,
402
+ internalType: "uint256",
403
+ },
404
+ {
405
+ name: "accessDuration",
406
+ type: "uint48",
407
+ indexed: false,
408
+ internalType: "uint48",
409
+ },
410
+ ],
411
+ anonymous: false,
412
+ },
413
+ {
414
+ type: "event",
415
+ name: "Withdrawal",
416
+ inputs: [
417
+ {
418
+ name: "recipient",
419
+ type: "address",
420
+ indexed: true,
421
+ internalType: "address",
422
+ },
423
+ {
424
+ name: "amount",
425
+ type: "uint256",
426
+ indexed: false,
427
+ internalType: "uint256",
428
+ },
429
+ ],
430
+ anonymous: false,
431
+ },
377
432
  {
378
433
  type: "error",
379
434
  name: "AlreadyInitialized",
@@ -389,6 +444,11 @@ const _abi = [
389
444
  name: "NewOwnerIsZeroAddress",
390
445
  inputs: [],
391
446
  },
447
+ {
448
+ type: "error",
449
+ name: "NoBalanceToWithdraw",
450
+ inputs: [],
451
+ },
392
452
  {
393
453
  type: "error",
394
454
  name: "NoHandoverRequest",
@@ -404,10 +464,15 @@ const _abi = [
404
464
  name: "Unauthorized",
405
465
  inputs: [],
406
466
  },
467
+ {
468
+ type: "error",
469
+ name: "ZeroAddress",
470
+ inputs: [],
471
+ },
407
472
  ] as const;
408
473
 
409
474
  const _bytecode =
410
- "0x6080604052348015600e575f5ffd5b50610ff98061001c5f395ff3fe608060405260043610610123575f3560e01c8063715018a6116100a1578063a41c85be11610071578063f04e283e11610057578063f04e283e146102ed578063f2fde38b14610300578063fee81cf414610313575f5ffd5b8063a41c85be146102aa578063ae5628c6146102cc575f5ffd5b8063715018a61461024e5780638a91b0e3146102305780638da5cb5b14610256578063a1308f2714610289575f5ffd5b80632e7ad41f116100f6578063452c04b1116100dc578063452c04b1146101ef57806354d1f13d146102285780636d61fe7014610230575f5ffd5b80632e7ad41f146101af57806336edab1f146101d0575f5ffd5b806301ffc9a7146101275780630a88fcad1461015b5780632382f0461461018657806325692962146101a7575b5f5ffd5b348015610132575f5ffd5b5061014661014136600461098b565b610344565b60405190151581526020015b60405180910390f35b348015610166575f5ffd5b5061016f610428565b60405165ffffffffffff9091168152602001610152565b348015610191575f5ffd5b506101a56101a03660046109eb565b61045e565b005b6101a56104e2565b3480156101ba575f5ffd5b506101c361052f565b6040516101529190610a15565b3480156101db575f5ffd5b506101a56101ea366004610abf565b6105a7565b3480156101fa575f5ffd5b506102036106b8565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101a56106c1565b34801561023b575f5ffd5b506101a561024a366004610b89565b5050565b6101a56106fa565b348015610261575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610203565b348015610294575f5ffd5b5061029d61070d565b6040516101529190610bc8565b3480156102b5575f5ffd5b506102be6107b8565b604051908152602001610152565b3480156102d7575f5ffd5b506102e06107e1565b6040516101529190610cf9565b6101a56102fb366004610e00565b610808565b6101a561030e366004610e00565b610845565b34801561031e575f5ffd5b506102be61032d366004610e00565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fae5628c60000000000000000000000000000000000000000000000000000000014806103d657507fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b400000000000000000000000000000000000000000000000000000000145b8061042257507fffffffff0000000000000000000000000000000000000000000000000000000082167fc5c2a9bd00000000000000000000000000000000000000000000000000000000145b92915050565b5f6104597f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be035465ffffffffffff1690565b905090565b61046661086b565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be02919091557f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff909216919091179055565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b60605f7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be006001810180546040805160208084028201810190925282815293945083018282801561059c57602002820191905f5260205f20905b815481526020019060010190808311610588575b505050505091505090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156105f85760018160011c14303b106105ef5763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610602886108a0565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be008061062f888a83610ee3565b5061063e60018201878761092e565b506002810184905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff841617905580156106ae576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b5050505050505050565b5f610459610905565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b61070261086b565b61070b5f6108a0565b565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00805460609190819061073f90610e46565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90610e46565b801561059c5780601f1061078d5761010080835404028352916020019161059c565b820191905f5260205f20905b8154815290600101906020018083116107995750939695505050505050565b5f6104597f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be025490565b61080560405180606001604052806060815260200160608152602001606081525090565b90565b61081061086b565b63389a75e1600c52805f526020600c20805442111561083657636f5e88185f526004601cfd5b5f9055610842816108a0565b50565b61084d61086b565b8060601b61086257637448fbae5f526004601cfd5b610842816108a0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461070b576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f6104597fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275490565b828054828255905f5260205f20908101928215610967579160200282015b8281111561096757823582559160200191906001019061094c565b50610973929150610977565b5090565b5b80821115610973575f8155600101610978565b5f6020828403121561099b575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146109ca575f5ffd5b9392505050565b803565ffffffffffff811681146109e6575f5ffd5b919050565b5f5f604083850312156109fc575f5ffd5b82359150610a0c602084016109d1565b90509250929050565b602080825282518282018190525f918401906040840190835b81811015610a4c578351835260209384019390920191600101610a2e565b509095945050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146109e6575f5ffd5b5f5f83601f840112610a8a575f5ffd5b50813567ffffffffffffffff811115610aa1575f5ffd5b602083019150836020828501011115610ab8575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215610ad5575f5ffd5b610ade88610a57565b9650602088013567ffffffffffffffff811115610af9575f5ffd5b610b058a828b01610a7a565b909750955050604088013567ffffffffffffffff811115610b24575f5ffd5b8801601f81018a13610b34575f5ffd5b803567ffffffffffffffff811115610b4a575f5ffd5b8a60208260051b8401011115610b5e575f5ffd5b6020919091019450925060608801359150610b7b608089016109d1565b905092959891949750929550565b5f5f60208385031215610b9a575f5ffd5b823567ffffffffffffffff811115610bb0575f5ffd5b610bbc85828601610a7a565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8151808452602084019350602083015f5b82811015610c9d5781517fffffffff00000000000000000000000000000000000000000000000000000000815116875263ffffffff602082015116602088015260408101511515604088015260608101511515606088015250608086019550602082019150600181019050610c2d565b5093949350505050565b5f8151808452602084019350602083015f5b82811015610c9d5781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101610cb9565b602080825282516060838301528051608084018190525f929190910190829060a08501905b80831015610d7e5783517fffffffff00000000000000000000000000000000000000000000000000000000815116835260208101511515602084015260408101511515604084015250606082019150602084019350600183019250610d1e565b50602086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0858203016040860152610dba8184610c1b565b9250505060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016060850152610df78282610ca7565b95945050505050565b5f60208284031215610e10575f5ffd5b6109ca82610a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680610e5a57607f821691505b602082108103610e91577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610ede57805f5260205f20601f840160051c81016020851015610ebc5750805b601f840160051c820191505b81811015610edb575f8155600101610ec8565b50505b505050565b67ffffffffffffffff831115610efb57610efb610e19565b610f0f83610f098354610e46565b83610e97565b5f601f841160018114610f5f575f8515610f295750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610edb565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b82811015610fac5786850135825560209485019460019092019101610f8c565b5086821015610fe7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b018355505050505056";
475
+ "0x6080604052348015600e575f5ffd5b506111b08061001c5f395ff3fe608060405260043610610140575f3560e01c80636d61fe70116100bb578063a41c85be11610071578063f04e283e11610057578063f04e283e1461032f578063f2fde38b14610342578063fee81cf414610355575f5ffd5b8063a41c85be146102ec578063ae5628c61461030e575f5ffd5b80638a91b0e3116100a15780638a91b0e3146102725780638da5cb5b14610298578063a1308f27146102cb575f5ffd5b80636d61fe7014610272578063715018a614610290575f5ffd5b80632e7ad41f11610110578063452c04b1116100f6578063452c04b11461021257806354d1f13d1461024b578063690d832014610253575f5ffd5b80632e7ad41f146101d257806336edab1f146101f3575f5ffd5b806301ffc9a71461014c5780630a88fcad146101805780632382f046146101ab57806325692962146101ca575f5ffd5b36610148575b005b5f5ffd5b348015610157575f5ffd5b5061016b610166366004610b42565b610386565b60405190151581526020015b60405180910390f35b34801561018b575f5ffd5b5061019461046a565b60405165ffffffffffff9091168152602001610177565b3480156101b6575f5ffd5b506101466101c5366004610ba2565b6104a0565b610146610581565b3480156101dd575f5ffd5b506101e66105ce565b6040516101779190610bcc565b3480156101fe575f5ffd5b5061014661020d366004610c76565b610646565b34801561021d575f5ffd5b50610226610757565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610177565b610146610760565b34801561025e575f5ffd5b5061014661026d366004610d40565b610799565b34801561027d575f5ffd5b5061014661028c366004610d59565b5050565b610146610875565b3480156102a3575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610226565b3480156102d6575f5ffd5b506102df610888565b6040516101779190610d98565b3480156102f7575f5ffd5b50610300610933565b604051908152602001610177565b348015610319575f5ffd5b5061032261095c565b6040516101779190610ec9565b61014661033d366004610d40565b610983565b610146610350366004610d40565b6109c0565b348015610360575f5ffd5b5061030061036f366004610d40565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fae5628c600000000000000000000000000000000000000000000000000000000148061041857507fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b400000000000000000000000000000000000000000000000000000000145b8061046457507fffffffff0000000000000000000000000000000000000000000000000000000082167fc5c2a9bd00000000000000000000000000000000000000000000000000000000145b92915050565b5f61049b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be035465ffffffffffff1690565b905090565b6104a86109e6565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be028290557f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff831690811790915560408051848152602081019290925280517f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00927f98dae91994793f47b29bee1a4ebfd76c60d7b1c071e23c6926cff278ebac379892908290030190a1505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b60605f7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be006001810180546040805160208084028201810190925282815293945083018282801561063b57602002820191905f5260205f20905b815481526020019060010190808311610627575b505050505091505090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156106975760018160011c14303b1061068e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b506106a188610a1b565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00806106ce888a8361109a565b506106dd600182018787610ae5565b506002810184905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff8416179055801561074d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b5050505050505050565b5f61049b610a80565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6107a16109e6565b73ffffffffffffffffffffffffffffffffffffffff81166107e5576107e57fd92e233d00000000000000000000000000000000000000000000000000000000610aa9565b475f819003610817576108177fbbd8170800000000000000000000000000000000000000000000000000000000610aa9565b6108218282610ab1565b8173ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658260405161086991815260200190565b60405180910390a25050565b61087d6109e6565b6108865f610a1b565b565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0080546060919081906108ba90610ffd565b80601f01602080910402602001604051908101604052809291908181526020018280546108e690610ffd565b801561063b5780601f106109085761010080835404028352916020019161063b565b820191905f5260205f20905b8154815290600101906020018083116109145750939695505050505050565b5f61049b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be025490565b61098060405180606001604052806060815260200160608152602001606081525090565b90565b61098b6109e6565b63389a75e1600c52805f526020600c2080544211156109b157636f5e88185f526004601cfd5b5f90556109bd81610a1b565b50565b6109c86109e6565b8060601b6109dd57637448fbae5f526004601cfd5b6109bd81610a1b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610886576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f61049b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275490565b805f5260045ffd5b61028c73ffffffffffffffffffffffffffffffffffffffff8316825f385f3884865af161028c5763b12d13eb5f526004601cfd5b828054828255905f5260205f20908101928215610b1e579160200282015b82811115610b1e578235825591602001919060010190610b03565b50610b2a929150610b2e565b5090565b5b80821115610b2a575f8155600101610b2f565b5f60208284031215610b52575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b81575f5ffd5b9392505050565b803565ffffffffffff81168114610b9d575f5ffd5b919050565b5f5f60408385031215610bb3575f5ffd5b82359150610bc360208401610b88565b90509250929050565b602080825282518282018190525f918401906040840190835b81811015610c03578351835260209384019390920191600101610be5565b509095945050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b9d575f5ffd5b5f5f83601f840112610c41575f5ffd5b50813567ffffffffffffffff811115610c58575f5ffd5b602083019150836020828501011115610c6f575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215610c8c575f5ffd5b610c9588610c0e565b9650602088013567ffffffffffffffff811115610cb0575f5ffd5b610cbc8a828b01610c31565b909750955050604088013567ffffffffffffffff811115610cdb575f5ffd5b8801601f81018a13610ceb575f5ffd5b803567ffffffffffffffff811115610d01575f5ffd5b8a60208260051b8401011115610d15575f5ffd5b6020919091019450925060608801359150610d3260808901610b88565b905092959891949750929550565b5f60208284031215610d50575f5ffd5b610b8182610c0e565b5f5f60208385031215610d6a575f5ffd5b823567ffffffffffffffff811115610d80575f5ffd5b610d8c85828601610c31565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8151808452602084019350602083015f5b82811015610e6d5781517fffffffff00000000000000000000000000000000000000000000000000000000815116875263ffffffff602082015116602088015260408101511515604088015260608101511515606088015250608086019550602082019150600181019050610dfd565b5093949350505050565b5f8151808452602084019350602083015f5b82811015610e6d5781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101610e89565b602080825282516060838301528051608084018190525f929190910190829060a08501905b80831015610f4e5783517fffffffff00000000000000000000000000000000000000000000000000000000815116835260208101511515602084015260408101511515604084015250606082019150602084019350600183019250610eee565b50602086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0858203016040860152610f8a8184610deb565b9250505060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016060850152610fc78282610e77565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061101157607f821691505b602082108103611048577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561109557805f5260205f20601f840160051c810160208510156110735750805b601f840160051c820191505b81811015611092575f815560010161107f565b50505b505050565b67ffffffffffffffff8311156110b2576110b2610fd0565b6110c6836110c08354610ffd565b8361104e565b5f601f841160018114611116575f85156110e05750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611092565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156111635786850135825560209485019460019092019101611143565b508682101561119e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b018355505050505056";
411
476
 
412
477
  type SimpleAppConstructorParams =
413
478
  | [signer?: Signer]
@@ -4,6 +4,7 @@
4
4
  export * as iMockLegacyArchitectSol from "./IMockLegacyArchitect.sol";
5
5
  export * as iRuleEntitlementSol from "./IRuleEntitlement.sol";
6
6
  export * as mainnet from "./mainnet";
7
+ export * as multichain from "./multichain";
7
8
  export { Architect__factory } from "./Architect__factory";
8
9
  export { Channels__factory } from "./Channels__factory";
9
10
  export { DropFacet__factory } from "./DropFacet__factory";