@towns-protocol/generated 0.0.282 → 0.0.283

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,8 @@
1
1
  [
2
+ {
3
+ "type": "receive",
4
+ "stateMutability": "payable"
5
+ },
2
6
  {
3
7
  "type": "function",
4
8
  "name": "accessDuration",
@@ -308,6 +312,19 @@
308
312
  "outputs": [],
309
313
  "stateMutability": "nonpayable"
310
314
  },
315
+ {
316
+ "type": "function",
317
+ "name": "withdrawETH",
318
+ "inputs": [
319
+ {
320
+ "name": "recipient",
321
+ "type": "address",
322
+ "internalType": "address"
323
+ }
324
+ ],
325
+ "outputs": [],
326
+ "stateMutability": "nonpayable"
327
+ },
311
328
  {
312
329
  "type": "event",
313
330
  "name": "Initialized",
@@ -366,6 +383,44 @@
366
383
  ],
367
384
  "anonymous": false
368
385
  },
386
+ {
387
+ "type": "event",
388
+ "name": "PricingUpdated",
389
+ "inputs": [
390
+ {
391
+ "name": "installPrice",
392
+ "type": "uint256",
393
+ "indexed": false,
394
+ "internalType": "uint256"
395
+ },
396
+ {
397
+ "name": "accessDuration",
398
+ "type": "uint48",
399
+ "indexed": false,
400
+ "internalType": "uint48"
401
+ }
402
+ ],
403
+ "anonymous": false
404
+ },
405
+ {
406
+ "type": "event",
407
+ "name": "Withdrawal",
408
+ "inputs": [
409
+ {
410
+ "name": "recipient",
411
+ "type": "address",
412
+ "indexed": true,
413
+ "internalType": "address"
414
+ },
415
+ {
416
+ "name": "amount",
417
+ "type": "uint256",
418
+ "indexed": false,
419
+ "internalType": "uint256"
420
+ }
421
+ ],
422
+ "anonymous": false
423
+ },
369
424
  {
370
425
  "type": "error",
371
426
  "name": "AlreadyInitialized",
@@ -381,6 +436,11 @@
381
436
  "name": "NewOwnerIsZeroAddress",
382
437
  "inputs": []
383
438
  },
439
+ {
440
+ "type": "error",
441
+ "name": "NoBalanceToWithdraw",
442
+ "inputs": []
443
+ },
384
444
  {
385
445
  "type": "error",
386
446
  "name": "NoHandoverRequest",
@@ -395,5 +455,10 @@
395
455
  "type": "error",
396
456
  "name": "Unauthorized",
397
457
  "inputs": []
458
+ },
459
+ {
460
+ "type": "error",
461
+ "name": "ZeroAddress",
462
+ "inputs": []
398
463
  }
399
464
  ]
