@bsv/sdk 1.9.31 → 1.10.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.
Files changed (43) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/auth/Peer.js +68 -48
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/primitives/BigNumber.js +28 -54
  5. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  6. package/dist/cjs/src/primitives/ECDSA.js +36 -1
  7. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  8. package/dist/cjs/src/primitives/ReductionContext.js +35 -46
  9. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  10. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  11. package/dist/esm/src/auth/Peer.js +68 -48
  12. package/dist/esm/src/auth/Peer.js.map +1 -1
  13. package/dist/esm/src/primitives/BigNumber.js +28 -54
  14. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  15. package/dist/esm/src/primitives/ECDSA.js +36 -1
  16. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  17. package/dist/esm/src/primitives/ReductionContext.js +35 -46
  18. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  19. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  20. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  21. package/dist/types/src/auth/types.d.ts +2 -0
  22. package/dist/types/src/auth/types.d.ts.map +1 -1
  23. package/dist/types/src/primitives/BigNumber.d.ts +8 -0
  24. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  25. package/dist/types/src/primitives/ECDSA.d.ts +24 -0
  26. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  27. package/dist/types/src/primitives/ReductionContext.d.ts +9 -0
  28. package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
  29. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  30. package/dist/umd/bundle.js +3 -3
  31. package/dist/umd/bundle.js.map +1 -1
  32. package/docs/index.md +15 -1
  33. package/docs/reference/auth.md +2 -0
  34. package/docs/reference/messages.md +0 -24
  35. package/docs/reference/primitives.md +91 -31
  36. package/package.json +1 -1
  37. package/src/auth/Peer.ts +122 -57
  38. package/src/auth/__tests/Peer.test.ts +166 -257
  39. package/src/auth/types.ts +2 -0
  40. package/src/primitives/BigNumber.ts +27 -31
  41. package/src/primitives/ECDSA.ts +41 -2
  42. package/src/primitives/ReductionContext.ts +44 -48
  43. package/src/primitives/__tests/ECDSA.test.ts +16 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.9.31",
3
+ "version": "1.10.1",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -104,7 +104,13 @@ class Peer {
104
104
  identityKey = this.lastInteractedWithPeer;
105
105
  }
106
106
  const peerSession = await this.getAuthenticatedSession(identityKey, maxWaitTime);
107
- // Prepare the general message
107
+ if (peerSession.peerIdentityKey == null) {
108
+ throw new Error('Peer identity is not established');
109
+ }
110
+ if (peerSession.certificatesRequired === true &&
111
+ peerSession.certificatesValidated !== true) {
112
+ throw new Error('Cannot send general message before certificate validation is complete');
113
+ }
108
114
  const requestNonce = Utils.toBase64((0, Random_js_1.default)(32));
