@towns-protocol/generated 0.0.455 → 1.0.1

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.
@@ -6,6 +6,8 @@
6
6
  "accountModules": "0xFF45988E721b5B9b24811f94a7b082aC1aCEea6E",
7
7
  "appRegistry": "0x23a9f5AbBcC82d1E2B5C0781b1F05F2B623E2c69",
8
8
  "baseRegistry": "0x0230a9d28bc48a90d6f5e5112b24319ec1b14c52",
9
+ "l2Registrar": "0x97d5D54922a61fe503848a0f109041BBa2F33884",
10
+ "l2Resolver": "0x0E75B6fFeD832DF2d3011b34d76cF4E1612E9372",
9
11
  "riverAirdrop": "0x5cb1B2a6d413879a7A4A89f46e0621db04aa6430",
10
12
  "simpleAppBeacon": "0x52B1418e49fD2a920B428398b165f3f048A7826A",
11
13
  "space": "0x8DdfAD0259803FA140e076C636E726573df77905",
@@ -18,6 +20,12 @@
18
20
  }
19
21
  }
20
22
  },
23
+ "mainnet": {
24
+ "chainId": 1,
25
+ "addresses": {
26
+ "l1Resolver": "0x635Ed13702316b0f861C178e80263277CC5aE33b"
27
+ }
28
+ },
21
29
  "river": {
22
30
  "chainId": 6524490,
23
31
  "addresses": {
@@ -3,6 +3,8 @@ BASE_CHAIN_ID=84532
3
3
  BASE_ADDRESSES_ACCOUNT_MODULES=0xFF45988E721b5B9b24811f94a7b082aC1aCEea6E
4
4
  BASE_ADDRESSES_APP_REGISTRY=0x23a9f5AbBcC82d1E2B5C0781b1F05F2B623E2c69
5
5
  BASE_ADDRESSES_BASE_REGISTRY=0x0230a9d28bc48a90d6f5e5112b24319ec1b14c52
6
+ BASE_ADDRESSES_L2REGISTRAR=0x97d5D54922a61fe503848a0f109041BBa2F33884
7
+ BASE_ADDRESSES_L2RESOLVER=0x0E75B6fFeD832DF2d3011b34d76cF4E1612E9372
6
8
  BASE_ADDRESSES_RIVER_AIRDROP=0x5cb1B2a6d413879a7A4A89f46e0621db04aa6430
7
9
  BASE_ADDRESSES_SIMPLE_APP_BEACON=0x52B1418e49fD2a920B428398b165f3f048A7826A
8
10
  BASE_ADDRESSES_SPACE=0x8DdfAD0259803FA140e076C636E726573df77905
@@ -11,5 +13,7 @@ BASE_ADDRESSES_SPACE_OWNER=0x0443258849016da8Af08e2984Bce8C0ef6Cfc9A0
11
13
  BASE_ADDRESSES_SUBSCRIPTION_MODULE=0x07dd39b955F974186daFB2EDC6B4E03632E9AC75
12
14
  BASE_ADDRESSES_SWAP_ROUTER=0xE2CE9e11BF480a5b88ad4008915D97d35C5087d5
13
15
  BASE_ADDRESSES_UTILS_TOWNS=0x00000000A22C618fd6b4D7E9A335C4B96B189a38
16
+ MAINNET_CHAIN_ID=1
17
+ MAINNET_ADDRESSES_L1RESOLVER=0x635Ed13702316b0f861C178e80263277CC5aE33b
14
18
  RIVER_CHAIN_ID=6524490
15
19
  RIVER_ADDRESSES_RIVER_REGISTRY=0x44354786EacBEBf981453A05728E1653Bc3c5def
@@ -3,6 +3,8 @@ VITE_BASE_CHAIN_ID=84532
3
3
  VITE_BASE_ADDRESSES_ACCOUNT_MODULES=0xFF45988E721b5B9b24811f94a7b082aC1aCEea6E
4
4
  VITE_BASE_ADDRESSES_APP_REGISTRY=0x23a9f5AbBcC82d1E2B5C0781b1F05F2B623E2c69
5
5
  VITE_BASE_ADDRESSES_BASE_REGISTRY=0x0230a9d28bc48a90d6f5e5112b24319ec1b14c52
6
+ VITE_BASE_ADDRESSES_L2REGISTRAR=0x97d5D54922a61fe503848a0f109041BBa2F33884
7
+ VITE_BASE_ADDRESSES_L2RESOLVER=0x0E75B6fFeD832DF2d3011b34d76cF4E1612E9372
6
8
  VITE_BASE_ADDRESSES_RIVER_AIRDROP=0x5cb1B2a6d413879a7A4A89f46e0621db04aa6430
7
9
  VITE_BASE_ADDRESSES_SIMPLE_APP_BEACON=0x52B1418e49fD2a920B428398b165f3f048A7826A
8
10
  VITE_BASE_ADDRESSES_SPACE=0x8DdfAD0259803FA140e076C636E726573df77905
@@ -11,5 +13,7 @@ VITE_BASE_ADDRESSES_SPACE_OWNER=0x0443258849016da8Af08e2984Bce8C0ef6Cfc9A0
11
13
  VITE_BASE_ADDRESSES_SUBSCRIPTION_MODULE=0x07dd39b955F974186daFB2EDC6B4E03632E9AC75
12
14
  VITE_BASE_ADDRESSES_SWAP_ROUTER=0xE2CE9e11BF480a5b88ad4008915D97d35C5087d5
13
15
  VITE_BASE_ADDRESSES_UTILS_TOWNS=0x00000000A22C618fd6b4D7E9A335C4B96B189a38
16
+ VITE_MAINNET_CHAIN_ID=1
17
+ VITE_MAINNET_ADDRESSES_L1RESOLVER=0x635Ed13702316b0f861C178e80263277CC5aE33b
14
18
  VITE_RIVER_CHAIN_ID=6524490
15
19
  VITE_RIVER_ADDRESSES_RIVER_REGISTRY=0x44354786EacBEBf981453A05728E1653Bc3c5def
@@ -0,0 +1,3 @@
1
+ {
2
+ "address": "0x97d5D54922a61fe503848a0f109041BBa2F33884"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "address": "0x0E75B6fFeD832DF2d3011b34d76cF4E1612E9372"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "address": "0x635Ed13702316b0f861C178e80263277CC5aE33b"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "id": 1
3
+ }
@@ -1 +1 @@
1
- fce6af64078affaadc8f896aa270579907f41eb1:1ddd38ad39d7c07327fc4ca5b7aa5f898bf3c997
1
+ f048d1e28e669af0d7e615a9f78e063174d363ff:1ddd38ad39d7c07327fc4ca5b7aa5f898bf3c997
@@ -2357,7 +2357,7 @@ const _abi = [
2357
2357
  ] as const;
2358
2358
 
2359
2359
  const _bytecode =
2360
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6158b3806100ca5f395ff3fe608060405260043610610178575f3560e01c806379dda585116100d157806393b13cb71161007c578063a5a4103111610057578063a5a41031146103f5578063df9a9fe614610409578063e847abdd14610428575f5ffd5b806393b13cb7146103a157806395d600c8146103c257806397fb7c1e146103d6575f5ffd5b80638120f0ba116100ac5780638120f0ba1461034257806383f3f0dc1461036f5780638c625b061461038e575f5ffd5b806379dda585146102fc5780637c9669ac146103105780637d0567c414610323575f5ffd5b80635803909f11610131578063686f76841161010c578063686f7684146102b657806369d5f38a146102c9578063706b8e09146102e8575f5ffd5b80635803909f1461023f5780635becd24a1461025e578063657e45e81461027d575f5ffd5b806317c957091161016157806317c95709146101c4578063280a47c7146102185780633e9491a21461022b575f5ffd5b80630ef1be5f1461017c5780631278076a1461019d575b5f5ffd5b348015610187575f5ffd5b5061019b610196366004614bcd565b61043c565b005b3480156101a8575f5ffd5b506101b16104f1565b6040519081526020015b60405180910390f35b3480156101cf575f5ffd5b506101b16101de366004614c0c565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019b610226366004614c23565b610566565b348015610236575f5ffd5b506101b1610652565b34801561024a575f5ffd5b506101b1610259366004614c0c565b6106bc565b348015610269575f5ffd5b5061019b610278366004614c0c565b610734565b348015610288575f5ffd5b506102916108ae565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b61019b6102c4366004614c98565b6108bc565b3480156102d4575f5ffd5b5061019b6102e3366004614c0c565b610900565b3480156102f3575f5ffd5b506101b1610a0f565b348015610307575f5ffd5b50610291610a18565b61019b61031e366004614c0c565b610a57565b34801561032e575f5ffd5b5061019b61033d366004614ceb565b610a9a565b34801561034d575f5ffd5b50610356610b54565b60405167ffffffffffffffff90911681526020016101bb565b34801561037a575f5ffd5b5061019b610389366004614d1b565b610b5d565b61019b61039c366004614ceb565b610bd7565b3480156103ac575f5ffd5b506103b5610c0a565b6040516101bb9190614d82565b3480156103cd575f5ffd5b506101b1610c14565b3480156103e1575f5ffd5b5061019b6103f0366004614c0c565b610c3d565b348015610400575f5ffd5b506101b1610d27565b348015610414575f5ffd5b5061019b610423366004614ceb565b610d97565b348015610433575f5ffd5b50610291610e70565b610444610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104af576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104ed82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f6992505050565b5050565b5f5f6105466105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f94565b9050805f03610556575f91505090565b61055f816110a2565b5092915050565b3068929eee149b4bd2126854036105845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105a3576105a3614d94565b036105cf5773ffffffffffffffffffffffffffffffffffffffff8235166105c9816110c0565b50610641565b60018360018111156105e3576105e3614d94565b036106185773ffffffffffffffffffffffffffffffffffffffff8235166020830135830161061182826111a6565b5050610641565b6106417f3be01969000000000000000000000000000000000000000000000000000000006112ce565b3868929eee149b4bd2126855505050565b5f5f61065c6112d6565b905073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146106b5576106af73ffffffffffffffffffffffffffffffffffffffff82163061132d565b91505090565b4791505090565b5f5f6107128361070d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611360565b9050805f0361072357505f92915050565b61072c816110a2565b509392505050565b61073c610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b5f6107cb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906107db57508082115b15610809576108097fc3983b91000000000000000000000000000000000000000000000000000000006112ce565b610812826113de565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60782905560405182907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6108b76112d6565b905090565b3068929eee149b4bd2126854036108da5763ab143c065f526004601cfd5b3068929eee149b4bd21268556108f082826111a6565b3868929eee149b4bd21268555050565b610908610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096e576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156109f6575f5ffd5b505af1158015610a08573d5f5f3e3d5ffd5b5050505050565b5f6108b7611482565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd212685403610a755763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a8b338261154d565b3868929eee149b4bd212685550565b610aa2610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b08576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610b11816117b3565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f14b7cb0621729ad169b573c8b04f2ba383bf36b3724f2e2809df566f45df16ec905f90a250565b5f6108b76119c9565b610b65610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610bd481611a89565b50565b3068929eee149b4bd212685403610bf55763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a8b816110c0565b60606108b7611b04565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610c45610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610cff81610cfa7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611bb6565b610bd4817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610d776105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610d87575f91505090565b610d90816110a2565b9392505050565b610d9f610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610e0e81611be7565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610f45573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190614dd1565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104ed8282614eb2565b5f5f610fd47fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610ff957505f92915050565b5f611002611482565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190614fc9565b949350505050565b5f5f6110ad83611d20565b90506110b9818461500d565b9150915091565b6110c981611e1c565b5f6110d2611f12565b90505f6110dd6112d6565b90505f6110ee828460400151611fe7565b90505f6111358561112f7f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338960405180602001604052805f8152506120ac565b846120de565b90505f5f6111498733858960400151612275565b915091508061119d5781156111935785606001516111715761116c83885f6122f0565b61117b565b61117b8387612312565b61118583886124b3565b61118e87612503565b61119d565b61119d8388612612565b50505050505050565b6111af82611e1c565b5f6111b8611f12565b90505f6111c36112d6565b90505f6111d4828460400151611fe7565b90506111e08585612669565b5f846040516020016111f29190615067565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f61125a88611254843383886120ac565b866120de565b90505f5f61126e8a33858b60400151612275565b91509150806112c25781156112b857876060015161129657611291838b5f6122f0565b6112a0565b6112a08389612704565b6112aa838b6124b3565b6112b38a612503565b6112c2565b6112c2838b612612565b50505050505050505050565b805f5260045ffd5b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff168061132a575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b90565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826113b985610f94565b9050815f036113cc5792506113d8915050565b81811890821102189150505b92915050565b6113e6610a18565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114529190614fc9565b811115610bd457610bd47fc3983b91000000000000000000000000000000000000000000000000000000006112ce565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156114d95760070154919050565b6114e1610a18565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611529573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190614fc9565b5f611557826128e7565b905073ffffffffffffffffffffffffffffffffffffffff811661159d5761159d7f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f6115a66119c9565b67ffffffffffffffff1690505f6116028461070d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f61160d6112d6565b9050815f036116485761163673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3088346128f2565b611640858461294a565b505050505050565b5f5f611653846110a2565b90925090507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8416016116f657348211156116c6576116c67f34a7a93d000000000000000000000000000000000000000000000000000000006112ce565b6116d1838583612a78565b5f6116dc833461513a565b905080156116f0576116f084308b846128f2565b50611744565b341561172e576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611739838984612acb565b611744838583612a78565b604080518581526020810183905273ffffffffffffffffffffffffffffffffffffffff8516917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a261179f8683612baf565b6117a9878661294a565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811615806117ff575073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b61196357604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101205f6118b37fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663146516df836040518263ffffffff1660e01b81526004016118ed91815260200190565b60e060405180830381865afa158015611908573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192c9190615235565b90508060800151611960576119607f212be89d000000000000000000000000000000000000000000000000000000006112ce565b50505b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f81900361132a57611a1d610a18565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a65573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b791906152d5565b611a9281612c4d565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611b3590614e19565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6190614e19565b8015611bac5780601f10611b8357610100808354040283529160200191611bac565b820191905f5260205f20905b815481529060010190602001808311611b8f57829003601f168201915b5050505050905090565b808210156104ed576104ed7fccc9aa2e000000000000000000000000000000000000000000000000000000006112ce565b73ffffffffffffffffffffffffffffffffffffffff8116611c2b57611c2b7f0e88bf4b000000000000000000000000000000000000000000000000000000006112ce565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf391906152f0565b610bd457610bd47f0e88bf4b000000000000000000000000000000000000000000000000000000006112ce565b5f5f611d32611d2d6112d6565b612d43565b9050611d727fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fecad870d000000000000000000000000000000000000000000000000000000008152600481018390525f602482018190526044820186905260806064830152608482015273ffffffffffffffffffffffffffffffffffffffff919091169063ecad870d9060a401602060405180830381865afa158015611df8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d909190614fc9565b73ffffffffffffffffffffffffffffffffffffffff8116611e6057611e607f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f611e897fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611ee4575080611ee17f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104ed576104ed7f7efcdb49000000000000000000000000000000000000000000000000000000006112ce565b611f3b60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b5f611f877f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611f9382610f94565b90505f611f9e611482565b9050815f03611fad5750505090565b81845282811115611fbe5750505090565b5f5f611fc9846110a2565b60016060890152604088019190915260208701525093949350505050565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff84160161205d5781341015612056576120567fb1296a8a000000000000000000000000000000000000000000000000000000006112ce565b50346113d8565b3415612095576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156120a6576120a6833384612acb565b50919050565b6060848484846040516020016120c59493929190615309565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208201524360348201525f9081906054016040516020818303038152906040528051906020012090506121bd81612191838861214486612e1e565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092909190829061221e90614e19565b9050111561224f5761224f7ff82e65c3000000000000000000000000000000000000000000000000000000006112ce565b8061225a8782614eb2565b50841561226b5761226b8486612e64565b5050509392505050565b5f5f5f6122b66040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612ecc565b90506122c28188613064565b156122d45760015f92509250506122e7565b6122e1818888888861327f565b92509250505b94509492505050565b6122fa83826133eb565b61230383613449565b61230d8282612baf565b505050565b5f5f61231d846134a1565b805461232890614e19565b80601f016020809104026020016040519081016040528092919081815260200182805461235490614e19565b801561239f5780601f106123765761010080835404028352916020019161239f565b820191905f5260205f20905b81548152906001019060200180831161238257829003601f168201915b50505050508060200190518101906123b79190615421565b50919350909150507fffffffff0000000000000000000000000000000000000000000000000000000082167f8c625b060000000000000000000000000000000000000000000000000000000014612431576124317fda6153bd000000000000000000000000000000000000000000000000000000006112ce565b5f61243a6112d6565b905061244e81855f01518660200151612a78565b8351602080860151604080519384529183015273ffffffffffffffffffffffffffffffffffffffff8316917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a2610a08858386604001516122f0565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561230d576124f083826133eb565b61230d6124fb6112d6565b3084846128f2565b5f61252c7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506125b0816125806105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6125bb8260016134f4565b6125cc816125c76119c9565b61294a565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61261b82613449565b61262582826124b3565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b73ffffffffffffffffffffffffffffffffffffffff82166126906040830160208401614ceb565b73ffffffffffffffffffffffffffffffffffffffff1614806126d65750336126be6040830160208401614ceb565b73ffffffffffffffffffffffffffffffffffffffff16145b156104ed576104ed7f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f5f5f5f612711866134a1565b805461271c90614e19565b80601f016020809104026020016040519081016040528092919081815260200182805461274890614e19565b80156127935780601f1061276a57610100808354040283529160200191612793565b820191905f5260205f20905b81548152906001019060200180831161277657829003601f168201915b50505050508060200190518101906127ab9190615421565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612827576128277fda6153bd000000000000000000000000000000000000000000000000000000006112ce565b5f8180602001905181019061283c91906154a5565b90505f6128476112d6565b905061285b81885f01518960200151612a78565b8151875161286a91839161350d565b6128828186846020015185604001518b5f0151613630565b8651602080890151604080519384529183015273ffffffffffffffffffffffffffffffffffffffff8316917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a26117a9888589604001516122f0565b5f6113d88183613730565b80156129445773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461293a576129358484848461373b565b612944565b61294482826137cf565b50505050565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061299057505f5b156129ca576040517ff7d2131a000000000000000000000000000000000000000000000000000000008152600481018590526024016104a6565b5f428267ffffffffffffffff1611156129ee576129e7848361554d565b90506129fb565b6129f8844261554d565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b612944612ab97fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b612ac285612d43565b338686866137ef565b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff841601612b0d57505050565b5f612b2e73ffffffffffffffffffffffffffffffffffffffff85163061132d565b9050612b5273ffffffffffffffffffffffffffffffffffffffff8516843085613964565b5f612b7373ffffffffffffffffffffffffffffffffffffffff86163061132d565b905082612b80838361513a565b1015610a0857610a087fb1296a8a000000000000000000000000000000000000000000000000000000006112ce565b805f03612bba575050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612bd76112d6565b73ffffffffffffffffffffffffffffffffffffffff1614612bf6575050565b5f612bff6139c6565b90505f612c2e825f85604051602001612c1a91815260200190565b604051602081830303815290604052613a99565b9050612c3b828583613aef565b61294482612c47610eaf565b83613aef565b5f612c56610a18565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc291906152d5565b67ffffffffffffffff1690508167ffffffffffffffff165f03612d0857612d087f82323d2e000000000000000000000000000000000000000000000000000000006112ce565b808267ffffffffffffffff1611156104ed576104ed7f82323d2e000000000000000000000000000000000000000000000000000000006112ce565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff831601612da857507f7bf182fc45d83735258e0907e7fbae2ced2b54cf5d36bf3f9c30097bec3e88f5919050565b604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101206113d8565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612e598361556d565b909155509392505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612ec290849061500d565b9091555050505050565b60605f612ed7613b6e565b80519091505f8167ffffffffffffffff811115612ef657612ef6614dec565b604051908082528060200260200182016040528015612f5957816020015b612f466040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612f145790505b50855160208701209091505f90815b84811015613058575f5f5f5f612f968a8681518110612f8957612f896155a4565b6020026020010151613b99565b93509350935093505f5b82518110156130485786838281518110612fbc57612fbc6155a4565b60200260200101518051906020012003613040576040518060a001604052808c8881518110612fed57612fed6155a4565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110613024576130246155a4565b6020026020010181905250876130399061556d565b9750613048565b600101612fa0565b5050505050806001019050612f68565b50508152949350505050565b5f5f61306f83613c85565b90505f5b84518110156132755784818151811061308e5761308e6155a4565b60200260200101516040015161326d575f5b8582815181106130b2576130b26155a4565b6020026020010151608001515181101561326b575f8683815181106130d9576130d96155a4565b60200260200101516080015182815181106130f6576130f66155a4565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613149573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061316d91906152f0565b15801561325057508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506040516020016131db91906155d1565b6040516020818303038152906040526131f3906155e7565b6040518463ffffffff1660e01b815260040161321193929190615629565b602060405180830381865afa15801561322c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061325091906152f0565b156132625760019450505050506113d8565b506001016130a0565b505b600101613073565b505f949350505050565b5f5f5f5f5b88518110156133dc5788818151811061329f5761329f6155a4565b6020026020010151604001516133d4575f5b8982815181106132c3576132c36155a4565b602002602001015160800151518110156133d2575f8a83815181106132ea576132ea6155a4565b6020026020010151608001518281518110613307576133076155a4565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561335a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061337e91906152f0565b156133c9576133c08a8a8a848f888151811061339c5761339c6155a4565b60200260200101515f01516133af6112d6565b8a6133ba578d613ef9565b5f613ef9565b60019350600194505b506001016132b1565b505b600101613284565b505f9250509550959350505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612ec290849061513a565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104ed905f614b3d565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610d90565b6104ed828260405180602001604052805f815250614244565b73ffffffffffffffffffffffffffffffffffffffff821661352d57505050565b5f61356c7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690635cb4f54890602401608060405180830381865afa1580156135d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135fc9190615694565b905080604001515f0361360f5750505050565b5f61361e83836040015161430c565b9050610a0885308460200151846128f2565b8151156136a0575f61364183614358565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061366d57506020810151155b156136785750610a08565b5f61368783836020015161430c565b905061369987308460400151846128f2565b5050610a08565b73ffffffffffffffffffffffffffffffffffffffff831615610a08578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160315610a08575f6137228261371d7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b61430c565b9050611640863086846128f2565b5f610d908383614400565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156129445773ffffffffffffffffffffffffffffffffffffffff831630146137ae5761293573ffffffffffffffffffffffffffffffffffffffff8516848484613964565b61294473ffffffffffffffffffffffffffffffffffffffff8516838361453b565b6104ed73ffffffffffffffffffffffffffffffffffffffff83168261458e565b5f815f036137fe57505f61395a565b73ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14806138515761385173ffffffffffffffffffffffffffffffffffffffff861689856145a7565b8773ffffffffffffffffffffffffffffffffffffffff16639c65a60d82613878575f61387a565b845b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152600481018b905273ffffffffffffffffffffffffffffffffffffffff808b16602483015260448201899052891660648201526084810187905260c060a48201525f60c482015260e40160206040518083038185885af115801561390b573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906139309190614fc9565b9150806139585761395873ffffffffffffffffffffffffffffffffffffffff8616895f614639565b505b9695505050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166139b857803d873b1517106139b857637939f4245f526004601cfd5b505f60605260405250505050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613a75573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b79190614dd1565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde9061105b908690869060040161570e565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b158015613b5c575f5ffd5b505af115801561119d573d5f5f3e3d5ffd5b60606108b77f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614682565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190613bdb90614e19565b80601f0160208091040260200160405190810160405280929190818152602001828054613c0790614e19565b8015613c525780601f10613c2957610100808354040283529160200191613c52565b820191905f5260205f20905b815481529060010190602001808311613c3557829003601f168201915b5050505060018301549196505060ff169350613c706002820161468e565b9250613c7b81614765565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613d1c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613d619190810190615736565b905080515f03613ed2576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613dd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dfc9190614dd1565b905073ffffffffffffffffffffffffffffffffffffffff811615613ed0576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613e88573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613ecd9190810190615736565b91505b505b613edb81614774565b92506001835101835283604051526020604051016040525050919050565b73ffffffffffffffffffffffffffffffffffffffff8716613f3d57613f3d7f99ef0388000000000000000000000000000000000000000000000000000000006112ce565b73ffffffffffffffffffffffffffffffffffffffff8416613f8157613f817f4bb7c205000000000000000000000000000000000000000000000000000000006112ce565b5f8581527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff166140475780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560038101805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555b81546040805173ffffffffffffffffffffffffffffffffffffffff8c811660208301529181018a905260608101889052868216608082015260a081018690528a821660c08201529116905f9060e001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff87160161418d576040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc618890879061415a9060029086906004016157ea565b5f604051808303818588803b158015614171575f5ffd5b505af1158015614183573d5f5f3e3d5ffd5b5050505050614237565b84156141b4576141b473ffffffffffffffffffffffffffffffffffffffff871683876145a7565b6040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc6188906142099060029085906004016157ea565b5f604051808303815f87803b158015614220575f5ffd5b505af1158015614232573d5f5f3e3d5ffd5b505050505b5050505050505050505050565b61424e8383614782565b73ffffffffffffffffffffffffffffffffffffffff83163b1561230d577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b6142a35f868380600101945086614937565b6142d9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061429157817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005414610a08575f5ffd5b5f612710821115614341576143417f197f19620000000000000000000000000000000000000000000000000000000083614aa9565b61271061434e83856157fb565b610d909190615812565b6143906040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f81831161450957505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361450757815f0361450157805483106144c0576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f818152600484016020526040902054909290915081156144c1575b506113d8565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661458457803d853b151710614584576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104ed5763b12d13eb5f526004601cfd5b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661458457803d853b151710614584575f6034526f095ea7b30000000000000000000000005f525f38604460105f885af1508160345260205f604460105f885af190508060015f51141661458457803d853b15171061458457633e3f8f735f526004601cfd5b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661458457803d853b15171061458457633e3f8f735f526004601cfd5b60605f610d9083614ab5565b6060815f01805480602002602001604051908101604052809291908181526020015f905b8282101561475a578382905f5260205f200180546146cf90614e19565b80601f01602080910402602001604051908101604052809291908181526020018280546146fb90614e19565b80156147465780601f1061471d57610100808354040283529160200191614746565b820191905f5260205f20905b81548152906001019060200180831161472957829003601f168201915b5050505050815260200190600101906146b2565b505050509050919050565b60605f610d9083600401614682565b60606113d861132a83614b0e565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f8290036147de576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146148d55780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa460010161489f565b50815f0361490f576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061499190339089908890889060040161584a565b6020604051808303815f875af19250505080156149e9575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526149e69181019061589a565b60015b614a5e573d808015614a16576040519150601f19603f3d011682016040523d82523d5f602084013e614a1b565b606091505b5080515f03614a56576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061109a565b815f528060045260245ffd5b6060815f01805480602002602001604051908101604052809291908181526020018280548015614b0257602002820191905f5260205f20905b815481526020019060010190808311614aee575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614b20575060405250919050565b508054614b4990614e19565b5f825580601f10614b58575050565b601f0160209004905f5260205f2090610bd491905f5b80821115614b83575f81840155600101614b6e565b505090565b5f5f83601f840112614b98575f5ffd5b50813567ffffffffffffffff811115614baf575f5ffd5b602083019150836020828501011115614bc6575f5ffd5b9250929050565b5f5f60208385031215614bde575f5ffd5b823567ffffffffffffffff811115614bf4575f5ffd5b614c0085828601614b88565b90969095509350505050565b5f60208284031215614c1c575f5ffd5b5035919050565b5f5f5f60408486031215614c35575f5ffd5b833560028110614c43575f5ffd5b9250602084013567ffffffffffffffff811115614c5e575f5ffd5b614c6a86828701614b88565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bd4575f5ffd5b5f5f60408385031215614ca9575f5ffd5b8235614cb481614c77565b9150602083013567ffffffffffffffff811115614ccf575f5ffd5b830160608186031215614ce0575f5ffd5b809150509250929050565b5f60208284031215614cfb575f5ffd5b8135610d9081614c77565b67ffffffffffffffff81168114610bd4575f5ffd5b5f60208284031215614d2b575f5ffd5b8135610d9081614d06565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610d906020830184614d36565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8051614dcc81614c77565b919050565b5f60208284031215614de1575f5ffd5b8151610d9081614c77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614e2d57607f821691505b6020821081036120a6577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561230d578282111561230d57805f5260205f20601f840160051c6020851015614e8f57505f5b90810190601f840160051c035f5b81811015611640575f83820155600101614e9d565b815167ffffffffffffffff811115614ecc57614ecc614dec565b614ee081614eda8454614e19565b84614e64565b6020601f821160018114614f31575f8315614efb5750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610a08565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614f7e5787850151825560209485019460019092019101614f5e565b5084821015614fba57868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614fd9575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113d8576113d8614fe0565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f823561507781614c77565b73ffffffffffffffffffffffffffffffffffffffff811660208401525060208301356150a281614c77565b73ffffffffffffffffffffffffffffffffffffffff811660408401525060408301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126150f3575f5ffd5b830160208101903567ffffffffffffffff81111561510f575f5ffd5b80360382131561511d575f5ffd5b606080850152615131608085018284615020565b95945050505050565b818103818111156113d8576113d8614fe0565b60405160e0810167ffffffffffffffff8111828210171561517057615170614dec565b60405290565b6040516060810167ffffffffffffffff8111828210171561517057615170614dec565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156151e0576151e0614dec565b604052919050565b805161ffff81168114614dcc575f5ffd5b805160038110614dcc575f5ffd5b80518015158114614dcc575f5ffd5b80516fffffffffffffffffffffffffffffffff81168114614dcc575f5ffd5b5f60e0828403128015615246575f5ffd5b5061524f61514d565b825161525a81614c77565b8152602083015165ffffffffffff81168114615274575f5ffd5b6020820152615285604084016151e8565b6040820152615296606084016151f9565b60608201526152a760808401615207565b60808201526152b860a08401615216565b60a08201526152c960c08401614dc1565b60c08201529392505050565b5f602082840312156152e5575f5ffd5b8151610d9081614d06565b5f60208284031215615300575f5ffd5b610d9082615207565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f61395a6080830184614d36565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614dcc575f5ffd5b5f5f67ffffffffffffffff8411156153c4576153c4614dec565b50601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020016153f781615199565b91505082815283838301111561540b575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215615434575f5ffd5b61543d8561537b565b9350602085015161544d81614c77565b604086015190935061545e81614c77565b606086015190925067ffffffffffffffff81111561547a575f5ffd5b8501601f8101871361548a575f5ffd5b615499878251602084016153aa565b91505092959194509250565b5f602082840312156154b5575f5ffd5b815167ffffffffffffffff8111156154cb575f5ffd5b8201606081850312156154dc575f5ffd5b6154e4615176565b81516154ef81614c77565b815260208201516154ff81614c77565b6020820152604082015167ffffffffffffffff81111561551d575f5ffd5b80830192505084601f830112615531575f5ffd5b615540858351602085016153aa565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156113d8576113d8614fe0565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361559d5761559d614fe0565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b805160208083015191908110156120a6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561568057835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161564c565b505060409390930193909352509392505050565b5f60808284031280156156a5575f5ffd5b506040516080810167ffffffffffffffff811182821017156156c9576156c9614dec565b60405282516156d781614c77565b815260208301516156e781614c77565b60208201526040838101519082015261570260608401615207565b60608201529392505050565b5f6004841061571f5761571f614d94565b8382526040602083015261109a6040830184614d36565b5f60208284031215615746575f5ffd5b815167ffffffffffffffff81111561575c575f5ffd5b8201601f8101841361576c575f5ffd5b805167ffffffffffffffff81111561578657615786614dec565b8060051b61579660208201615199565b918252602081840181019290810190878411156157b1575f5ffd5b6020850194505b838510156157df57845192506157cd83614c77565b828252602094850194909101906157b8565b979650505050505050565b5f6003841061571f5761571f614d94565b80820281158282048414176113d8576113d8614fe0565b5f82615845577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f61395a6080830184614d36565b5f602082840312156158aa575f5ffd5b610d908261537b56";
2360
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6158f5806100ca5f395ff3fe608060405260043610610178575f3560e01c806379dda585116100d157806393b13cb71161007c578063a5a4103111610057578063a5a41031146103f5578063df9a9fe614610409578063e847abdd14610428575f5ffd5b806393b13cb7146103a157806395d600c8146103c257806397fb7c1e146103d6575f5ffd5b80638120f0ba116100ac5780638120f0ba1461034257806383f3f0dc1461036f5780638c625b061461038e575f5ffd5b806379dda585146102fc5780637c9669ac146103105780637d0567c414610323575f5ffd5b80635803909f11610131578063686f76841161010c578063686f7684146102b657806369d5f38a146102c9578063706b8e09146102e8575f5ffd5b80635803909f1461023f5780635becd24a1461025e578063657e45e81461027d575f5ffd5b806317c957091161016157806317c95709146101c4578063280a47c7146102185780633e9491a21461022b575f5ffd5b80630ef1be5f1461017c5780631278076a1461019d575b5f5ffd5b348015610187575f5ffd5b5061019b610196366004614ba8565b61043c565b005b3480156101a8575f5ffd5b506101b16104f1565b6040519081526020015b60405180910390f35b3480156101cf575f5ffd5b506101b16101de366004614be7565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019b610226366004614bfe565b610566565b348015610236575f5ffd5b506101b1610652565b34801561024a575f5ffd5b506101b1610259366004614be7565b6106bc565b348015610269575f5ffd5b5061019b610278366004614be7565b610734565b348015610288575f5ffd5b506102916108ae565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b61019b6102c4366004614c73565b6108bc565b3480156102d4575f5ffd5b5061019b6102e3366004614be7565b610900565b3480156102f3575f5ffd5b506101b1610a0f565b348015610307575f5ffd5b50610291610a18565b61019b61031e366004614be7565b610a57565b34801561032e575f5ffd5b5061019b61033d366004614cc6565b610a9a565b34801561034d575f5ffd5b50610356610b54565b60405167ffffffffffffffff90911681526020016101bb565b34801561037a575f5ffd5b5061019b610389366004614cf6565b610b5d565b61019b61039c366004614cc6565b610bd7565b3480156103ac575f5ffd5b506103b5610c0a565b6040516101bb9190614d5d565b3480156103cd575f5ffd5b506101b1610c14565b3480156103e1575f5ffd5b5061019b6103f0366004614be7565b610c3d565b348015610400575f5ffd5b506101b1610d27565b348015610414575f5ffd5b5061019b610423366004614cc6565b610d97565b348015610433575f5ffd5b50610291610e70565b610444610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104af576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104ed82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f6992505050565b5050565b5f5f6105466105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f94565b9050805f03610556575f91505090565b61055f816110a2565b5092915050565b3068929eee149b4bd2126854036105845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105a3576105a3614d6f565b036105cf5773ffffffffffffffffffffffffffffffffffffffff8235166105c9816110c0565b50610641565b60018360018111156105e3576105e3614d6f565b036106185773ffffffffffffffffffffffffffffffffffffffff8235166020830135830161061182826111a6565b5050610641565b6106417f3be01969000000000000000000000000000000000000000000000000000000006112ce565b3868929eee149b4bd2126855505050565b5f5f61065c6112d6565b905073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146106b5576106af73ffffffffffffffffffffffffffffffffffffffff82163061132d565b91505090565b4791505090565b5f5f6107128361070d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611360565b9050805f0361072357505f92915050565b61072c816110a2565b509392505050565b61073c610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b5f6107cb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906107db57508082115b15610809576108097fc3983b91000000000000000000000000000000000000000000000000000000006112ce565b610812826113de565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60782905560405182907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6108b76112d6565b905090565b3068929eee149b4bd2126854036108da5763ab143c065f526004601cfd5b3068929eee149b4bd21268556108f082826111a6565b3868929eee149b4bd21268555050565b610908610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096e576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156109f6575f5ffd5b505af1158015610a08573d5f5f3e3d5ffd5b5050505050565b5f6108b7611482565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd212685403610a755763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a8b338261154d565b3868929eee149b4bd212685550565b610aa2610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b08576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610b11816117b3565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f14b7cb0621729ad169b573c8b04f2ba383bf36b3724f2e2809df566f45df16ec905f90a250565b5f6108b76119c9565b610b65610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610bd481611a89565b50565b3068929eee149b4bd212685403610bf55763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a8b816110c0565b60606108b7611b04565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610c45610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610cff81610cfa7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611bb6565b610bd4817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610d776105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610d87575f91505090565b610d90816110a2565b9392505050565b610d9f610eaf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610e0e81611be7565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6108b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610f45573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190614dac565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104ed8282614e8d565b5f5f610fd47fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610ff957505f92915050565b5f611002611482565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190614fa4565b949350505050565b5f5f6110ad83611d20565b90506110b98184614fe8565b9150915091565b6110c981611e1c565b5f6110d2611f12565b90505f6110dd6112d6565b90505f6110ee828460400151611fe7565b90505f6111358561112f7f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338960405180602001604052805f8152506120ac565b846120de565b90505f5f6111498733858960400151612275565b915091508061119d5781156111935785606001516111715761116c83885f6122f0565b61117b565b61117b8387612312565b61118583886124b3565b61118e87612503565b61119d565b61119d8388612612565b50505050505050565b6111af82611e1c565b5f6111b8611f12565b90505f6111c36112d6565b90505f6111d4828460400151611fe7565b90506111e08585612669565b5f846040516020016111f29190615042565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f61125a88611254843383886120ac565b866120de565b90505f5f61126e8a33858b60400151612275565b91509150806112c25781156112b857876060015161129657611291838b5f6122f0565b6112a0565b6112a08389612704565b6112aa838b6124b3565b6112b38a612503565b6112c2565b6112c2838b612612565b50505050505050505050565b805f5260045ffd5b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff168061132a575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b90565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826113b985610f94565b9050815f036113cc5792506113d8915050565b81811890821102189150505b92915050565b6113e6610a18565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114529190614fa4565b811115610bd457610bd47fc3983b91000000000000000000000000000000000000000000000000000000006112ce565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156114d95760070154919050565b6114e1610a18565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611529573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190614fa4565b5f611557826128e7565b905073ffffffffffffffffffffffffffffffffffffffff811661159d5761159d7f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f6115a66119c9565b67ffffffffffffffff1690505f6116028461070d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f61160d6112d6565b9050815f036116485761163673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3088346128f2565b611640858461294a565b505050505050565b5f5f611653846110a2565b90925090507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8416016116f657348211156116c6576116c67f34a7a93d000000000000000000000000000000000000000000000000000000006112ce565b6116d1838583612a78565b5f6116dc8334615115565b905080156116f0576116f084308b846128f2565b50611744565b341561172e576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611739838984612acb565b611744838583612a78565b604080518581526020810183905273ffffffffffffffffffffffffffffffffffffffff8516917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a261179f8683612baf565b6117a9878661294a565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811615806117ff575073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b61196357604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101205f6118b37fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663146516df836040518263ffffffff1660e01b81526004016118ed91815260200190565b60e060405180830381865afa158015611908573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192c9190615210565b90508060800151611960576119607f212be89d000000000000000000000000000000000000000000000000000000006112ce565b50505b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f81900361132a57611a1d610a18565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a65573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b791906152b0565b611a9281612c4d565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611b3590614df4565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6190614df4565b8015611bac5780601f10611b8357610100808354040283529160200191611bac565b820191905f5260205f20905b815481529060010190602001808311611b8f57829003601f168201915b5050505050905090565b808210156104ed576104ed7fccc9aa2e000000000000000000000000000000000000000000000000000000006112ce565b73ffffffffffffffffffffffffffffffffffffffff8116611c2b57611c2b7f0e88bf4b000000000000000000000000000000000000000000000000000000006112ce565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf391906152cb565b610bd457610bd47f0e88bf4b000000000000000000000000000000000000000000000000000000006112ce565b5f5f611d32611d2d6112d6565b612d43565b9050611d727fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fecad870d000000000000000000000000000000000000000000000000000000008152600481018390525f602482018190526044820186905260806064830152608482015273ffffffffffffffffffffffffffffffffffffffff919091169063ecad870d9060a401602060405180830381865afa158015611df8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d909190614fa4565b73ffffffffffffffffffffffffffffffffffffffff8116611e6057611e607f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f611e897fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611ee4575080611ee17f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104ed576104ed7f7efcdb49000000000000000000000000000000000000000000000000000000006112ce565b611f3b60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b5f611f877f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611f9382610f94565b90505f611f9e611482565b9050815f03611fad5750505090565b81845282811115611fbe5750505090565b5f5f611fc9846110a2565b60016060890152604088019190915260208701525093949350505050565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff84160161205d5781341015612056576120567fb1296a8a000000000000000000000000000000000000000000000000000000006112ce565b50346113d8565b3415612095576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156120a6576120a6833384612acb565b50919050565b6060848484846040516020016120c594939291906152e4565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208201524360348201525f9081906054016040516020818303038152906040528051906020012090506121bd81612191838861214486612e1e565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092909190829061221e90614df4565b9050111561224f5761224f7ff82e65c3000000000000000000000000000000000000000000000000000000006112ce565b8061225a8782614e8d565b50841561226b5761226b8486612e64565b5050509392505050565b5f5f5f6122b66040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612ecc565b90506122c28188613064565b156122d45760015f92509250506122e7565b6122e1818888888861327f565b92509250505b94509492505050565b6122fa83826133eb565b61230383613449565b61230d8282612baf565b505050565b5f5f61231d846134a1565b805461232890614df4565b80601f016020809104026020016040519081016040528092919081815260200182805461235490614df4565b801561239f5780601f106123765761010080835404028352916020019161239f565b820191905f5260205f20905b81548152906001019060200180831161238257829003601f168201915b50505050508060200190518101906123b79190615406565b50919350909150507fffffffff0000000000000000000000000000000000000000000000000000000082167f8c625b060000000000000000000000000000000000000000000000000000000014612431576124317fda6153bd000000000000000000000000000000000000000000000000000000006112ce565b5f61243a6112d6565b905061244e81855f01518660200151612a78565b8351602080860151604080519384529183015273ffffffffffffffffffffffffffffffffffffffff8316917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a2610a08858386604001516122f0565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561230d576124f083826133eb565b61230d6124fb6112d6565b3084846128f2565b5f61252c7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506125b0816125806105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6125bb8260016134f4565b6125cc816125c76119c9565b61294a565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61261b82613449565b61262582826124b3565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b73ffffffffffffffffffffffffffffffffffffffff82166126906040830160208401614cc6565b73ffffffffffffffffffffffffffffffffffffffff1614806126d65750336126be6040830160208401614cc6565b73ffffffffffffffffffffffffffffffffffffffff16145b156104ed576104ed7f5fbd5717000000000000000000000000000000000000000000000000000000006112ce565b5f5f5f5f612711866134a1565b805461271c90614df4565b80601f016020809104026020016040519081016040528092919081815260200182805461274890614df4565b80156127935780601f1061276a57610100808354040283529160200191612793565b820191905f5260205f20905b81548152906001019060200180831161277657829003601f168201915b50505050508060200190518101906127ab9190615406565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612827576128277fda6153bd000000000000000000000000000000000000000000000000000000006112ce565b5f8180602001905181019061283c919061548a565b90505f6128476112d6565b905061285b81885f01518960200151612a78565b8151875161286a91839161350d565b6128828186846020015185604001518b5f0151613630565b8651602080890151604080519384529183015273ffffffffffffffffffffffffffffffffffffffff8316917f8fed26ea05e17903891c5c2a70ac7ce2aeafbb48acf403b9defdb2c96ab2e5c3910160405180910390a26117a9888589604001516122f0565b5f6113d88183613730565b80156129445773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461293a576129358484848461373b565b612944565b61294482826137cf565b50505050565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061299057505f5b156129ca576040517ff7d2131a000000000000000000000000000000000000000000000000000000008152600481018590526024016104a6565b5f428267ffffffffffffffff1611156129ee576129e78483615532565b90506129fb565b6129f88442615532565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b612944612ab97fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b612ac285612d43565b338686866137ef565b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff841601612b0d57505050565b5f612b2e73ffffffffffffffffffffffffffffffffffffffff85163061132d565b9050612b5273ffffffffffffffffffffffffffffffffffffffff8516843085613818565b5f612b7373ffffffffffffffffffffffffffffffffffffffff86163061132d565b905082612b808383615115565b1015610a0857610a087fb1296a8a000000000000000000000000000000000000000000000000000000006112ce565b805f03612bba575050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612bd76112d6565b73ffffffffffffffffffffffffffffffffffffffff1614612bf6575050565b5f612bff61387a565b90505f612c2e825f85604051602001612c1a91815260200190565b60405160208183030381529060405261394d565b9050612c3b8285836139a3565b61294482612c47610eaf565b836139a3565b5f612c56610a18565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc291906152b0565b67ffffffffffffffff1690508167ffffffffffffffff165f03612d0857612d087f82323d2e000000000000000000000000000000000000000000000000000000006112ce565b808267ffffffffffffffff1611156104ed576104ed7f82323d2e000000000000000000000000000000000000000000000000000000006112ce565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff831601612da857507f7bf182fc45d83735258e0907e7fbae2ced2b54cf5d36bf3f9c30097bec3e88f5919050565b604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101206113d8565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612e5983615552565b909155509392505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612ec2908490614fe8565b9091555050505050565b60605f612ed7613a22565b80519091505f8167ffffffffffffffff811115612ef657612ef6614dc7565b604051908082528060200260200182016040528015612f5957816020015b612f466040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612f145790505b50855160208701209091505f90815b84811015613058575f5f5f5f612f968a8681518110612f8957612f89615589565b6020026020010151613a4d565b93509350935093505f5b82518110156130485786838281518110612fbc57612fbc615589565b60200260200101518051906020012003613040576040518060a001604052808c8881518110612fed57612fed615589565b6020026020010151815260200186815260200185151581526020018481526020018381525089898151811061302457613024615589565b60200260200101819052508761303990615552565b9750613048565b600101612fa0565b5050505050806001019050612f68565b50508152949350505050565b5f5f61306f83613b39565b90505f5b84518110156132755784818151811061308e5761308e615589565b60200260200101516040015161326d575f5b8582815181106130b2576130b2615589565b6020026020010151608001515181101561326b575f8683815181106130d9576130d9615589565b60200260200101516080015182815181106130f6576130f6615589565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613149573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061316d91906152cb565b15801561325057508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506040516020016131db91906155b6565b6040516020818303038152906040526131f3906155cc565b6040518463ffffffff1660e01b81526004016132119392919061560e565b602060405180830381865afa15801561322c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061325091906152cb565b156132625760019450505050506113d8565b506001016130a0565b505b600101613073565b505f949350505050565b5f5f5f5f5b88518110156133dc5788818151811061329f5761329f615589565b6020026020010151604001516133d4575f5b8982815181106132c3576132c3615589565b602002602001015160800151518110156133d2575f8a83815181106132ea576132ea615589565b602002602001015160800151828151811061330757613307615589565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561335a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061337e91906152cb565b156133c9576133c08a8a8a848f888151811061339c5761339c615589565b60200260200101515f01516133af6112d6565b8a6133ba578d613dad565b5f613dad565b60019350600194505b506001016132b1565b505b600101613284565b505f9250509550959350505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612ec2908490615115565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104ed905f614b18565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610d90565b6104ed828260405180602001604052805f8152506140f8565b73ffffffffffffffffffffffffffffffffffffffff821661352d57505050565b5f61356c7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690635cb4f54890602401608060405180830381865afa1580156135d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135fc9190615679565b905080604001515f0361360f5750505050565b5f61361e8383604001516141c0565b9050610a0885308460200151846128f2565b8151156136a0575f6136418361420c565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061366d57506020810151155b156136785750610a08565b5f6136878383602001516141c0565b905061369987308460400151846128f2565b5050610a08565b73ffffffffffffffffffffffffffffffffffffffff831615610a08578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160315610a08575f6137228261371d7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b6141c0565b9050611640863086846128f2565b5f610d9083836142b4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156129445773ffffffffffffffffffffffffffffffffffffffff831630146137ae5761293573ffffffffffffffffffffffffffffffffffffffff8516848484613818565b61294473ffffffffffffffffffffffffffffffffffffffff851683836143ef565b6104ed73ffffffffffffffffffffffffffffffffffffffff831682614442565b5f61380d87878787878760405180602001604052805f81525061445b565b979650505050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661386c57803d873b15171061386c57637939f4245f526004601cfd5b505f60605260405250505050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613929573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b79190614dac565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde9061105b90869086906004016156f3565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b158015613a10575f5ffd5b505af115801561119d573d5f5f3e3d5ffd5b60606108b77f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614582565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190613a8f90614df4565b80601f0160208091040260200160405190810160405280929190818152602001828054613abb90614df4565b8015613b065780601f10613add57610100808354040283529160200191613b06565b820191905f5260205f20905b815481529060010190602001808311613ae957829003601f168201915b5050505060018301549196505060ff169350613b246002820161458e565b9250613b2f81614665565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613bd0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c15919081019061571b565b905080515f03613d86576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613c8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb09190614dac565b905073ffffffffffffffffffffffffffffffffffffffff811615613d84576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613d3c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613d81919081019061571b565b91505b505b613d8f81614674565b92506001835101835283604051526020604051016040525050919050565b73ffffffffffffffffffffffffffffffffffffffff8716613df157613df17f99ef0388000000000000000000000000000000000000000000000000000000006112ce565b73ffffffffffffffffffffffffffffffffffffffff8416613e3557613e357f4bb7c205000000000000000000000000000000000000000000000000000000006112ce565b5f8581527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff16613efb5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560038101805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555b81546040805173ffffffffffffffffffffffffffffffffffffffff8c811660208301529181018a905260608101889052868216608082015260a081018690528a821660c08201529116905f9060e001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff871601614041576040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc618890879061400e9060029086906004016157c4565b5f604051808303818588803b158015614025575f5ffd5b505af1158015614037573d5f5f3e3d5ffd5b50505050506140eb565b84156140685761406873ffffffffffffffffffffffffffffffffffffffff87168387614682565b6040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc6188906140bd9060029085906004016157c4565b5f604051808303815f87803b1580156140d4575f5ffd5b505af11580156140e6573d5f5f3e3d5ffd5b505050505b5050505050505050505050565b6141028383614714565b73ffffffffffffffffffffffffffffffffffffffff83163b1561230d577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b6141575f8683806001019450866148c9565b61418d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061414557817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005414610a08575f5ffd5b5f6127108211156141f5576141f57f197f19620000000000000000000000000000000000000000000000000000000083614a3b565b61271061420283856157d5565b610d9091906157ec565b6142446040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f8183116143bd57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c0100000000000000000000000000000000000000000000000000000000831690036143bb57815f036143b55780548310614374576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115614375575b506113d8565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661443857803d853b151710614438576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104ed5763b12d13eb5f526004601cfd5b5f825f0361446a57505f61380d565b73ffffffffffffffffffffffffffffffffffffffff851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14806144bd576144bd73ffffffffffffffffffffffffffffffffffffffff87168a86614682565b8873ffffffffffffffffffffffffffffffffffffffff16639c65a60d826144e4575f6144e6565b855b8a8a898b8a8a6040518863ffffffff1660e01b815260040161450d96959493929190615824565b60206040518083038185885af1158015614529573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061454e9190614fa4565b9150806145765761457673ffffffffffffffffffffffffffffffffffffffff87168a5f614a47565b50979650505050505050565b60605f610d9083614a90565b6060815f01805480602002602001604051908101604052809291908181526020015f905b8282101561465a578382905f5260205f200180546145cf90614df4565b80601f01602080910402602001604051908101604052809291908181526020018280546145fb90614df4565b80156146465780601f1061461d57610100808354040283529160200191614646565b820191905f5260205f20905b81548152906001019060200180831161462957829003601f168201915b5050505050815260200190600101906145b2565b505050509050919050565b60605f610d9083600401614582565b60606113d861132a83614ae9565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661443857803d853b151710614438575f6034526f095ea7b30000000000000000000000005f525f38604460105f885af1508160345260205f604460105f885af190508060015f51141661443857803d853b15171061443857633e3f8f735f526004601cfd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614770576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146148675780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa4600101614831565b50815f036148a1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061492390339089908890889060040161588c565b6020604051808303815f875af192505050801561497b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252614978918101906158dc565b60015b6149f0573d8080156149a8576040519150601f19603f3d011682016040523d82523d5f602084013e6149ad565b606091505b5080515f036149e8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061109a565b815f528060045260245ffd5b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661443857803d853b15171061443857633e3f8f735f526004601cfd5b6060815f01805480602002602001604051908101604052809291908181526020018280548015614add57602002820191905f5260205f20905b815481526020019060010190808311614ac9575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614afb575060405250919050565b508054614b2490614df4565b5f825580601f10614b33575050565b601f0160209004905f5260205f2090610bd491905f5b80821115614b5e575f81840155600101614b49565b505090565b5f5f83601f840112614b73575f5ffd5b50813567ffffffffffffffff811115614b8a575f5ffd5b602083019150836020828501011115614ba1575f5ffd5b9250929050565b5f5f60208385031215614bb9575f5ffd5b823567ffffffffffffffff811115614bcf575f5ffd5b614bdb85828601614b63565b90969095509350505050565b5f60208284031215614bf7575f5ffd5b5035919050565b5f5f5f60408486031215614c10575f5ffd5b833560028110614c1e575f5ffd5b9250602084013567ffffffffffffffff811115614c39575f5ffd5b614c4586828701614b63565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bd4575f5ffd5b5f5f60408385031215614c84575f5ffd5b8235614c8f81614c52565b9150602083013567ffffffffffffffff811115614caa575f5ffd5b830160608186031215614cbb575f5ffd5b809150509250929050565b5f60208284031215614cd6575f5ffd5b8135610d9081614c52565b67ffffffffffffffff81168114610bd4575f5ffd5b5f60208284031215614d06575f5ffd5b8135610d9081614ce1565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610d906020830184614d11565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8051614da781614c52565b919050565b5f60208284031215614dbc575f5ffd5b8151610d9081614c52565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c90821680614e0857607f821691505b6020821081036120a6577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561230d578282111561230d57805f5260205f20601f840160051c6020851015614e6a57505f5b90810190601f840160051c035f5b81811015611640575f83820155600101614e78565b815167ffffffffffffffff811115614ea757614ea7614dc7565b614ebb81614eb58454614df4565b84614e3f565b6020601f821160018114614f0c575f8315614ed65750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610a08565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614f595787850151825560209485019460019092019101614f39565b5084821015614f9557868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614fb4575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113d8576113d8614fbb565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f823561505281614c52565b73ffffffffffffffffffffffffffffffffffffffff8116602084015250602083013561507d81614c52565b73ffffffffffffffffffffffffffffffffffffffff811660408401525060408301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126150ce575f5ffd5b830160208101903567ffffffffffffffff8111156150ea575f5ffd5b8036038213156150f8575f5ffd5b60608085015261510c608085018284614ffb565b95945050505050565b818103818111156113d8576113d8614fbb565b60405160e0810167ffffffffffffffff8111828210171561514b5761514b614dc7565b60405290565b6040516060810167ffffffffffffffff8111828210171561514b5761514b614dc7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156151bb576151bb614dc7565b604052919050565b805161ffff81168114614da7575f5ffd5b805160038110614da7575f5ffd5b80518015158114614da7575f5ffd5b80516fffffffffffffffffffffffffffffffff81168114614da7575f5ffd5b5f60e0828403128015615221575f5ffd5b5061522a615128565b825161523581614c52565b8152602083015165ffffffffffff8116811461524f575f5ffd5b6020820152615260604084016151c3565b6040820152615271606084016151d4565b6060820152615282608084016151e2565b608082015261529360a084016151f1565b60a08201526152a460c08401614d9c565b60c08201529392505050565b5f602082840312156152c0575f5ffd5b8151610d9081614ce1565b5f602082840312156152db575f5ffd5b610d90826151e2565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f6153566080830184614d11565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614da7575f5ffd5b5f5f67ffffffffffffffff8411156153a9576153a9614dc7565b50601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020016153dc81615174565b9150508281528383830111156153f0575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215615419575f5ffd5b61542285615360565b9350602085015161543281614c52565b604086015190935061544381614c52565b606086015190925067ffffffffffffffff81111561545f575f5ffd5b8501601f8101871361546f575f5ffd5b61547e8782516020840161538f565b91505092959194509250565b5f6020828403121561549a575f5ffd5b815167ffffffffffffffff8111156154b0575f5ffd5b8201606081850312156154c1575f5ffd5b6154c9615151565b81516154d481614c52565b815260208201516154e481614c52565b6020820152604082015167ffffffffffffffff811115615502575f5ffd5b80830192505084601f830112615516575f5ffd5b6155258583516020850161538f565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156113d8576113d8614fbb565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361558257615582614fbb565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b805160208083015191908110156120a6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561566557835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615631565b505060409390930193909352509392505050565b5f608082840312801561568a575f5ffd5b506040516080810167ffffffffffffffff811182821017156156ae576156ae614dc7565b60405282516156bc81614c52565b815260208301516156cc81614c52565b6020820152604083810151908201526156e7606084016151e2565b60608201529392505050565b5f6004841061570457615704614d6f565b8382526040602083015261109a6040830184614d11565b5f6020828403121561572b575f5ffd5b815167ffffffffffffffff811115615741575f5ffd5b8201601f81018413615751575f5ffd5b805167ffffffffffffffff81111561576b5761576b614dc7565b8060051b61577b60208201615174565b91825260208184018101929081019087841115615796575f5ffd5b6020850194505b8385101561380d57845192506157b283614c52565b8282526020948501949091019061579d565b5f6003841061570457615704614d6f565b80820281158282048414176113d8576113d8614fbb565b5f8261581f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b86815273ffffffffffffffffffffffffffffffffffffffff8616602082015284604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a08201525f61588060c0830184614d11565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f6153566080830184614d11565b5f602082840312156158ec575f5ffd5b610d908261536056";
2361
2361
 
2362
2362
  type MembershipFacetConstructorParams =
2363
2363
  | [signer?: Signer]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@towns-protocol/generated",
3
- "version": "0.0.455",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "bun ./scripts/prepare.js",
@@ -13,7 +13,7 @@
13
13
  "ethers": "^5.8.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@towns-protocol/contracts": "^0.0.455",
16
+ "@towns-protocol/contracts": "workspace:^",
17
17
  "@typechain/ethers-v5": "^11.1.2",
18
18
  "typechain": "^8.3.2"
19
19
  },
@@ -33,6 +33,5 @@
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
- },
37
- "gitHead": "9a5d511378b12fca4eb316895e0bbfe137de137b"
36
+ }
38
37
  }
package/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 River Association
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.