@@ -1,4 +1,8 @@
1
1
  export default [
2
+ {
3
+ "type": "receive",
4
+ "stateMutability": "payable"
5
+ },
2
6
  {
3
7
  "type": "function",
4
8
  "name": "accessDuration",
@@ -308,6 +312,19 @@ export default [
308
312
  "outputs": [],
309
313
  "stateMutability": "nonpayable"
310
314
  },
315
+ {
316
+ "type": "function",
317
+ "name": "withdrawETH",
318
+ "inputs": [
319
+ {
320
+ "name": "recipient",
321
+ "type": "address",
322
+ "internalType": "address"
323
+ }
324
+ ],
325
+ "outputs": [],
326
+ "stateMutability": "nonpayable"
327
+ },
311
328
  {
312
329
  "type": "event",
313
330
  "name": "Initialized",
@@ -366,6 +383,44 @@ export default [
366
383
  ],
367
384
  "anonymous": false
368
385
  },
386
+ {
387
+ "type": "event",
388
+ "name": "PricingUpdated",
389
+ "inputs": [
390
+ {
391
+ "name": "installPrice",
392
+ "type": "uint256",
393
+ "indexed": false,
394
+ "internalType": "uint256"
395
+ },
396
+ {
397
+ "name": "accessDuration",
398
+ "type": "uint48",
399
+ "indexed": false,
400
+ "internalType": "uint48"
401
+ }
402
+ ],
403
+ "anonymous": false
404
+ },
405
+ {
406
+ "type": "event",
407
+ "name": "Withdrawal",
408
+ "inputs": [
409
+ {
410
+ "name": "recipient",
411
+ "type": "address",
412
+ "indexed": true,
413
+ "internalType": "address"
414
+ },
415
+ {
416
+ "name": "amount",
417
+ "type": "uint256",
418
+ "indexed": false,
419
+ "internalType": "uint256"
420
+ }
421
+ ],
422
+ "anonymous": false
423
+ },
369
424
  {
370
425
  "type": "error",
371
426
  "name": "AlreadyInitialized",
@@ -381,6 +436,11 @@ export default [
381
436
  "name": "NewOwnerIsZeroAddress",
382
437
  "inputs": []
383
438
  },
439
+ {
440
+ "type": "error",
441
+ "name": "NoBalanceToWithdraw",
442
+ "inputs": []
443
+ },
384
444
  {
385
445
  "type": "error",
386
446
  "name": "NoHandoverRequest",
@@ -395,5 +455,10 @@ export default [
395
455
  "type": "error",
396
456
  "name": "Unauthorized",
397
457
  "inputs": []
458
+ },
459
+ {
460
+ "type": "error",
461
+ "name": "ZeroAddress",
462
+ "inputs": []
398
463
  }
399
464
  ] as const
@@ -99,6 +99,7 @@ export interface SimpleAppInterface extends utils.Interface {
99
99
  "supportsInterface(bytes4)": FunctionFragment;
100
100
  "transferOwnership(address)": FunctionFragment;
101
101
  "updatePricing(uint256,uint48)": FunctionFragment;
102
+ "withdrawETH(address)": FunctionFragment;
102
103
  };
103
104
 
104
105
  getFunction(
@@ -121,6 +122,7 @@ export interface SimpleAppInterface extends utils.Interface {
121
122
  | "supportsInterface"
122
123
  | "transferOwnership"
123
124
  | "updatePricing"
125
+ | "withdrawETH"
124
126
  ): FunctionFragment;
125
127
 
126
128
  encodeFunctionData(
@@ -195,6 +197,10 @@ export interface SimpleAppInterface extends utils.Interface {
195
197
  functionFragment: "updatePricing",
196
198
  values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]
197
199
  ): string;
200
+ encodeFunctionData(
201
+ functionFragment: "withdrawETH",
202
+ values: [PromiseOrValue<string>]
203
+ ): string;
198
204
 
199
205
  decodeFunctionResult(
200
206
  functionFragment: "accessDuration",
@@ -256,18 +262,26 @@ export interface SimpleAppInterface extends utils.Interface {
256
262
  functionFragment: "updatePricing",
257
263
  data: BytesLike
258
264
  ): Result;
265
+ decodeFunctionResult(
266
+ functionFragment: "withdrawETH",
267
+ data: BytesLike
268
+ ): Result;
259
269
 
260
270
  events: {
261
271
  "Initialized(uint64)": EventFragment;
262
272
  "OwnershipHandoverCanceled(address)": EventFragment;
263
273
  "OwnershipHandoverRequested(address)": EventFragment;
264
274
  "OwnershipTransferred(address,address)": EventFragment;
275
+ "PricingUpdated(uint256,uint48)": EventFragment;
276
+ "Withdrawal(address,uint256)": EventFragment;
265
277
  };
266
278
 
267
279
  getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
268
280
  getEvent(nameOrSignatureOrTopic: "OwnershipHandoverCanceled"): EventFragment;
269
281
  getEvent(nameOrSignatureOrTopic: "OwnershipHandoverRequested"): EventFragment;
270
282
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
283
+ getEvent(nameOrSignatureOrTopic: "PricingUpdated"): EventFragment;
284
+ getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment;
271
285
  }
272
286
 
273
287
  export interface InitializedEventObject {
@@ -311,6 +325,28 @@ export type OwnershipTransferredEvent = TypedEvent<
311
325
  export type OwnershipTransferredEventFilter =
312
326
  TypedEventFilter<OwnershipTransferredEvent>;
313
327
 
328
+ export interface PricingUpdatedEventObject {
329
+ installPrice: BigNumber;
330
+ accessDuration: number;
331
+ }
332
+ export type PricingUpdatedEvent = TypedEvent<
333
+ [BigNumber, number],
334
+ PricingUpdatedEventObject
335
+ >;
336
+
337
+ export type PricingUpdatedEventFilter = TypedEventFilter<PricingUpdatedEvent>;
338
+
339
+ export interface WithdrawalEventObject {
340
+ recipient: string;
341
+ amount: BigNumber;
342
+ }
343
+ export type WithdrawalEvent = TypedEvent<
344
+ [string, BigNumber],
345
+ WithdrawalEventObject
346
+ >;
347
+
348
+ export type WithdrawalEventFilter = TypedEventFilter<WithdrawalEvent>;
349
+
314
350
  export interface SimpleApp extends BaseContract {
315
351
  connect(signerOrProvider: Signer | Provider | string): this;
316
352
  attach(addressOrName: string): this;
@@ -410,6 +446,11 @@ export interface SimpleApp extends BaseContract {
410
446
  accessDuration: PromiseOrValue<BigNumberish>,
411
447
  overrides?: Overrides & { from?: PromiseOrValue<string> }
412
448
  ): Promise<ContractTransaction>;
449
+
450
+ withdrawETH(
451
+ recipient: PromiseOrValue<string>,
452
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
453
+ ): Promise<ContractTransaction>;
413
454
  };
414
455
 
415
456
  accessDuration(overrides?: CallOverrides): Promise<number>;
@@ -485,6 +526,11 @@ export interface SimpleApp extends BaseContract {
485
526
  overrides?: Overrides & { from?: PromiseOrValue<string> }
486
527
  ): Promise<ContractTransaction>;
487
528
 
529
+ withdrawETH(
530
+ recipient: PromiseOrValue<string>,
531
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
532
+ ): Promise<ContractTransaction>;
533
+
488
534
  callStatic: {
489
535
  accessDuration(overrides?: CallOverrides): Promise<number>;
490
536
 
@@ -552,6 +598,11 @@ export interface SimpleApp extends BaseContract {
552
598
  accessDuration: PromiseOrValue<BigNumberish>,
553
599
  overrides?: CallOverrides
554
600
  ): Promise<void>;
601
+
602
+ withdrawETH(
603
+ recipient: PromiseOrValue<string>,
604
+ overrides?: CallOverrides
605
+ ): Promise<void>;
555
606
  };
556
607
 
557
608
  filters: {
@@ -580,6 +631,24 @@ export interface SimpleApp extends BaseContract {
580
631
  oldOwner?: PromiseOrValue<string> | null,
581
632
  newOwner?: PromiseOrValue<string> | null
582
633
  ): OwnershipTransferredEventFilter;
634
+
635
+ "PricingUpdated(uint256,uint48)"(
636
+ installPrice?: null,
637
+ accessDuration?: null
638
+ ): PricingUpdatedEventFilter;
639
+ PricingUpdated(
640
+ installPrice?: null,
641
+ accessDuration?: null
642
+ ): PricingUpdatedEventFilter;
643
+
644
+ "Withdrawal(address,uint256)"(
645
+ recipient?: PromiseOrValue<string> | null,
646
+ amount?: null
647
+ ): WithdrawalEventFilter;
648
+ Withdrawal(
649
+ recipient?: PromiseOrValue<string> | null,
650
+ amount?: null
651
+ ): WithdrawalEventFilter;
583
652
  };
584
653
 
585
654
  estimateGas: {
@@ -653,6 +722,11 @@ export interface SimpleApp extends BaseContract {
653
722
  accessDuration: PromiseOrValue<BigNumberish>,
654
723
  overrides?: Overrides & { from?: PromiseOrValue<string> }
655
724
  ): Promise<BigNumber>;
725
+
726
+ withdrawETH(
727
+ recipient: PromiseOrValue<string>,
728
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
729
+ ): Promise<BigNumber>;
656
730
  };
657
731
 
658
732
  populateTransaction: {
@@ -728,5 +802,10 @@ export interface SimpleApp extends BaseContract {
728
802
  accessDuration: PromiseOrValue<BigNumberish>,
729
803
  overrides?: Overrides & { from?: PromiseOrValue<string> }
730
804
  ): Promise<PopulatedTransaction>;
805
+
806
+ withdrawETH(
807
+ recipient: PromiseOrValue<string>,
808
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
809
+ ): Promise<PopulatedTransaction>;
731
810
  };
732
811
  }
@@ -786,7 +786,7 @@ const _abi = [
786
786
  ] as const;
787
787
 
788
788
  const _bytecode =
789
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b612558806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b9575f3560e01c806381045e3611610072578063c68907de11610058578063c68907de146101b6578063c9ac9368146101be578063fff96374146101d1575f5ffd5b806381045e361461018e578063a1550b2f146101a1575f5ffd5b806364843393116100a257806364843393146100f85780636f8934f41461010b5780637a05557c1461012b575f5ffd5b806314c9fcbc146100bd57806333d42dc6146100d2575b5f5ffd5b6100d06100cb366004611ce0565b6101e4565b005b6100e56100e0366004611cfb565b61027c565b6040519081526020015b60405180910390f35b6100d0610106366004611d25565b6102d1565b61011e610119366004611d3e565b610351565b6040516100ef9190611d55565b6100e5610139366004611cfb565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff949094168352929052206001015490565b6100e561019c366004611dff565b61047b565b6101a9610674565b6040516100ef9190611e4e565b6100e5610683565b6100d06101cc366004611f02565b61068c565b6100e56101df366004611f73565b61070c565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610247576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102707f9251dd06000000000000000000000000000000000000000000000000000000006109cf565b61027981610b24565b50565b5f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314610348576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61027981610b2d565b604080515f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820152908190526103ba825f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015292915050565b81355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040808220600181015490916104e69190860135907e01000000000000000000000000000000000000000000000000000000000000900461ffff1685610d8a565b91506104f28183610dea565b6004810154610502908590610fb7565b61051d6105156040860160208701611ce0565b82908461100b565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061055d6105516040870160208801611ce0565b8290606088013561107f565b5f61056e6040870160208801611ce0565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516105b591815260200190565b60405180910390a36105f26105d06040870160208801611ce0565b600184015473ffffffffffffffffffffffffffffffffffffffff16908561109b565b6106026040860160208701611ce0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16865f01357f970af01ab25e63f8131277859b2c17e9a07c2eb257e6db87449000d91c0f84018660405161066491815260200190565b60405180910390a4505092915050565b606061067e6110ee565b905090565b5f61067e61134a565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff1633146106fe576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161033f565b6107088282611505565b5050565b84355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604090819020908601359061074b8183610dea565b600481015461075b908890610fb7565b61076e6105156040890160208a01611ce0565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf7006107ae6107a260408a0160208b01611ce0565b829060608b013561107f565b5f6107bf60408a0160208b01611ce0565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161080691815260200190565b60405180910390a360018201546108339073ffffffffffffffffffffffffffffffffffffffff16846117db565b5f7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff1663e69f949561087a86611820565b8a61088b60408e0160208f01611ce0565b8d602001602081019061089e9190611ce0565b8c8c8c6040518863ffffffff1660e01b81526004016108c39796959493929190612024565b6020604051808303815f875af11580156108df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090391906120e3565b90505f838161091860408d0160208e01611ce0565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f2060018101859055925061095891908c01908c01611ce0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168b5f01357ff08f338c8905e343697a35fef11af2f611a36658016e0653521354c865373ea7886040516109ba91815260200190565b60405180910390a45050505095945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16610aa3577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610ad5565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b61027981611841565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005465ffffffffffff7401000000000000000000000000000000000000000082048116917a0100000000000000000000000000000000000000000000000000009004165f610b9b8284612127565b905065ffffffffffff821615610c6e5765ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604081206001019050610c176040860160208701612157565b815464ffffffffff9182167401000000000000000000000000000000000000000090910490911610610c6c57610c6c7f7b10269c000000000000000000000000000000000000000000000000000000006118eb565b505b610c88610c7e6020860186611ce0565b85608001356118f3565b83610cc48265ffffffffffff165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902090565b600101610cd1828261218a565b50610cdf9050826001612127565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167a01000000000000000000000000000000000000000000000000000065ffffffffffff93841602179055604051908216907fb2d7f7a48138c995ec7024ac4e176fad4415d42377559f3178e3830941b0484190610d7c908790612393565b60405180910390a250505050565b5f8161ffff168361ffff1614610dc357610dc37f70566c00000000000000000000000000000000000000000000000000000000006118eb565b61ffff831615610de2575f610ddc858561ffff16611943565b90940393505b509192915050565b60048201546001830190610e2157610e217ff235dd01000000000000000000000000000000000000000000000000000000006118eb565b815f03610e5157610e517fdf4e56a5000000000000000000000000000000000000000000000000000000006118eb565b805473ffffffffffffffffffffffffffffffffffffffff16610e9657610e967fe211c34c000000000000000000000000000000000000000000000000000000006118eb565b8060010154828260020154610eab91906123a1565b1115610eda57610eda7fb0b4e6d4000000000000000000000000000000000000000000000000000000006118eb565b805474010000000000000000000000000000000000000000900464ffffffffff16421015610f2b57610f2b7f4b3950d8000000000000000000000000000000000000000000000000000000006118eb565b8054790100000000000000000000000000000000000000000000000000900464ffffffffff1615801590610f8457508054790100000000000000000000000000000000000000000000000000900464ffffffffff164210155b15610fb257610fb27fd87c5b1d000000000000000000000000000000000000000000000000000000006118eb565b505050565b5f610fc183611996565b9050610fde8282610fd560808701876123b4565b909290916119d4565b610fb257610fb27f592fca34000000000000000000000000000000000000000000000000000000006118eb565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208490526040902080541561105f5761105f7f7f76444f000000000000000000000000000000000000000000000000000000006118eb565b81846001016002015f82825461107591906123a1565b9091555050555050565b61108a838383611a0c565b600290920180549290920390915550565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166110e457803d853b1517106110e4576390b8ec185f526004601cfd5b505f603452505050565b60605f5f61115d7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff1667ffffffffffffffff8111156111825761118261241f565b60405190808252806020026020018201604052801561120657816020015b6040805160e0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816111a05790505b5092505f5b8165ffffffffffff16811015611344576112626112308265ffffffffffff86166123a1565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015284518590839081106113315761133161244c565b602090810291909101015260010161120b565b50505090565b5f5f5f6113b87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff165f036113f4576113f47f44d5f094000000000000000000000000000000000000000000000000000000006118eb565b65ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8383010116805b8365ffffffffffff1681106114db575f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409020600101805464ffffffffff79010000000000000000000000000000000000000000000000000082048116917401000000000000000000000000000000000000000090041642108015906114b857508015806114b857508042105b156114c857509095945050505050565b5050806114d490612479565b9050611423565b506113447f44d5f094000000000000000000000000000000000000000000000000000000006118eb565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805465ffffffffffff7401000000000000000000000000000000000000000082048116917a010000000000000000000000000000000000000000000000000000900481169061157585846123a1565b11156115a4576115a47fae4eeeb1000000000000000000000000000000000000000000000000000000006118eb565b835f80805b8365ffffffffffff168110156116e057368989838181106115cc576115cc61244c565b905060e0020190508060200160208101906115e79190612157565b64ffffffffff168465ffffffffffff1610611625576116257f7b10269c000000000000000000000000000000000000000000000000000000006118eb565b5f600189018161163d8565ffffffffffff8c166123a1565b815260208101919091526040015f2060038101549091506080830135811115611689576116897fae4eeeb1000000000000000000000000000000000000000000000000000000006118eb565b6116938284611a82565b6116a36040840160208501612157565b64ffffffffff1695506116ba6080840135866123a1565b94506116d26116cc6020850185611ce0565b866118f3565b5050508060010190506115a9565b50855465ffffffffffff8085167a010000000000000000000000000000000000000000000000000000810279ffffffffffffffffffffffffffffffffffffffffffffffffffff9093169290921788558516111561178f5765ffffffffffff83165b8465ffffffffffff1681101561178d5765ffffffffffff861681015f90815260018089016020526040822080820183905560028101839055600381018390556004019190915501611741565b505b8465ffffffffffff167ff91c9c864018770f197086e7e64354d3a54259e85887953cbbe7d02ba32aba8e89896040516117c99291906124ad565b60405180910390a25050505050505050565b6107087feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff848116911683611c03565b5f6c01000000000000000000000000821061183d5761183d611c4c565b5090565b73ffffffffffffffffffffffffffffffffffffffff8116611885576118857fe3224c78000000000000000000000000000000000000000000000000000000006118eb565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b805f5260045ffd5b61191373ffffffffffffffffffffffffffffffffffffffff831630611c59565b811115610708576107087f42e1bedf000000000000000000000000000000000000000000000000000000006118eb565b5f612710821115611978576119787f197f19620000000000000000000000000000000000000000000000000000000083611c8c565b61271061198583856124ee565b61198f9190612505565b9392505050565b5f806119a86040840160208501611ce0565b604080515f92835281860135602090815260609687013583529583208352949091209390525090919050565b5f8315611a04578360051b8501855b803580851160051b94855260209485185260405f2093018181106119e35750505b501492915050565b5f5f611a19858585611c98565b915091508115611a7b576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018290526044810184905260640161033f565b5050505050565b60018201611a966040830160208401612157565b815464ffffffffff9190911674010000000000000000000000000000000000000000027fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff909116178155611af06060830160408401612157565b815464ffffffffff91909116790100000000000000000000000000000000000000000000000000027fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556080820135600182015560c08201356003820155611b606020830183611ce0565b81547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff91909116178155611bb0608083016060840161253d565b815461ffff919091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790555050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f5114166110e457803d853b1517106110e457633e3f8f735f526004601cfd5b6335278d125f526004601cfd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b815f528060045260245ffd5b5f82815260208490526040902080548281109182611cb65783820381555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610279575f5ffd5b5f60208284031215611cf0575f5ffd5b813561198f81611cbf565b5f5f60408385031215611d0c575f5ffd5b8235611d1781611cbf565b946020939093013593505050565b5f60e0828403128015611d36575f5ffd5b509092915050565b5f60208284031215611d4e575f5ffd5b5035919050565b60e081016102cb828473ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b5f60a08284031215611dda575f5ffd5b50919050565b61ffff81168114610279575f5ffd5b8035611dfa81611de0565b919050565b5f5f60408385031215611e10575f5ffd5b823567ffffffffffffffff811115611e26575f5ffd5b611e3285828601611dca565b9250506020830135611e4381611de0565b809150509250929050565b602080825282518282018190525f918401906040840190835b81811015611ef757611ee183855173ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b6020939093019260e09290920191600101611e67565b509095945050505050565b5f5f60208385031215611f13575f5ffd5b823567ffffffffffffffff811115611f29575f5ffd5b8301601f81018513611f39575f5ffd5b803567ffffffffffffffff811115611f4f575f5ffd5b85602060e083028401011115611f63575f5ffd5b6020919091019590945092505050565b5f5f5f5f5f60808688031215611f87575f5ffd5b853567ffffffffffffffff811115611f9d575f5ffd5b611fa988828901611dca565b9550506020860135611fba81611cbf565b935060408601359250606086013567ffffffffffffffff811115611fdc575f5ffd5b8601601f81018813611fec575f5ffd5b803567ffffffffffffffff811115612002575f5ffd5b886020828401011115612013575f5ffd5b959894975092955050506020019190565b6bffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201528160c0820152818360e08301375f81830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b5f602082840312156120f3575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b65ffffffffffff81811683821601908111156102cb576102cb6120fa565b64ffffffffff81168114610279575f5ffd5b5f60208284031215612167575f5ffd5b813561198f81612145565b5f81356102cb81612145565b5f81356102cb81611de0565b813561219581611cbf565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff00000000000000000000000000000000000000008354161782555060208201356121e281612145565b81547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff00000000000000000000000000000000000000001617815561228861223960408401612172565b82547fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1660c89190911b7dffffffffff0000000000000000000000000000000000000000000000000016178255565b6122e66122976060840161217e565b82547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016178255565b6080820135600182015560a0820135600282015560c090910135600390910155565b803561231381611cbf565b73ffffffffffffffffffffffffffffffffffffffff168252602081013561233981612145565b64ffffffffff166020830152604081013561235381612145565b64ffffffffff16604083015261236b60608201611def565b61ffff1660608301526080818101359083015260a0808201359083015260c090810135910152565b60e081016102cb8284612308565b808201808211156102cb576102cb6120fa565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126123e7575f5ffd5b83018035915067ffffffffffffffff821115612401575f5ffd5b6020019150600581901b3603821315612418575f5ffd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81612487576124876120fa565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b602080825281018290525f8360408301825b858110156124e4576124d18284612308565b60e09283019291909101906001016124bf565b5095945050505050565b80820281158282048414176102cb576102cb6120fa565b5f82612538577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561254d575f5ffd5b813561198f81611de056";
789
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b612548806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b9575f3560e01c806381045e3611610072578063c68907de11610058578063c68907de146101b6578063c9ac9368146101be578063fff96374146101d1575f5ffd5b806381045e361461018e578063a1550b2f146101a1575f5ffd5b806364843393116100a257806364843393146100f85780636f8934f41461010b5780637a05557c1461012b575f5ffd5b806314c9fcbc146100bd57806333d42dc6146100d2575b5f5ffd5b6100d06100cb366004611d04565b6101e4565b005b6100e56100e0366004611d1f565b61027c565b6040519081526020015b60405180910390f35b6100d0610106366004611d49565b6102d1565b61011e610119366004611d62565b610351565b6040516100ef9190611d79565b6100e5610139366004611d1f565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff949094168352929052206001015490565b6100e561019c366004611e23565b61047b565b6101a9610674565b6040516100ef9190611e72565b6100e5610683565b6100d06101cc366004611f26565b61068c565b6100e56101df366004611f97565b61070c565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610247576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102707f9251dd06000000000000000000000000000000000000000000000000000000006109cf565b61027981610b24565b50565b5f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314610348576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61027981610b2d565b604080515f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820152908190526103ba825f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015292915050565b81355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040808220600181015490916104e69190860135907e01000000000000000000000000000000000000000000000000000000000000900461ffff1685610d8a565b91506104f28183610dea565b6004810154610502908590610fb7565b61051d6105156040860160208701611d04565b82908461100b565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061055d6105516040870160208801611d04565b8290606088013561107f565b5f61056e6040870160208801611d04565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516105b591815260200190565b60405180910390a36105f26105d06040870160208801611d04565b600184015473ffffffffffffffffffffffffffffffffffffffff16908561109b565b6106026040860160208701611d04565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16865f01357f970af01ab25e63f8131277859b2c17e9a07c2eb257e6db87449000d91c0f84018660405161066491815260200190565b60405180910390a4505092915050565b606061067e6110ee565b905090565b5f61067e61134a565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff1633146106fe576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161033f565b6107088282611529565b5050565b84355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604090819020908601359061074b8183610dea565b600481015461075b908890610fb7565b61076e6105156040890160208a01611d04565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf7006107ae6107a260408a0160208b01611d04565b829060608b013561107f565b5f6107bf60408a0160208b01611d04565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161080691815260200190565b60405180910390a360018201546108339073ffffffffffffffffffffffffffffffffffffffff16846117ff565b5f7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff1663e69f949561087a86611844565b8a61088b60408e0160208f01611d04565b8d602001602081019061089e9190611d04565b8c8c8c6040518863ffffffff1660e01b81526004016108c39796959493929190612048565b6020604051808303815f875af11580156108df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109039190612107565b90505f838161091860408d0160208e01611d04565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f2060018101859055925061095891908c01908c01611d04565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168b5f01357ff08f338c8905e343697a35fef11af2f611a36658016e0653521354c865373ea7886040516109ba91815260200190565b60405180910390a45050505095945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16610aa3577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610ad5565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b61027981611865565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005465ffffffffffff7401000000000000000000000000000000000000000082048116917a0100000000000000000000000000000000000000000000000000009004165f610b9b828461214b565b905065ffffffffffff821615610c6e5765ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604081206001019050610c17604086016020870161217b565b815464ffffffffff9182167401000000000000000000000000000000000000000090910490911610610c6c57610c6c7f7b10269c0000000000000000000000000000000000000000000000000000000061190f565b505b610c88610c7e6020860186611d04565b8560800135611917565b83610cc48265ffffffffffff165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902090565b600101610cd182826121ae565b50610cdf905082600161214b565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167a01000000000000000000000000000000000000000000000000000065ffffffffffff93841602179055604051908216907fb2d7f7a48138c995ec7024ac4e176fad4415d42377559f3178e3830941b0484190610d7c9087906123b7565b60405180910390a250505050565b5f8161ffff168361ffff1614610dc357610dc37f70566c000000000000000000000000000000000000000000000000000000000061190f565b61ffff831615610de2575f610ddc858561ffff16611967565b90940393505b509192915050565b60048201546001830190610e2157610e217ff235dd010000000000000000000000000000000000000000000000000000000061190f565b815f03610e5157610e517fdf4e56a50000000000000000000000000000000000000000000000000000000061190f565b805473ffffffffffffffffffffffffffffffffffffffff16610e9657610e967fe211c34c0000000000000000000000000000000000000000000000000000000061190f565b8060010154828260020154610eab91906123c5565b1115610eda57610eda7fb0b4e6d40000000000000000000000000000000000000000000000000000000061190f565b805474010000000000000000000000000000000000000000900464ffffffffff16421015610f2b57610f2b7f4b3950d80000000000000000000000000000000000000000000000000000000061190f565b8054790100000000000000000000000000000000000000000000000000900464ffffffffff1615801590610f8457508054790100000000000000000000000000000000000000000000000000900464ffffffffff164210155b15610fb257610fb27fd87c5b1d0000000000000000000000000000000000000000000000000000000061190f565b505050565b5f610fc1836119ba565b9050610fde8282610fd560808701876123d8565b909290916119f8565b610fb257610fb27f592fca340000000000000000000000000000000000000000000000000000000061190f565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208490526040902080541561105f5761105f7f7f76444f0000000000000000000000000000000000000000000000000000000061190f565b81846001016002015f82825461107591906123c5565b9091555050555050565b61108a838383611a30565b600290920180549290920390915550565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166110e457803d853b1517106110e4576390b8ec185f526004601cfd5b505f603452505050565b60605f5f61115d7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff1667ffffffffffffffff81111561118257611182612443565b60405190808252806020026020018201604052801561120657816020015b6040805160e0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816111a05790505b5092505f5b8165ffffffffffff16811015611344576112626112308265ffffffffffff86166123c5565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c0820152845185908390811061133157611331612470565b602090810291909101015260010161120b565b50505090565b5f5f5f6113b87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff165f036113f4576113f47f44d5f0940000000000000000000000000000000000000000000000000000000061190f565b65ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83830101165f61142d8260016123c5565b90505b8365ffffffffffff168111156114ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409020600101805464ffffffffff79010000000000000000000000000000000000000000000000000082048116917401000000000000000000000000000000000000000090041642108015906114e857508015806114e857508042105b156114f857509095945050505050565b5050611430565b506113447f44d5f0940000000000000000000000000000000000000000000000000000000061190f565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805465ffffffffffff7401000000000000000000000000000000000000000082048116917a010000000000000000000000000000000000000000000000000000900481169061159985846123c5565b11156115c8576115c87fae4eeeb10000000000000000000000000000000000000000000000000000000061190f565b835f80805b8365ffffffffffff1681101561170457368989838181106115f0576115f0612470565b905060e00201905080602001602081019061160b919061217b565b64ffffffffff168465ffffffffffff1610611649576116497f7b10269c0000000000000000000000000000000000000000000000000000000061190f565b5f60018901816116618565ffffffffffff8c166123c5565b815260208101919091526040015f20600381015490915060808301358111156116ad576116ad7fae4eeeb10000000000000000000000000000000000000000000000000000000061190f565b6116b78284611aa6565b6116c7604084016020850161217b565b64ffffffffff1695506116de6080840135866123c5565b94506116f66116f06020850185611d04565b86611917565b5050508060010190506115cd565b50855465ffffffffffff8085167a010000000000000000000000000000000000000000000000000000810279ffffffffffffffffffffffffffffffffffffffffffffffffffff909316929092178855851611156117b35765ffffffffffff83165b8465ffffffffffff168110156117b15765ffffffffffff861681015f90815260018089016020526040822080820183905560028101839055600381018390556004019190915501611765565b505b8465ffffffffffff167ff91c9c864018770f197086e7e64354d3a54259e85887953cbbe7d02ba32aba8e89896040516117ed92919061249d565b60405180910390a25050505050505050565b6107087feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff848116911683611c27565b5f6c01000000000000000000000000821061186157611861611c70565b5090565b73ffffffffffffffffffffffffffffffffffffffff81166118a9576118a97fe3224c780000000000000000000000000000000000000000000000000000000061190f565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b805f5260045ffd5b61193773ffffffffffffffffffffffffffffffffffffffff831630611c7d565b811115610708576107087f42e1bedf0000000000000000000000000000000000000000000000000000000061190f565b5f61271082111561199c5761199c7f197f19620000000000000000000000000000000000000000000000000000000083611cb0565b6127106119a983856124de565b6119b391906124f5565b9392505050565b5f806119cc6040840160208501611d04565b604080515f92835281860135602090815260609687013583529583208352949091209390525090919050565b5f8315611a28578360051b8501855b803580851160051b94855260209485185260405f209301818110611a075750505b501492915050565b5f5f611a3d858585611cbc565b915091508115611a9f576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018290526044810184905260640161033f565b5050505050565b60018201611aba604083016020840161217b565b815464ffffffffff9190911674010000000000000000000000000000000000000000027fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff909116178155611b14606083016040840161217b565b815464ffffffffff91909116790100000000000000000000000000000000000000000000000000027fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556080820135600182015560c08201356003820155611b846020830183611d04565b81547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff91909116178155611bd4608083016060840161252d565b815461ffff919091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790555050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f5114166110e457803d853b1517106110e457633e3f8f735f526004601cfd5b6335278d125f526004601cfd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b815f528060045260245ffd5b5f82815260208490526040902080548281109182611cda5783820381555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610279575f5ffd5b5f60208284031215611d14575f5ffd5b81356119b381611ce3565b5f5f60408385031215611d30575f5ffd5b8235611d3b81611ce3565b946020939093013593505050565b5f60e0828403128015611d5a575f5ffd5b509092915050565b5f60208284031215611d72575f5ffd5b5035919050565b60e081016102cb828473ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b5f60a08284031215611dfe575f5ffd5b50919050565b61ffff81168114610279575f5ffd5b8035611e1e81611e04565b919050565b5f5f60408385031215611e34575f5ffd5b823567ffffffffffffffff811115611e4a575f5ffd5b611e5685828601611dee565b9250506020830135611e6781611e04565b809150509250929050565b602080825282518282018190525f918401906040840190835b81811015611f1b57611f0583855173ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b6020939093019260e09290920191600101611e8b565b509095945050505050565b5f5f60208385031215611f37575f5ffd5b823567ffffffffffffffff811115611f4d575f5ffd5b8301601f81018513611f5d575f5ffd5b803567ffffffffffffffff811115611f73575f5ffd5b85602060e083028401011115611f87575f5ffd5b6020919091019590945092505050565b5f5f5f5f5f60808688031215611fab575f5ffd5b853567ffffffffffffffff811115611fc1575f5ffd5b611fcd88828901611dee565b9550506020860135611fde81611ce3565b935060408601359250606086013567ffffffffffffffff811115612000575f5ffd5b8601601f81018813612010575f5ffd5b803567ffffffffffffffff811115612026575f5ffd5b886020828401011115612037575f5ffd5b959894975092955050506020019190565b6bffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201528160c0820152818360e08301375f81830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b5f60208284031215612117575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b65ffffffffffff81811683821601908111156102cb576102cb61211e565b64ffffffffff81168114610279575f5ffd5b5f6020828403121561218b575f5ffd5b81356119b381612169565b5f81356102cb81612169565b5f81356102cb81611e04565b81356121b981611ce3565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550602082013561220681612169565b81547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff0000000000000000000000000000000000000000161781556122ac61225d60408401612196565b82547fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1660c89190911b7dffffffffff0000000000000000000000000000000000000000000000000016178255565b61230a6122bb606084016121a2565b82547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016178255565b6080820135600182015560a0820135600282015560c090910135600390910155565b803561233781611ce3565b73ffffffffffffffffffffffffffffffffffffffff168252602081013561235d81612169565b64ffffffffff166020830152604081013561237781612169565b64ffffffffff16604083015261238f60608201611e13565b61ffff1660608301526080818101359083015260a0808201359083015260c090810135910152565b60e081016102cb828461232c565b808201808211156102cb576102cb61211e565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261240b575f5ffd5b83018035915067ffffffffffffffff821115612425575f5ffd5b6020019150600581901b360382131561243c575f5ffd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b602080825281018290525f8360408301825b858110156124d4576124c1828461232c565b60e09283019291909101906001016124af565b5095945050505050565b80820281158282048414176102cb576102cb61211e565b5f82612528577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561253d575f5ffd5b81356119b381611e0456";
790
790
 
791
791
  type DropFacetConstructorParams =
792
792
  | [signer?: Signer]