109
115
  const { signature } = await this.wallet.createSignature({
110
116
  data: message,
@@ -274,14 +280,16 @@ class Peer {
274
280
  * @returns {Promise<string>} A promise that resolves to the session nonce.
275
281
  */
276
282
  async initiateHandshake(identityKey, maxWaitTime = 10000) {
277
- const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator); // Initial request nonce
278
- // Create the preliminary session (not yet authenticated)
283
+ const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator);
279
284
  const now = Date.now();
285
+ const certificatesRequired = this.certificatesToRequest.certifiers.length > 0;
280
286
  this.sessionManager.addSession({
281
287
  isAuthenticated: false,
282
288
  sessionNonce,
283
289
  peerIdentityKey: identityKey,
284
- lastUpdate: now
290
+ lastUpdate: now,
291
+ certificatesRequired,
292
+ certificatesValidated: !certificatesRequired
285
293
  });
286
294
  const initialRequest = {
287
295
  version: AUTH_VERSION,
@@ -365,24 +373,30 @@ class Peer {
365
373
  if (typeof message.version !== 'string' || message.version !== AUTH_VERSION) {
366
374
  throw new Error(`Invalid or unsupported message auth version! Received: ${message.version}, expected: ${AUTH_VERSION}`);
367
375
  }
368
- switch (message.messageType) {
369
- case 'initialRequest':
370
- await this.processInitialRequest(message);
371
- break;
372
- case 'initialResponse':
373
- await this.processInitialResponse(message);
374
- break;
375
- case 'certificateRequest':
376
- await this.processCertificateRequest(message);
377
- break;
378
- case 'certificateResponse':
379
- await this.processCertificateResponse(message);
380
- break;
381
- case 'general':
382
- await this.processGeneralMessage(message);
383
- break;
384
- default:
385
- throw new Error(`Unknown message type of ${String(message.messageType)} from ${String(message.identityKey)}`);
376
+ try {
377
+ switch (message.messageType) {
378
+ case 'initialRequest':
379
+ await this.processInitialRequest(message);
380
+ break;
381
+ case 'initialResponse':
382
+ await this.processInitialResponse(message);
383
+ break;
384
+ case 'certificateRequest':
385
+ await this.processCertificateRequest(message);
386
+ break;
387
+ case 'certificateResponse':
388
+ await this.processCertificateResponse(message);
389
+ break;
390
+ case 'general':
391
+ await this.processGeneralMessage(message);
392
+ break;
393
+ default:
394
+ throw new Error(`Unknown message type of ${String(message.messageType)} from ${String(message.identityKey)}`);
395
+ }
396
+ }
397
+ catch (err) {
398
+ // Swallow protocol violations so transport does not crash the process
399
+ // (Message is intentionally rejected)
386
400
  }
387
401
  }
388
402
  /**
@@ -396,34 +410,32 @@ class Peer {
396
410
  message.initialNonce === '') {
397
411
  throw new Error('Missing required fields in initialRequest message.');
398
412
  }
399
- // Create a new sessionNonce for our side
400
413
  const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator);
401
414
  const now = Date.now();
402
- // We'll treat this as fully authenticated from *our* perspective (the responding side).
415
+ const certificatesRequired = Array.isArray(this.certificatesToRequest?.certifiers) &&
416
+ this.certificatesToRequest.certifiers.length > 0;
403
417
  this.sessionManager.addSession({
404
418
  isAuthenticated: true,
405
419
  sessionNonce,
406
420
  peerNonce: message.initialNonce,
407
421
  peerIdentityKey: message.identityKey,
408
- lastUpdate: now
422
+ lastUpdate: now,
423
+ certificatesRequired,
424
+ certificatesValidated: !certificatesRequired
409
425
  });
410
- // Possibly handle the peer's requested certs
411
426
  let certificatesToInclude;
412
- if ((message.requestedCertificates != null) &&
413
- Array.isArray(message.requestedCertificates.certifiers) &&
427
+ // Handle THEIR certificate request (if any)
428
+ if (Array.isArray(message.requestedCertificates?.certifiers) &&
414
429
  message.requestedCertificates.certifiers.length > 0) {
415
430
  if (this.onCertificateRequestReceivedCallbacks.size > 0) {
416
- // Let the application handle it
417
431
  this.onCertificateRequestReceivedCallbacks.forEach(cb => {
418
432
  cb(message.identityKey, message.requestedCertificates);
419
433
  });
420
434
  }
421
435
  else {
422
- // Attempt to find automatically
423
436
  certificatesToInclude = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey, this.originator);
424
437
  }
425
438
  }
426
- // Create signature
427
439
  const { signature } = await this.wallet.createSignature({
428
440
  data: Peer.base64ToBytes(message.initialNonce + sessionNonce),
429
441
  protocolID: [2, 'auth message signature'],
@@ -440,11 +452,9 @@ class Peer {
440
452
  requestedCertificates: this.certificatesToRequest,
441
453
  signature
442
454
  };
443
- // If we haven't interacted with a peer yet, store this identity as "lastInteracted"
444
455
  if (this.lastInteractedWithPeer === undefined) {
445
456
  this.lastInteractedWithPeer = message.identityKey;
446
457
  }
447
- // Send the response
448
458
  await this.transport.send(initialResponseMessage);
449
459
  }
450
460
  /**
@@ -459,12 +469,10 @@ class Peer {
459
469
  if (!validNonce) {
460
470
  throw new Error(`Initial response nonce verification failed from peer: ${message.identityKey}`);
461
471
  }
462
- // This is the session we previously created by calling initiateHandshake
463
472
  const peerSession = this.sessionManager.getSession(message.yourNonce);
464
473
  if (peerSession == null) {
465
474
  throw new Error(`Peer session not found for peer: ${message.identityKey}`);
466
475
  }
467
- // Validate message signature
468
476
  const dataToVerify = Peer.base64ToBytes((peerSession.sessionNonce ?? '') + (message.initialNonce ?? ''));
469
477
  const { valid } = await this.wallet.verifySignature({
470
478
  data: dataToVerify,
@@ -476,39 +484,45 @@ class Peer {
476
484
  if (!valid) {
477
485
  throw new Error(`Unable to verify initial response signature for peer: ${message.identityKey}`);
478
486
  }
479
- // Now mark the session as authenticated
487
+ // --- Transport authentication complete ---
480
488
  peerSession.peerNonce = message.initialNonce;
481
489
  peerSession.peerIdentityKey = message.identityKey;
482
490
  peerSession.isAuthenticated = true;
491
+ peerSession.certificatesRequired =
492
+ Array.isArray(this.certificatesToRequest?.certifiers) &&
493
+ this.certificatesToRequest.certifiers.length > 0;
494
+ // IMPORTANT: validation defaults to false if certs are required
495
+ peerSession.certificatesValidated = !peerSession.certificatesRequired;
483
496
  peerSession.lastUpdate = Date.now();
484
497
  this.sessionManager.updateSession(peerSession);
485
- // If the handshake had requested certificates, validate them
486
- if (this.certificatesToRequest?.certifiers?.length > 0 &&
487
- message.certificates?.length > 0) {
498
+ // --- Validate certificates if provided ---
499
+ if (peerSession.certificatesRequired &&
500
+ Array.isArray(message.certificates) &&
501
+ message.certificates.length > 0) {
488
502
  await (0, index_js_1.validateCertificates)(this.wallet, message, this.certificatesToRequest, this.originator);
489
- // Notify listeners
503
+ peerSession.certificatesValidated = true;
504
+ peerSession.lastUpdate = Date.now();
505
+ this.sessionManager.updateSession(peerSession);
490
506
  this.onCertificatesReceivedCallbacks.forEach(cb => cb(message.identityKey, message.certificates));
491
507
  }
492
- // Update lastInteractedWithPeer
508
+ // Update last-interacted peer
493
509
  this.lastInteractedWithPeer = message.identityKey;
494
- // Let the handshake wait-latch know we got our response
510
+ // Release handshake waiters (even if certs still pending)
495
511
  this.onInitialResponseReceivedCallbacks.forEach(entry => {
496
512
  if (entry.sessionNonce === peerSession.sessionNonce) {
497
513
  entry.callback(peerSession.sessionNonce);
498
514
  }
499
515
  });
500
- // The peer might also request certificates from us
501
- if ((message.requestedCertificates != null) &&
516
+ // --- Peer may request certificates from us ---
517
+ if (message.requestedCertificates != null &&
502
518
  Array.isArray(message.requestedCertificates.certifiers) &&
503
519
  message.requestedCertificates.certifiers.length > 0) {
504
520
  if (this.onCertificateRequestReceivedCallbacks.size > 0) {
505
- // Let the application handle it
506
521
  this.onCertificateRequestReceivedCallbacks.forEach(cb => {
507
522
  cb(message.identityKey, message.requestedCertificates);
508
523
  });
509
524
  }
510
525
  else {
511
- // Attempt auto
512
526
  const verifiableCertificates = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey, this.originator);
513
527
  await this.sendCertificateResponse(message.identityKey, verifiableCertificates);
514
528
  }
@@ -624,12 +638,13 @@ class Peer {
624
638
  }
625
639
  // We also handle optional validation if there's a requestedCertificates field
626
640
  await (0, index_js_1.validateCertificates)(this.wallet, message, message.requestedCertificates, this.originator);
641
+ peerSession.certificatesValidated = true;
642
+ peerSession.lastUpdate = Date.now();
643
+ this.sessionManager.updateSession(peerSession);
627
644
  // Notify any listeners
628
645
  this.onCertificatesReceivedCallbacks.forEach(cb => {
629
646
  cb(message.identityKey, message.certificates ?? []);
630
647
  });
631
- peerSession.lastUpdate = Date.now();
632
- this.sessionManager.updateSession(peerSession);
633
648
  }
634
649
  /**
635
650
  * Processes a general message from a peer.
@@ -647,6 +662,11 @@ class Peer {
647
662
  if (peerSession == null) {
648
663
  throw new Error(`Session not found for nonce: ${message.yourNonce}`);
649
664
  }
665
+ const certificatesRequired = peerSession.certificatesRequired === true;
666
+ const certificatesValidated = peerSession.certificatesValidated === true;
667
+ if (certificatesRequired && !certificatesValidated) {
668
+ throw new Error(`Received general message before certificate validation from peer ${peerSession.peerIdentityKey ?? 'unknown'}`);
669
+ }
650
670
  const { valid } = await this.wallet.verifySignature({
651
671
  data: message.payload,
652
672
  signature: message.signature,
@@ -1 +1 @@
1
- {"version":3,"file":"Peer.js","sourceRoot":"","sources":["../../../../src/auth/Peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Peer.js","sourceRoot":"","sources":["../../../../src/auth/Peer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAAoD;AACpD,+CAKyB;AAQzB,wEAA4C;AAC5C,8DAA+C;AAG/C,MAAM,YAAY,GAAG,KAAK,CAAA;AAC1B,MAAM,UAAU,GACd,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAE,UAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAE5E;;;;;;GAMG;AACH,MAAa,IAAI;IAwCf;;;;;;;;OAQG;IACH,YACE,MAAuB,EACvB,SAAoB,EACpB,qBAA+C,EAC/C,cAA+B,EAC/B,sBAAgC,EAChC,UAAoD;QAlDrC,sCAAiC,GAG9C,IAAI,GAAG,EAAE,CAAA;QAEI,oCAA+B,GAG5C,IAAI,GAAG,EAAE,CAAA;QAEI,0CAAqC,GAMlD,IAAI,GAAG,EAAE,CAAA;QAEI,uCAAkC,GAG/C,IAAI,GAAG,EAAE,CAAA;QAEb,+CAA+C;QACvC,sBAAiB,GAAW,CAAC,CAAA;QAErC,yEAAyE;QACxD,2BAAsB,GAAY,IAAI,CAAA;QAyBrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,IAAI;YACpD,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,EAAE;SACV,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACrE,MAAM,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,cAAc;YACjB,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,kCAAc,EAAE,CAAA;QAChE,IAAI,sBAAsB,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAA;QACpC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,OAAiB,EACjB,WAAoB,EACpB,WAAoB;QAEpB,IACE,IAAI,CAAC,sBAAsB;YAC3B,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,OAAO,WAAW,KAAK,QAAQ,EAC/B,CAAC;YACD,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAA;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAEhF,IAAI,WAAW,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,WAAW,CAAC,oBAAoB,KAAK,IAAI;YACzC,WAAW,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAA;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAA,mBAAM,EAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACtD,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,YAAY,IAAI,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE;YACvD,YAAY,EAAE,WAAW,CAAC,eAAe;SAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,MAAM,cAAc,GAAgB;YAClC,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE;YAC9C,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS;SACV,CAAA;QAED,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,mBAAmB,CACvB,qBAA8C,EAC9C,WAAoB,EACpB,WAAW,GAAG,KAAK;QAEnB,IACE,IAAI,CAAC,sBAAsB;YAC3B,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YAC/C,OAAO,WAAW,KAAK,QAAQ,EAC/B,CAAC;YACD,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAA;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACpD,WAAW,EACX,WAAW,CACZ,CAAA;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAA,mBAAM,EAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,YAAY,IAAI,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE;YACvD,YAAY,EAAE,WAAW,CAAC,eAAe;SAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,MAAM,kBAAkB,GAAgB;YACtC,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE;YAC9C,KAAK,EAAE,YAAY;YACnB,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,qBAAqB,EAAE,qBAAqB;YAC5C,SAAS;SACV,CAAA;QAED,6BAA6B;QAC7B,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAoB,EACpB,WAAoB;QAEpB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,WAAoC,CAAA;QACxC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC3D,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YAC1D,uCAAuC;YACvC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;YAC3E,sCAAsC;YACtC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAC1D,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,QAA8D;QAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC3C,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAChE,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,+BAA+B,CAAE,UAAkB;QACjD,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;OAKG;IACH,6BAA6B,CAC3B,QAA2E;QAE3E,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC3C,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC9D,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,oCAAoC,CAAE,UAAkB;QACtD,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACzD,CAAC;IAED;;;;;OAKG;IACH,8BAA8B,CAC5B,QAGS;QAET,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC3C,IAAI,CAAC,qCAAqC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACpE,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,qCAAqC,CAAE,UAAkB;QACvD,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC/D,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,iBAAiB,CAC7B,WAAoB,EACpB,WAAW,GAAG,KAAK;QAEnB,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAE/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,oBAAoB,GACxB,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAElD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,eAAe,EAAE,KAAK;YACtB,YAAY;YACZ,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,GAAG;YACf,oBAAoB;YACpB,qBAAqB,EAAE,CAAC,oBAAoB;SAC7C,CAAC,CAAA;QAEF,MAAM,cAAc,GAAgB;YAClC,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE;YAC9C,YAAY,EAAE,YAAY;YAC1B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAA;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACzC,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IACrE,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB,CAClC,YAAoB,EACpB,WAAW,GAAG,KAAK;QAEnB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;gBACrE,YAAY,CAAC,aAAa,CAAC,CAAA;gBAC3B,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAA;gBACjD,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAA;gBACjD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;YAClD,CAAC,EAAE,WAAW,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,wBAAwB,CAC9B,YAAoB,EACpB,QAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC3C,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,UAAU,EAAE;YACtD,QAAQ;YACR,YAAY;SACb,CAAC,CAAA;QACF,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;;OAKG;IACK,gCAAgC,CAAE,UAAkB;QAC1D,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5D,CAAC;IAEO,uBAAuB,CAAE,eAAmC,EAAE,KAAc;QAClF,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,eAAe,GAAI,KAAa,CAAC,OAAO,CAAA;gBAC9C,IAAI,eAAe,IAAI,IAAI,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACnE,IAAI,eAAe,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;wBAC5C,eAAe,CAAC,eAAe,GAAG,eAAe,CAAA;oBACnD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACL,KAAa,CAAC,OAAO,GAAG,EAAE,eAAe,EAAE,CAAA;gBAC9C,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GAAG,kCAAkC,eAAe,IAAI,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;QAClG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,qBAAqB,CAAE,OAAoB;QACvD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CACb,0DAA0D,OAAO,CAAC,OAAO,eAAe,YAAY,EAAE,CACvG,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC5B,KAAK,gBAAgB;oBACnB,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;oBACzC,MAAK;gBACP,KAAK,iBAAiB;oBACpB,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;oBAC1C,MAAK;gBACP,KAAK,oBAAoB;oBACvB,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;oBAC7C,MAAK;gBACP,KAAK,qBAAqB;oBACxB,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;oBAC9C,MAAK;gBACP,KAAK,SAAS;oBACZ,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;oBACzC,MAAK;gBACP;oBACE,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,MAAM,CACnE,OAAO,CAAC,WAAW,CACpB,EAAE,CACJ,CAAA;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CAAE,OAAoB;QACvD,IACE,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;YACvC,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;YACxC,OAAO,CAAC,YAAY,KAAK,EAAE,EAC3B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,MAAM,oBAAoB,GACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;YACrD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAElD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,eAAe,EAAE,IAAI;YACrB,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,YAAY;YAC/B,eAAe,EAAE,OAAO,CAAC,WAAW;YACpC,UAAU,EAAE,GAAG;YACf,oBAAoB;YACpB,qBAAqB,EAAE,CAAC,oBAAoB;SAC7C,CAAC,CAAA;QAEF,IAAI,qBAA0D,CAAA;QAE9D,4CAA4C;QAC5C,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC;YACxD,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACnD,CAAC;YACD,IAAI,IAAI,CAAC,qCAAqC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,qCAAqC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,qBAAgD,CAAC,CAAA;gBACnF,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,qBAAqB,GAAG,MAAM,IAAA,oCAAyB,EACrD,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,qBAAqB,EAC7B,OAAO,CAAC,WAAW,EACnB,IAAI,CAAC,UAAU,CAChB,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,OAAO,CAAC,YAAY,IAAI,YAAY,EAAE;YAChD,YAAY,EAAE,OAAO,CAAC,WAAW;SAClC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,MAAM,sBAAsB,GAAgB;YAC1C,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE;YAC9C,YAAY,EAAE,YAAY;YAC1B,SAAS,EAAE,OAAO,CAAC,YAAY;YAC/B,YAAY,EAAE,qBAAqB;YACnC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS;SACV,CAAA;QAED,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,sBAAsB,CAAE,OAAoB;QACxD,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAW,EAClC,OAAO,CAAC,SAAmB,EAC3B,IAAI,CAAC,MAAM,EACX,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,yDAAyD,OAAO,CAAC,WAAW,EAAE,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAA;QAC/E,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5E,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACrC,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAChE,CAAA;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAClD,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,OAAO,CAAC,SAAqB;YACxC,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,WAAW,CAAC,YAAY,IAAI,EAAE,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE;YACxE,YAAY,EAAE,OAAO,CAAC,WAAW;SAClC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,OAAO,CAAC,WAAW,EAAE,CAC/E,CAAA;QACH,CAAC;QAED,4CAA4C;QAC5C,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAA;QAC5C,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CAAA;QACjD,WAAW,CAAC,eAAe,GAAG,IAAI,CAAA;QAElC,WAAW,CAAC,oBAAoB;YAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;gBACrD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAElD,gEAAgE;QAChE,WAAW,CAAC,qBAAqB,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAA;QAErE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,4CAA4C;QAC5C,IACE,WAAW,CAAC,oBAAoB;YAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YACnC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAC/B,CAAC;YACD,MAAM,IAAA,+BAAoB,EACxB,IAAI,CAAC,MAAM,EACX,OAAO,EACP,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,CAChB,CAAA;YAED,WAAW,CAAC,qBAAqB,GAAG,IAAI,CAAA;YACxC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAE9C,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAChD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAuC,CAAC,CACzE,CAAA;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAA;QAEjD,0DAA0D;QAC1D,IAAI,CAAC,kCAAkC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtD,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;gBACpD,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,gDAAgD;QAChD,IACE,OAAO,CAAC,qBAAqB,IAAI,IAAI;YACrC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC;YACvD,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACnD,CAAC;YACD,IAAI,IAAI,CAAC,qCAAqC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,qCAAqC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtD,EAAE,CACA,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,qBAAgD,CACzD,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,sBAAsB,GAAG,MAAM,IAAA,oCAAyB,EAC5D,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,qBAAqB,EAC7B,OAAO,CAAC,WAAW,EACnB,IAAI,CAAC,UAAU,CAChB,CAAA;gBACD,MAAM,IAAI,CAAC,uBAAuB,CAChC,OAAO,CAAC,WAAW,EACnB,sBAAsB,CACvB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,yBAAyB,CAAE,OAAoB;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAW,EAAC,OAAO,CAAC,SAAmB,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1G,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,gEAAgE,OAAO,CAAC,WAAW,EAAE,CACtF,CAAA;QACH,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAA;QAC/E,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,SAAmB,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAClD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACrE,SAAS,EAAE,OAAO,CAAC,SAAqB;YACxC,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE;YACjE,YAAY,EAAE,WAAW,CAAC,eAAe;SAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,WAAW,CAAC,eAAyB,EAAE,CACjG,CAAA;QACH,CAAC;QAED,eAAe;QACf,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,IACE,CAAC,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC;YACvD,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACnD,CAAC;YACD,IAAI,IAAI,CAAC,qCAAqC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,gCAAgC;gBAChC,IAAI,CAAC,qCAAqC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,qBAAgD,CAAC,CAAA;gBACnF,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,MAAM,sBAAsB,GAAG,MAAM,IAAA,oCAAyB,EAC5D,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,qBAAqB,EAC7B,OAAO,CAAC,WAAW,EACnB,IAAI,CAAC,UAAU,CAChB,CAAA;gBACD,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,mBAA2B,EAC3B,YAAqC;QAErC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAA;QAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAA,mBAAM,EAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACpD,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,YAAY,IAAI,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE;YACvD,YAAY,EAAE,WAAW,CAAC,eAAe;SAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,MAAM,mBAAmB,GAAgB;YACvC,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE;YAC9C,KAAK,EAAE,YAAY;YACnB,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,YAAY;YACZ,SAAS;SACV,CAAA;QAED,eAAe;QACf,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,0BAA0B,CAAE,OAAoB;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAW,EAAC,OAAO,CAAC,SAAmB,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1G,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,yDAAyD,OAAO,CAAC,WAAW,EAAE,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAA;QAC/E,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,SAAmB,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,6BAA6B;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAClD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC5D,SAAS,EAAE,OAAO,CAAC,SAAqB;YACxC,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE;YACjE,YAAY,EAAE,OAAO,CAAC,WAAW;SAClC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,6DAA6D,OAAO,CAAC,WAAW,EAAE,CACnF,CAAA;QACH,CAAC;QAED,8EAA8E;QAC9E,MAAM,IAAA,+BAAoB,EACxB,IAAI,CAAC,MAAM,EACX,OAAO,EACP,OAAO,CAAC,qBAAqB,EAC7B,IAAI,CAAC,UAAU,CAChB,CAAA;QAED,WAAW,CAAC,qBAAqB,GAAG,IAAI,CAAA;QACxC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,uBAAuB;QACvB,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAChD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,qBAAqB,CAAE,OAAoB;QACvD,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAW,EAClC,OAAO,CAAC,SAAmB,EAC3B,IAAI,CAAC,MAAM,EACX,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAA;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,CAAC,WAAW,EAAE,CAC1E,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAA;QAC/E,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,SAAmB,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,KAAK,IAAI,CAAA;QACtE,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,KAAK,IAAI,CAAA;QAExE,IAAI,oBAAoB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,oEACE,WAAW,CAAC,eAAe,IAAI,SACjC,EAAE,CACH,CAAA;QACH,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,SAAS,EAAE,OAAO,CAAC,SAAqB;YACxC,UAAU,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACzC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE;YACjE,YAAY,EAAE,WAAW,CAAC,eAAe;SAC1C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,4CAA4C,WAAW,CAAC,eAAyB,EAAE,CACpF,CAAA;QACH,CAAC;QAED,kBAAkB;QAClB,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAE9C,gCAAgC;QAChC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAA;QAEjD,qBAAqB;QACrB,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAClD,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,iBAAiB,CAAA;QAC/B,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAClD,EAAE,WAAW,EAAE,IAAI,EAAE,EACrB,IAAI,CAAC,UAAU,CAChB,CAAA;QAED,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QAClC,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAE,IAAY;QACtC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;IAEO,MAAM,CAAC,aAAa,CAAE,IAAY;QACxC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC;CACF;AA94BD,oBA84BC"}
@@ -1243,64 +1243,38 @@ class BigNumber {
1243
1243
  * @param p - The `BigNumber` specifying the modulus field.
1244
1244
  * @returns The multiplicative inverse `BigNumber` in the modulus field specified by `p`.
1245
1245
  */
1246
+ /**
1247
+ * SECURITY NOTE:
1248
+ * This implementation avoids variable-time extended Euclidean algorithms
1249
+ * to reduce timing side-channel leakage. However, JavaScript BigInt arithmetic
1250
+ * does not provide constant-time guarantees. This implementation is suitable
1251
+ * for browser and single-tenant environments but is not hardened against
1252
+ * high-resolution timing attacks in shared CPU contexts.
1253
+ */
1246
1254
  _invmp(p) {
1247
1255
  this.assert(p._sign === 0, 'p must not be negative for _invmp');
1248
1256
  this.assert(!p.isZero(), 'p must not be zero for _invmp');
1249
- const aBN = this.umod(p);
1250
- let aVal = aBN._magnitude;
1251
- let bVal = p._magnitude;
1252
- let x1Val = 1n;
1253
- let x2Val = 0n;
1254
- const modulus = p._magnitude;
1255
- while (aVal > 1n && bVal > 1n) {
1256
- let i = 0;
1257
- while (((aVal >> BigInt(i)) & 1n) === 0n)
1258
- i++;
1259
- if (i > 0) {
1260
- aVal >>= BigInt(i);
1261
- for (let k = 0; k < i; ++k) {
1262
- if ((x1Val & 1n) !== 0n)
1263
- x1Val += modulus;
1264
- x1Val >>= 1n;
1265
- }
1266
- }
1267
- let j = 0;
1268
- while (((bVal >> BigInt(j)) & 1n) === 0n)
1269
- j++;
1270
- if (j > 0) {
1271
- bVal >>= BigInt(j);
1272
- for (let k = 0; k < j; ++k) {
1273
- if ((x2Val & 1n) !== 0n)
1274
- x2Val += modulus;
1275
- x2Val >>= 1n;
1276
- }
1277
- }
1278
- if (aVal >= bVal) {
1279
- aVal -= bVal;
1280
- x1Val -= x2Val;
1281
- }
1282
- else {
1283
- bVal -= aVal;
1284
- x2Val -= x1Val;
1285
- }
1257
+ // Fermat inversion: a^(p-2) mod p
1258
+ // NOTE: This assumes p is prime (true for all cryptographic use cases here).
1259
+ // This avoids variable-time EEA loops but BigInt arithmetic itself
1260
+ // is not constant-time (documented limitation).
1261
+ const a = this.umod(p);
1262
+ const exp = p.subn(2);
1263
+ // Use modular exponentiation via ReductionContext if available
1264
+ if (a.red !== null) {
1265
+ return a.redPow(exp);
1266
+ }
1267
+ // Fallback: non-reduction context modular exponentiation
1268
+ let result = new BigNumber(1n);
1269
+ let base = a.clone();
1270
+ const e = exp.clone();
1271
+ while (!e.isZero()) {
1272
+ if (e.isOdd())
1273
+ result = result.mul(base).umod(p);
1274
+ base = base.sqr().umod(p);
1275
+ e.iushrn(1);
1286
1276
  }
1287
- let resultVal;
1288
- if (aVal === 1n)
1289
- resultVal = x1Val;
1290
- else if (bVal === 1n)
1291
- resultVal = x2Val;
1292
- else if (aVal === 0n && bVal === 1n)
1293
- resultVal = x2Val;
1294
- else if (bVal === 0n && aVal === 1n)
1295
- resultVal = x1Val;
1296
- else
1297
- throw new Error('_invmp: GCD is not 1, inverse does not exist. aVal=' + aVal + ', bVal=' + bVal);
1298
- resultVal %= modulus;
1299
- if (resultVal < 0n)
1300
- resultVal += modulus;
1301
- const resultBN = new BigNumber(0n);
1302
- resultBN._initializeState(resultVal, 0);
1303
- return resultBN;
1277
+ return result;
1304
1278
  }
1305
1279
  /**
1306
1280
  * Performs multiplication between the BigNumber instance and a given BigNumber.