-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathsample-report.html
More file actions
2652 lines (2136 loc) · 460 KB
/
Copy pathsample-report.html
File metadata and controls
2652 lines (2136 loc) · 460 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sample Report - Contoso Tenant</title>
<script>
// Dark mode initialization - runs before React
document.documentElement.classList.toggle(
'dark',
localStorage.theme === 'dark' ||
(!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
);
</script>
<script type="module"
crossorigin>(function () { const t = document.createElement("link").relList; if (t && t.supports && t.supports("modulepreload")) return; for (const i of document.querySelectorAll('link[rel="modulepreload"]')) n(i); new MutationObserver(i => { for (const l of i) if (l.type === "childList") for (const o of l.addedNodes) o.tagName === "LINK" && o.rel === "modulepreload" && n(o) }).observe(document, { childList: !0, subtree: !0 }); function r(i) { const l = {}; return i.integrity && (l.integrity = i.integrity), i.referrerPolicy && (l.referrerPolicy = i.referrerPolicy), i.crossOrigin === "use-credentials" ? l.credentials = "include" : i.crossOrigin === "anonymous" ? l.credentials = "omit" : l.credentials = "same-origin", l } function n(i) { if (i.ep) return; i.ep = !0; const l = r(i); fetch(i.href, l) } })(); function gd(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e } var za = { exports: {} }, Si = {}, Va = { exports: {} }, I = {};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var un = Symbol.for("react.element"), md = Symbol.for("react.portal"), hd = Symbol.for("react.fragment"), vd = Symbol.for("react.strict_mode"), yd = Symbol.for("react.profiler"), Pd = Symbol.for("react.provider"), Sd = Symbol.for("react.context"), Rd = Symbol.for("react.forward_ref"), xd = Symbol.for("react.suspense"), Td = Symbol.for("react.memo"), kd = Symbol.for("react.lazy"), Ps = Symbol.iterator; function wd(e) { return e === null || typeof e != "object" ? null : (e = Ps && e[Ps] || e["@@iterator"], typeof e == "function" ? e : null) } var $a = { isMounted: function () { return !1 }, enqueueForceUpdate: function () { }, enqueueReplaceState: function () { }, enqueueSetState: function () { } }, Ga = Object.assign, Ha = {}; function Pr(e, t, r) { this.props = e, this.context = t, this.refs = Ha, this.updater = r || $a } Pr.prototype.isReactComponent = {}; Pr.prototype.setState = function (e, t) { if (typeof e != "object" && typeof e != "function" && e != null) throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); this.updater.enqueueSetState(this, e, t, "setState") }; Pr.prototype.forceUpdate = function (e) { this.updater.enqueueForceUpdate(this, e, "forceUpdate") }; function Ba() { } Ba.prototype = Pr.prototype; function Ro(e, t, r) { this.props = e, this.context = t, this.refs = Ha, this.updater = r || $a } var xo = Ro.prototype = new Ba; xo.constructor = Ro; Ga(xo, Pr.prototype); xo.isPureReactComponent = !0; var Ss = Array.isArray, Wa = Object.prototype.hasOwnProperty, To = { current: null }, qa = { key: !0, ref: !0, __self: !0, __source: !0 }; function Qa(e, t, r) { var n, i = {}, l = null, o = null; if (t != null) for (n in t.ref !== void 0 && (o = t.ref), t.key !== void 0 && (l = "" + t.key), t) Wa.call(t, n) && !qa.hasOwnProperty(n) && (i[n] = t[n]); var s = arguments.length - 2; if (s === 1) i.children = r; else if (1 < s) { for (var a = Array(s), u = 0; u < s; u++)a[u] = arguments[u + 2]; i.children = a } if (e && e.defaultProps) for (n in s = e.defaultProps, s) i[n] === void 0 && (i[n] = s[n]); return { $$typeof: un, type: e, key: l, ref: o, props: i, _owner: To.current } } function Cd(e, t) { return { $$typeof: un, type: e.type, key: t, ref: e.ref, props: e.props, _owner: e._owner } } function ko(e) { return typeof e == "object" && e !== null && e.$$typeof === un } function Ad(e) { var t = { "=": "=0", ":": "=2" }; return "$" + e.replace(/[=:]/g, function (r) { return t[r] }) } var Rs = /\/+/g; function zi(e, t) { return typeof e == "object" && e !== null && e.key != null ? Ad("" + e.key) : t.toString(36) } function Un(e, t, r, n, i) { var l = typeof e; (l === "undefined" || l === "boolean") && (e = null); var o = !1; if (e === null) o = !0; else switch (l) { case "string": case "number": o = !0; break; case "object": switch (e.$$typeof) { case un: case md: o = !0 } }if (o) return o = e, i = i(o), e = n === "" ? "." + zi(o, 0) : n, Ss(i) ? (r = "", e != null && (r = e.replace(Rs, "$&/") + "/"), Un(i, t, r, "", function (u) { return u })) : i != null && (ko(i) && (i = Cd(i, r + (!i.key || o && o.key === i.key ? "" : ("" + i.key).replace(Rs, "$&/") + "/") + e)), t.push(i)), 1; if (o = 0, n = n === "" ? "." : n + ":", Ss(e)) for (var s = 0; s < e.length; s++) { l = e[s]; var a = n + zi(l, s); o += Un(l, t, r, a, i) } else if (a = wd(e), typeof a == "function") for (e = a.call(e), s = 0; !(l = e.next()).done;)l = l.value, a = n + zi(l, s++), o += Un(l, t, r, a, i); else if (l === "object") throw t = String(e), Error("Objects are not valid as a React child (found: " + (t === "[object Object]" ? "object with keys {" + Object.keys(e).join(", ") + "}" : t) + "). If you meant to render a collection of children, use an array instead."); return o } function hn(e, t, r) { if (e == null) return e; var n = [], i = 0; return Un(e, n, "", "", function (l) { return t.call(r, l, i++) }), n } function Ld(e) { if (e._status === -1) { var t = e._result; t = t(), t.then(function (r) { (e._status === 0 || e._status === -1) && (e._status = 1, e._result = r) }, function (r) { (e._status === 0 || e._status === -1) && (e._status = 2, e._result = r) }), e._status === -1 && (e._status = 0, e._result = t) } if (e._status === 1) return e._result.default; throw e._result } var fe = { current: null }, jn = { transition: null }, Ed = { ReactCurrentDispatcher: fe, ReactCurrentBatchConfig: jn, ReactCurrentOwner: To }; function Ka() { throw Error("act(...) is not supported in production builds of React.") } I.Children = { map: hn, forEach: function (e, t, r) { hn(e, function () { t.apply(this, arguments) }, r) }, count: function (e) { var t = 0; return hn(e, function () { t++ }), t }, toArray: function (e) { return hn(e, function (t) { return t }) || [] }, only: function (e) { if (!ko(e)) throw Error("React.Children.only expected to receive a single React element child."); return e } }; I.Component = Pr; I.Fragment = hd; I.Profiler = yd; I.PureComponent = Ro; I.StrictMode = vd; I.Suspense = xd; I.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Ed; I.act = Ka; I.cloneElement = function (e, t, r) { if (e == null) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + e + "."); var n = Ga({}, e.props), i = e.key, l = e.ref, o = e._owner; if (t != null) { if (t.ref !== void 0 && (l = t.ref, o = To.current), t.key !== void 0 && (i = "" + t.key), e.type && e.type.defaultProps) var s = e.type.defaultProps; for (a in t) Wa.call(t, a) && !qa.hasOwnProperty(a) && (n[a] = t[a] === void 0 && s !== void 0 ? s[a] : t[a]) } var a = arguments.length - 2; if (a === 1) n.children = r; else if (1 < a) { s = Array(a); for (var u = 0; u < a; u++)s[u] = arguments[u + 2]; n.children = s } return { $$typeof: un, type: e.type, key: i, ref: l, props: n, _owner: o } }; I.createContext = function (e) { return e = { $$typeof: Sd, _currentValue: e, _currentValue2: e, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null }, e.Provider = { $$typeof: Pd, _context: e }, e.Consumer = e }; I.createElement = Qa; I.createFactory = function (e) { var t = Qa.bind(null, e); return t.type = e, t }; I.createRef = function () { return { current: null } }; I.forwardRef = function (e) { return { $$typeof: Rd, render: e } }; I.isValidElement = ko; I.lazy = function (e) { return { $$typeof: kd, _payload: { _status: -1, _result: e }, _init: Ld } }; I.memo = function (e, t) { return { $$typeof: Td, type: e, compare: t === void 0 ? null : t } }; I.startTransition = function (e) { var t = jn.transition; jn.transition = {}; try { e() } finally { jn.transition = t } }; I.unstable_act = Ka; I.useCallback = function (e, t) { return fe.current.useCallback(e, t) }; I.useContext = function (e) { return fe.current.useContext(e) }; I.useDebugValue = function () { }; I.useDeferredValue = function (e) { return fe.current.useDeferredValue(e) }; I.useEffect = function (e, t) { return fe.current.useEffect(e, t) }; I.useId = function () { return fe.current.useId() }; I.useImperativeHandle = function (e, t, r) { return fe.current.useImperativeHandle(e, t, r) }; I.useInsertionEffect = function (e, t) { return fe.current.useInsertionEffect(e, t) }; I.useLayoutEffect = function (e, t) { return fe.current.useLayoutEffect(e, t) }; I.useMemo = function (e, t) { return fe.current.useMemo(e, t) }; I.useReducer = function (e, t, r) { return fe.current.useReducer(e, t, r) }; I.useRef = function (e) { return fe.current.useRef(e) }; I.useState = function (e) { return fe.current.useState(e) }; I.useSyncExternalStore = function (e, t, r) { return fe.current.useSyncExternalStore(e, t, r) }; I.useTransition = function () { return fe.current.useTransition() }; I.version = "18.3.1"; Va.exports = I; var j = Va.exports; const Md = gd(j);/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var bd = j, Nd = Symbol.for("react.element"), _d = Symbol.for("react.fragment"), Dd = Object.prototype.hasOwnProperty, Id = bd.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, Fd = { key: !0, ref: !0, __self: !0, __source: !0 }; function Za(e, t, r) { var n, i = {}, l = null, o = null; r !== void 0 && (l = "" + r), t.key !== void 0 && (l = "" + t.key), t.ref !== void 0 && (o = t.ref); for (n in t) Dd.call(t, n) && !Fd.hasOwnProperty(n) && (i[n] = t[n]); if (e && e.defaultProps) for (n in t = e.defaultProps, t) i[n] === void 0 && (i[n] = t[n]); return { $$typeof: Nd, type: e, key: l, ref: o, props: i, _owner: Id.current } } Si.Fragment = _d; Si.jsx = Za; Si.jsxs = Za; za.exports = Si; var c = za.exports, Rl = {}, Xa = { exports: {} }, we = {}, Ya = { exports: {} }, Ja = {};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/(function (e) { function t(L, b) { var D = L.length; L.push(b); e: for (; 0 < D;) { var Q = D - 1 >>> 1, J = L[Q]; if (0 < i(J, b)) L[Q] = b, L[D] = J, D = Q; else break e } } function r(L) { return L.length === 0 ? null : L[0] } function n(L) { if (L.length === 0) return null; var b = L[0], D = L.pop(); if (D !== b) { L[0] = D; e: for (var Q = 0, J = L.length, gn = J >>> 1; Q < gn;) { var Lt = 2 * (Q + 1) - 1, Oi = L[Lt], Et = Lt + 1, mn = L[Et]; if (0 > i(Oi, D)) Et < J && 0 > i(mn, Oi) ? (L[Q] = mn, L[Et] = D, Q = Et) : (L[Q] = Oi, L[Lt] = D, Q = Lt); else if (Et < J && 0 > i(mn, D)) L[Q] = mn, L[Et] = D, Q = Et; else break e } } return b } function i(L, b) { var D = L.sortIndex - b.sortIndex; return D !== 0 ? D : L.id - b.id } if (typeof performance == "object" && typeof performance.now == "function") { var l = performance; e.unstable_now = function () { return l.now() } } else { var o = Date, s = o.now(); e.unstable_now = function () { return o.now() - s } } var a = [], u = [], g = 1, h = null, p = 3, y = !1, P = !1, S = !1, C = typeof setTimeout == "function" ? setTimeout : null, m = typeof clearTimeout == "function" ? clearTimeout : null, f = typeof setImmediate < "u" ? setImmediate : null; typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling); function d(L) { for (var b = r(u); b !== null;) { if (b.callback === null) n(u); else if (b.startTime <= L) n(u), b.sortIndex = b.expirationTime, t(a, b); else break; b = r(u) } } function x(L) { if (S = !1, d(L), !P) if (r(a) !== null) P = !0, Ui(v); else { var b = r(u); b !== null && ji(x, b.startTime - L) } } function v(L, b) { P = !1, S && (S = !1, m(k), k = -1), y = !0; var D = p; try { for (d(b), h = r(a); h !== null && (!(h.expirationTime > b) || L && !re());) { var Q = h.callback; if (typeof Q == "function") { h.callback = null, p = h.priorityLevel; var J = Q(h.expirationTime <= b); b = e.unstable_now(), typeof J == "function" ? h.callback = J : h === r(a) && n(a), d(b) } else n(a); h = r(a) } if (h !== null) var gn = !0; else { var Lt = r(u); Lt !== null && ji(x, Lt.startTime - b), gn = !1 } return gn } finally { h = null, p = D, y = !1 } } var R = !1, w = null, k = -1, _ = 5, N = -1; function re() { return !(e.unstable_now() - N < _) } function nt() { if (w !== null) { var L = e.unstable_now(); N = L; var b = !0; try { b = w(!0, L) } finally { b ? it() : (R = !1, w = null) } } else R = !1 } var it; if (typeof f == "function") it = function () { f(nt) }; else if (typeof MessageChannel < "u") { var Ht = new MessageChannel, fd = Ht.port2; Ht.port1.onmessage = nt, it = function () { fd.postMessage(null) } } else it = function () { C(nt, 0) }; function Ui(L) { w = L, R || (R = !0, it()) } function ji(L, b) { k = C(function () { L(e.unstable_now()) }, b) } e.unstable_IdlePriority = 5, e.unstable_ImmediatePriority = 1, e.unstable_LowPriority = 4, e.unstable_NormalPriority = 3, e.unstable_Profiling = null, e.unstable_UserBlockingPriority = 2, e.unstable_cancelCallback = function (L) { L.callback = null }, e.unstable_continueExecution = function () { P || y || (P = !0, Ui(v)) }, e.unstable_forceFrameRate = function (L) { 0 > L || 125 < L ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : _ = 0 < L ? Math.floor(1e3 / L) : 5 }, e.unstable_getCurrentPriorityLevel = function () { return p }, e.unstable_getFirstCallbackNode = function () { return r(a) }, e.unstable_next = function (L) { switch (p) { case 1: case 2: case 3: var b = 3; break; default: b = p }var D = p; p = b; try { return L() } finally { p = D } }, e.unstable_pauseExecution = function () { }, e.unstable_requestPaint = function () { }, e.unstable_runWithPriority = function (L, b) { switch (L) { case 1: case 2: case 3: case 4: case 5: break; default: L = 3 }var D = p; p = L; try { return b() } finally { p = D } }, e.unstable_scheduleCallback = function (L, b, D) { var Q = e.unstable_now(); switch (typeof D == "object" && D !== null ? (D = D.delay, D = typeof D == "number" && 0 < D ? Q + D : Q) : D = Q, L) { case 1: var J = -1; break; case 2: J = 250; break; case 5: J = 1073741823; break; case 4: J = 1e4; break; default: J = 5e3 }return J = D + J, L = { id: g++, callback: b, priorityLevel: L, startTime: D, expirationTime: J, sortIndex: -1 }, D > Q ? (L.sortIndex = D, t(u, L), r(a) === null && L === r(u) && (S ? (m(k), k = -1) : S = !0, ji(x, D - Q))) : (L.sortIndex = J, t(a, L), P || y || (P = !0, Ui(v))), L }, e.unstable_shouldYield = re, e.unstable_wrapCallback = function (L) { var b = p; return function () { var D = p; p = b; try { return L.apply(this, arguments) } finally { p = D } } } })(Ja); Ya.exports = Ja; var Ud = Ya.exports;/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var jd = j, Te = Ud; function T(e) { for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, r = 1; r < arguments.length; r++)t += "&args[]=" + encodeURIComponent(arguments[r]); return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." } var eu = new Set, Br = {}; function $t(e, t) { pr(e, t), pr(e + "Capture", t) } function pr(e, t) { for (Br[e] = t, e = 0; e < t.length; e++)eu.add(t[e]) } var Ye = !(typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u"), xl = Object.prototype.hasOwnProperty, Od = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, xs = {}, Ts = {}; function zd(e) { return xl.call(Ts, e) ? !0 : xl.call(xs, e) ? !1 : Od.test(e) ? Ts[e] = !0 : (xs[e] = !0, !1) } function Vd(e, t, r, n) { if (r !== null && r.type === 0) return !1; switch (typeof t) { case "function": case "symbol": return !0; case "boolean": return n ? !1 : r !== null ? !r.acceptsBooleans : (e = e.toLowerCase().slice(0, 5), e !== "data-" && e !== "aria-"); default: return !1 } } function $d(e, t, r, n) { if (t === null || typeof t > "u" || Vd(e, t, r, n)) return !0; if (n) return !1; if (r !== null) switch (r.type) { case 3: return !t; case 4: return t === !1; case 5: return isNaN(t); case 6: return isNaN(t) || 1 > t }return !1 } function ge(e, t, r, n, i, l, o) { this.acceptsBooleans = t === 2 || t === 3 || t === 4, this.attributeName = n, this.attributeNamespace = i, this.mustUseProperty = r, this.propertyName = e, this.type = t, this.sanitizeURL = l, this.removeEmptyString = o } var le = {}; "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function (e) { le[e] = new ge(e, 0, !1, e, null, !1, !1) });[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function (e) { var t = e[0]; le[t] = new ge(t, 1, !1, e[1], null, !1, !1) });["contentEditable", "draggable", "spellCheck", "value"].forEach(function (e) { le[e] = new ge(e, 2, !1, e.toLowerCase(), null, !1, !1) });["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (e) { le[e] = new ge(e, 2, !1, e, null, !1, !1) }); "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function (e) { le[e] = new ge(e, 3, !1, e.toLowerCase(), null, !1, !1) });["checked", "multiple", "muted", "selected"].forEach(function (e) { le[e] = new ge(e, 3, !0, e, null, !1, !1) });["capture", "download"].forEach(function (e) { le[e] = new ge(e, 4, !1, e, null, !1, !1) });["cols", "rows", "size", "span"].forEach(function (e) { le[e] = new ge(e, 6, !1, e, null, !1, !1) });["rowSpan", "start"].forEach(function (e) { le[e] = new ge(e, 5, !1, e.toLowerCase(), null, !1, !1) }); var wo = /[\-:]([a-z])/g; function Co(e) { return e[1].toUpperCase() } "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function (e) { var t = e.replace(wo, Co); le[t] = new ge(t, 1, !1, e, null, !1, !1) }); "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function (e) { var t = e.replace(wo, Co); le[t] = new ge(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1, !1) });["xml:base", "xml:lang", "xml:space"].forEach(function (e) { var t = e.replace(wo, Co); le[t] = new ge(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1, !1) });["tabIndex", "crossOrigin"].forEach(function (e) { le[e] = new ge(e, 1, !1, e.toLowerCase(), null, !1, !1) }); le.xlinkHref = new ge("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1);["src", "href", "action", "formAction"].forEach(function (e) { le[e] = new ge(e, 1, !1, e.toLowerCase(), null, !0, !0) }); function Ao(e, t, r, n) { var i = le.hasOwnProperty(t) ? le[t] : null; (i !== null ? i.type !== 0 : n || !(2 < t.length) || t[0] !== "o" && t[0] !== "O" || t[1] !== "n" && t[1] !== "N") && ($d(t, r, i, n) && (r = null), n || i === null ? zd(t) && (r === null ? e.removeAttribute(t) : e.setAttribute(t, "" + r)) : i.mustUseProperty ? e[i.propertyName] = r === null ? i.type === 3 ? !1 : "" : r : (t = i.attributeName, n = i.attributeNamespace, r === null ? e.removeAttribute(t) : (i = i.type, r = i === 3 || i === 4 && r === !0 ? "" : "" + r, n ? e.setAttributeNS(n, t, r) : e.setAttribute(t, r)))) } var rt = jd.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, vn = Symbol.for("react.element"), Qt = Symbol.for("react.portal"), Kt = Symbol.for("react.fragment"), Lo = Symbol.for("react.strict_mode"), Tl = Symbol.for("react.profiler"), tu = Symbol.for("react.provider"), ru = Symbol.for("react.context"), Eo = Symbol.for("react.forward_ref"), kl = Symbol.for("react.suspense"), wl = Symbol.for("react.suspense_list"), Mo = Symbol.for("react.memo"), st = Symbol.for("react.lazy"), nu = Symbol.for("react.offscreen"), ks = Symbol.iterator; function xr(e) { return e === null || typeof e != "object" ? null : (e = ks && e[ks] || e["@@iterator"], typeof e == "function" ? e : null) } var W = Object.assign, Vi; function br(e) {
if (Vi === void 0) try { throw Error() } catch (r) { var t = r.stack.trim().match(/\n( *(at )?)/); Vi = t && t[1] || "" } return `
`+ Vi + e
} var $i = !1; function Gi(e, t) {
if (!e || $i) return ""; $i = !0; var r = Error.prepareStackTrace; Error.prepareStackTrace = void 0; try { if (t) if (t = function () { throw Error() }, Object.defineProperty(t.prototype, "props", { set: function () { throw Error() } }), typeof Reflect == "object" && Reflect.construct) { try { Reflect.construct(t, []) } catch (u) { var n = u } Reflect.construct(e, [], t) } else { try { t.call() } catch (u) { n = u } e.call(t.prototype) } else { try { throw Error() } catch (u) { n = u } e() } } catch (u) {
if (u && n && typeof u.stack == "string") {
for (var i = u.stack.split(`
`), l = n.stack.split(`
`), o = i.length - 1, s = l.length - 1; 1 <= o && 0 <= s && i[o] !== l[s];)s--; for (; 1 <= o && 0 <= s; o--, s--)if (i[o] !== l[s]) {
if (o !== 1 || s !== 1) do if (o--, s--, 0 > s || i[o] !== l[s]) {
var a = `
`+ i[o].replace(" at new ", " at "); return e.displayName && a.includes("<anonymous>") && (a = a.replace("<anonymous>", e.displayName)), a
} while (1 <= o && 0 <= s); break
}
}
} finally { $i = !1, Error.prepareStackTrace = r } return (e = e ? e.displayName || e.name : "") ? br(e) : ""
} function Gd(e) { switch (e.tag) { case 5: return br(e.type); case 16: return br("Lazy"); case 13: return br("Suspense"); case 19: return br("SuspenseList"); case 0: case 2: case 15: return e = Gi(e.type, !1), e; case 11: return e = Gi(e.type.render, !1), e; case 1: return e = Gi(e.type, !0), e; default: return "" } } function Cl(e) { if (e == null) return null; if (typeof e == "function") return e.displayName || e.name || null; if (typeof e == "string") return e; switch (e) { case Kt: return "Fragment"; case Qt: return "Portal"; case Tl: return "Profiler"; case Lo: return "StrictMode"; case kl: return "Suspense"; case wl: return "SuspenseList" }if (typeof e == "object") switch (e.$$typeof) { case ru: return (e.displayName || "Context") + ".Consumer"; case tu: return (e._context.displayName || "Context") + ".Provider"; case Eo: var t = e.render; return e = e.displayName, e || (e = t.displayName || t.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e; case Mo: return t = e.displayName || null, t !== null ? t : Cl(e.type) || "Memo"; case st: t = e._payload, e = e._init; try { return Cl(e(t)) } catch { } }return null } function Hd(e) { var t = e.type; switch (e.tag) { case 24: return "Cache"; case 9: return (t.displayName || "Context") + ".Consumer"; case 10: return (t._context.displayName || "Context") + ".Provider"; case 18: return "DehydratedFragment"; case 11: return e = t.render, e = e.displayName || e.name || "", t.displayName || (e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"); case 7: return "Fragment"; case 5: return t; case 4: return "Portal"; case 3: return "Root"; case 6: return "Text"; case 16: return Cl(t); case 8: return t === Lo ? "StrictMode" : "Mode"; case 22: return "Offscreen"; case 12: return "Profiler"; case 21: return "Scope"; case 13: return "Suspense"; case 19: return "SuspenseList"; case 25: return "TracingMarker"; case 1: case 0: case 17: case 2: case 14: case 15: if (typeof t == "function") return t.displayName || t.name || null; if (typeof t == "string") return t }return null } function xt(e) { switch (typeof e) { case "boolean": case "number": case "string": case "undefined": return e; case "object": return e; default: return "" } } function iu(e) { var t = e.type; return (e = e.nodeName) && e.toLowerCase() === "input" && (t === "checkbox" || t === "radio") } function Bd(e) { var t = iu(e) ? "checked" : "value", r = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), n = "" + e[t]; if (!e.hasOwnProperty(t) && typeof r < "u" && typeof r.get == "function" && typeof r.set == "function") { var i = r.get, l = r.set; return Object.defineProperty(e, t, { configurable: !0, get: function () { return i.call(this) }, set: function (o) { n = "" + o, l.call(this, o) } }), Object.defineProperty(e, t, { enumerable: r.enumerable }), { getValue: function () { return n }, setValue: function (o) { n = "" + o }, stopTracking: function () { e._valueTracker = null, delete e[t] } } } } function yn(e) { e._valueTracker || (e._valueTracker = Bd(e)) } function lu(e) { if (!e) return !1; var t = e._valueTracker; if (!t) return !0; var r = t.getValue(), n = ""; return e && (n = iu(e) ? e.checked ? "true" : "false" : e.value), e = n, e !== r ? (t.setValue(e), !0) : !1 } function Zn(e) { if (e = e || (typeof document < "u" ? document : void 0), typeof e > "u") return null; try { return e.activeElement || e.body } catch { return e.body } } function Al(e, t) { var r = t.checked; return W({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: r ?? e._wrapperState.initialChecked }) } function ws(e, t) { var r = t.defaultValue == null ? "" : t.defaultValue, n = t.checked != null ? t.checked : t.defaultChecked; r = xt(t.value != null ? t.value : r), e._wrapperState = { initialChecked: n, initialValue: r, controlled: t.type === "checkbox" || t.type === "radio" ? t.checked != null : t.value != null } } function ou(e, t) { t = t.checked, t != null && Ao(e, "checked", t, !1) } function Ll(e, t) { ou(e, t); var r = xt(t.value), n = t.type; if (r != null) n === "number" ? (r === 0 && e.value === "" || e.value != r) && (e.value = "" + r) : e.value !== "" + r && (e.value = "" + r); else if (n === "submit" || n === "reset") { e.removeAttribute("value"); return } t.hasOwnProperty("value") ? El(e, t.type, r) : t.hasOwnProperty("defaultValue") && El(e, t.type, xt(t.defaultValue)), t.checked == null && t.defaultChecked != null && (e.defaultChecked = !!t.defaultChecked) } function Cs(e, t, r) { if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { var n = t.type; if (!(n !== "submit" && n !== "reset" || t.value !== void 0 && t.value !== null)) return; t = "" + e._wrapperState.initialValue, r || t === e.value || (e.value = t), e.defaultValue = t } r = e.name, r !== "" && (e.name = ""), e.defaultChecked = !!e._wrapperState.initialChecked, r !== "" && (e.name = r) } function El(e, t, r) { (t !== "number" || Zn(e.ownerDocument) !== e) && (r == null ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + r && (e.defaultValue = "" + r)) } var Nr = Array.isArray; function or(e, t, r, n) { if (e = e.options, t) { t = {}; for (var i = 0; i < r.length; i++)t["$" + r[i]] = !0; for (r = 0; r < e.length; r++)i = t.hasOwnProperty("$" + e[r].value), e[r].selected !== i && (e[r].selected = i), i && n && (e[r].defaultSelected = !0) } else { for (r = "" + xt(r), t = null, i = 0; i < e.length; i++) { if (e[i].value === r) { e[i].selected = !0, n && (e[i].defaultSelected = !0); return } t !== null || e[i].disabled || (t = e[i]) } t !== null && (t.selected = !0) } } function Ml(e, t) { if (t.dangerouslySetInnerHTML != null) throw Error(T(91)); return W({}, t, { value: void 0, defaultValue: void 0, children: "" + e._wrapperState.initialValue }) } function As(e, t) { var r = t.value; if (r == null) { if (r = t.children, t = t.defaultValue, r != null) { if (t != null) throw Error(T(92)); if (Nr(r)) { if (1 < r.length) throw Error(T(93)); r = r[0] } t = r } t == null && (t = ""), r = t } e._wrapperState = { initialValue: xt(r) } } function su(e, t) { var r = xt(t.value), n = xt(t.defaultValue); r != null && (r = "" + r, r !== e.value && (e.value = r), t.defaultValue == null && e.defaultValue !== r && (e.defaultValue = r)), n != null && (e.defaultValue = "" + n) } function Ls(e) { var t = e.textContent; t === e._wrapperState.initialValue && t !== "" && t !== null && (e.value = t) } function au(e) { switch (e) { case "svg": return "http://www.w3.org/2000/svg"; case "math": return "http://www.w3.org/1998/Math/MathML"; default: return "http://www.w3.org/1999/xhtml" } } function bl(e, t) { return e == null || e === "http://www.w3.org/1999/xhtml" ? au(t) : e === "http://www.w3.org/2000/svg" && t === "foreignObject" ? "http://www.w3.org/1999/xhtml" : e } var Pn, uu = function (e) { return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function (t, r, n, i) { MSApp.execUnsafeLocalFunction(function () { return e(t, r, n, i) }) } : e }(function (e, t) { if (e.namespaceURI !== "http://www.w3.org/2000/svg" || "innerHTML" in e) e.innerHTML = t; else { for (Pn = Pn || document.createElement("div"), Pn.innerHTML = "<svg>" + t.valueOf().toString() + "</svg>", t = Pn.firstChild; e.firstChild;)e.removeChild(e.firstChild); for (; t.firstChild;)e.appendChild(t.firstChild) } }); function Wr(e, t) { if (t) { var r = e.firstChild; if (r && r === e.lastChild && r.nodeType === 3) { r.nodeValue = t; return } } e.textContent = t } var Ir = { animationIterationCount: !0, aspectRatio: !0, borderImageOutset: !0, borderImageSlice: !0, borderImageWidth: !0, boxFlex: !0, boxFlexGroup: !0, boxOrdinalGroup: !0, columnCount: !0, columns: !0, flex: !0, flexGrow: !0, flexPositive: !0, flexShrink: !0, flexNegative: !0, flexOrder: !0, gridArea: !0, gridRow: !0, gridRowEnd: !0, gridRowSpan: !0, gridRowStart: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnSpan: !0, gridColumnStart: !0, fontWeight: !0, lineClamp: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, tabSize: !0, widows: !0, zIndex: !0, zoom: !0, fillOpacity: !0, floodOpacity: !0, stopOpacity: !0, strokeDasharray: !0, strokeDashoffset: !0, strokeMiterlimit: !0, strokeOpacity: !0, strokeWidth: !0 }, Wd = ["Webkit", "ms", "Moz", "O"]; Object.keys(Ir).forEach(function (e) { Wd.forEach(function (t) { t = t + e.charAt(0).toUpperCase() + e.substring(1), Ir[t] = Ir[e] }) }); function cu(e, t, r) { return t == null || typeof t == "boolean" || t === "" ? "" : r || typeof t != "number" || t === 0 || Ir.hasOwnProperty(e) && Ir[e] ? ("" + t).trim() : t + "px" } function du(e, t) { e = e.style; for (var r in t) if (t.hasOwnProperty(r)) { var n = r.indexOf("--") === 0, i = cu(r, t[r], n); r === "float" && (r = "cssFloat"), n ? e.setProperty(r, i) : e[r] = i } } var qd = W({ menuitem: !0 }, { area: !0, base: !0, br: !0, col: !0, embed: !0, hr: !0, img: !0, input: !0, keygen: !0, link: !0, meta: !0, param: !0, source: !0, track: !0, wbr: !0 }); function Nl(e, t) { if (t) { if (qd[e] && (t.children != null || t.dangerouslySetInnerHTML != null)) throw Error(T(137, e)); if (t.dangerouslySetInnerHTML != null) { if (t.children != null) throw Error(T(60)); if (typeof t.dangerouslySetInnerHTML != "object" || !("__html" in t.dangerouslySetInnerHTML)) throw Error(T(61)) } if (t.style != null && typeof t.style != "object") throw Error(T(62)) } } function _l(e, t) { if (e.indexOf("-") === -1) return typeof t.is == "string"; switch (e) { case "annotation-xml": case "color-profile": case "font-face": case "font-face-src": case "font-face-uri": case "font-face-format": case "font-face-name": case "missing-glyph": return !1; default: return !0 } } var Dl = null; function bo(e) { return e = e.target || e.srcElement || window, e.correspondingUseElement && (e = e.correspondingUseElement), e.nodeType === 3 ? e.parentNode : e } var Il = null, sr = null, ar = null; function Es(e) { if (e = pn(e)) { if (typeof Il != "function") throw Error(T(280)); var t = e.stateNode; t && (t = wi(t), Il(e.stateNode, e.type, t)) } } function pu(e) { sr ? ar ? ar.push(e) : ar = [e] : sr = e } function fu() { if (sr) { var e = sr, t = ar; if (ar = sr = null, Es(e), t) for (e = 0; e < t.length; e++)Es(t[e]) } } function gu(e, t) { return e(t) } function mu() { } var Hi = !1; function hu(e, t, r) { if (Hi) return e(t, r); Hi = !0; try { return gu(e, t, r) } finally { Hi = !1, (sr !== null || ar !== null) && (mu(), fu()) } } function qr(e, t) { var r = e.stateNode; if (r === null) return null; var n = wi(r); if (n === null) return null; r = n[t]; e: switch (t) { case "onClick": case "onClickCapture": case "onDoubleClick": case "onDoubleClickCapture": case "onMouseDown": case "onMouseDownCapture": case "onMouseMove": case "onMouseMoveCapture": case "onMouseUp": case "onMouseUpCapture": case "onMouseEnter": (n = !n.disabled) || (e = e.type, n = !(e === "button" || e === "input" || e === "select" || e === "textarea")), e = !n; break e; default: e = !1 }if (e) return null; if (r && typeof r != "function") throw Error(T(231, t, typeof r)); return r } var Fl = !1; if (Ye) try { var Tr = {}; Object.defineProperty(Tr, "passive", { get: function () { Fl = !0 } }), window.addEventListener("test", Tr, Tr), window.removeEventListener("test", Tr, Tr) } catch { Fl = !1 } function Qd(e, t, r, n, i, l, o, s, a) { var u = Array.prototype.slice.call(arguments, 3); try { t.apply(r, u) } catch (g) { this.onError(g) } } var Fr = !1, Xn = null, Yn = !1, Ul = null, Kd = { onError: function (e) { Fr = !0, Xn = e } }; function Zd(e, t, r, n, i, l, o, s, a) { Fr = !1, Xn = null, Qd.apply(Kd, arguments) } function Xd(e, t, r, n, i, l, o, s, a) { if (Zd.apply(this, arguments), Fr) { if (Fr) { var u = Xn; Fr = !1, Xn = null } else throw Error(T(198)); Yn || (Yn = !0, Ul = u) } } function Gt(e) { var t = e, r = e; if (e.alternate) for (; t.return;)t = t.return; else { e = t; do t = e, t.flags & 4098 && (r = t.return), e = t.return; while (e) } return t.tag === 3 ? r : null } function vu(e) { if (e.tag === 13) { var t = e.memoizedState; if (t === null && (e = e.alternate, e !== null && (t = e.memoizedState)), t !== null) return t.dehydrated } return null } function Ms(e) { if (Gt(e) !== e) throw Error(T(188)) } function Yd(e) { var t = e.alternate; if (!t) { if (t = Gt(e), t === null) throw Error(T(188)); return t !== e ? null : e } for (var r = e, n = t; ;) { var i = r.return; if (i === null) break; var l = i.alternate; if (l === null) { if (n = i.return, n !== null) { r = n; continue } break } if (i.child === l.child) { for (l = i.child; l;) { if (l === r) return Ms(i), e; if (l === n) return Ms(i), t; l = l.sibling } throw Error(T(188)) } if (r.return !== n.return) r = i, n = l; else { for (var o = !1, s = i.child; s;) { if (s === r) { o = !0, r = i, n = l; break } if (s === n) { o = !0, n = i, r = l; break } s = s.sibling } if (!o) { for (s = l.child; s;) { if (s === r) { o = !0, r = l, n = i; break } if (s === n) { o = !0, n = l, r = i; break } s = s.sibling } if (!o) throw Error(T(189)) } } if (r.alternate !== n) throw Error(T(190)) } if (r.tag !== 3) throw Error(T(188)); return r.stateNode.current === r ? e : t } function yu(e) { return e = Yd(e), e !== null ? Pu(e) : null } function Pu(e) { if (e.tag === 5 || e.tag === 6) return e; for (e = e.child; e !== null;) { var t = Pu(e); if (t !== null) return t; e = e.sibling } return null } var Su = Te.unstable_scheduleCallback, bs = Te.unstable_cancelCallback, Jd = Te.unstable_shouldYield, ep = Te.unstable_requestPaint, K = Te.unstable_now, tp = Te.unstable_getCurrentPriorityLevel, No = Te.unstable_ImmediatePriority, Ru = Te.unstable_UserBlockingPriority, Jn = Te.unstable_NormalPriority, rp = Te.unstable_LowPriority, xu = Te.unstable_IdlePriority, Ri = null, He = null; function np(e) { if (He && typeof He.onCommitFiberRoot == "function") try { He.onCommitFiberRoot(Ri, e, void 0, (e.current.flags & 128) === 128) } catch { } } var Ue = Math.clz32 ? Math.clz32 : op, ip = Math.log, lp = Math.LN2; function op(e) { return e >>>= 0, e === 0 ? 32 : 31 - (ip(e) / lp | 0) | 0 } var Sn = 64, Rn = 4194304; function _r(e) { switch (e & -e) { case 1: return 1; case 2: return 2; case 4: return 4; case 8: return 8; case 16: return 16; case 32: return 32; case 64: case 128: case 256: case 512: case 1024: case 2048: case 4096: case 8192: case 16384: case 32768: case 65536: case 131072: case 262144: case 524288: case 1048576: case 2097152: return e & 4194240; case 4194304: case 8388608: case 16777216: case 33554432: case 67108864: return e & 130023424; case 134217728: return 134217728; case 268435456: return 268435456; case 536870912: return 536870912; case 1073741824: return 1073741824; default: return e } } function ei(e, t) { var r = e.pendingLanes; if (r === 0) return 0; var n = 0, i = e.suspendedLanes, l = e.pingedLanes, o = r & 268435455; if (o !== 0) { var s = o & ~i; s !== 0 ? n = _r(s) : (l &= o, l !== 0 && (n = _r(l))) } else o = r & ~i, o !== 0 ? n = _r(o) : l !== 0 && (n = _r(l)); if (n === 0) return 0; if (t !== 0 && t !== n && !(t & i) && (i = n & -n, l = t & -t, i >= l || i === 16 && (l & 4194240) !== 0)) return t; if (n & 4 && (n |= r & 16), t = e.entangledLanes, t !== 0) for (e = e.entanglements, t &= n; 0 < t;)r = 31 - Ue(t), i = 1 << r, n |= e[r], t &= ~i; return n } function sp(e, t) { switch (e) { case 1: case 2: case 4: return t + 250; case 8: case 16: case 32: case 64: case 128: case 256: case 512: case 1024: case 2048: case 4096: case 8192: case 16384: case 32768: case 65536: case 131072: case 262144: case 524288: case 1048576: case 2097152: return t + 5e3; case 4194304: case 8388608: case 16777216: case 33554432: case 67108864: return -1; case 134217728: case 268435456: case 536870912: case 1073741824: return -1; default: return -1 } } function ap(e, t) { for (var r = e.suspendedLanes, n = e.pingedLanes, i = e.expirationTimes, l = e.pendingLanes; 0 < l;) { var o = 31 - Ue(l), s = 1 << o, a = i[o]; a === -1 ? (!(s & r) || s & n) && (i[o] = sp(s, t)) : a <= t && (e.expiredLanes |= s), l &= ~s } } function jl(e) { return e = e.pendingLanes & -1073741825, e !== 0 ? e : e & 1073741824 ? 1073741824 : 0 } function Tu() { var e = Sn; return Sn <<= 1, !(Sn & 4194240) && (Sn = 64), e } function Bi(e) { for (var t = [], r = 0; 31 > r; r++)t.push(e); return t } function cn(e, t, r) { e.pendingLanes |= t, t !== 536870912 && (e.suspendedLanes = 0, e.pingedLanes = 0), e = e.eventTimes, t = 31 - Ue(t), e[t] = r } function up(e, t) { var r = e.pendingLanes & ~t; e.pendingLanes = t, e.suspendedLanes = 0, e.pingedLanes = 0, e.expiredLanes &= t, e.mutableReadLanes &= t, e.entangledLanes &= t, t = e.entanglements; var n = e.eventTimes; for (e = e.expirationTimes; 0 < r;) { var i = 31 - Ue(r), l = 1 << i; t[i] = 0, n[i] = -1, e[i] = -1, r &= ~l } } function _o(e, t) { var r = e.entangledLanes |= t; for (e = e.entanglements; r;) { var n = 31 - Ue(r), i = 1 << n; i & t | e[n] & t && (e[n] |= t), r &= ~i } } var U = 0; function ku(e) { return e &= -e, 1 < e ? 4 < e ? e & 268435455 ? 16 : 536870912 : 4 : 1 } var wu, Do, Cu, Au, Lu, Ol = !1, xn = [], gt = null, mt = null, ht = null, Qr = new Map, Kr = new Map, ut = [], cp = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "); function Ns(e, t) { switch (e) { case "focusin": case "focusout": gt = null; break; case "dragenter": case "dragleave": mt = null; break; case "mouseover": case "mouseout": ht = null; break; case "pointerover": case "pointerout": Qr.delete(t.pointerId); break; case "gotpointercapture": case "lostpointercapture": Kr.delete(t.pointerId) } } function kr(e, t, r, n, i, l) { return e === null || e.nativeEvent !== l ? (e = { blockedOn: t, domEventName: r, eventSystemFlags: n, nativeEvent: l, targetContainers: [i] }, t !== null && (t = pn(t), t !== null && Do(t)), e) : (e.eventSystemFlags |= n, t = e.targetContainers, i !== null && t.indexOf(i) === -1 && t.push(i), e) } function dp(e, t, r, n, i) { switch (t) { case "focusin": return gt = kr(gt, e, t, r, n, i), !0; case "dragenter": return mt = kr(mt, e, t, r, n, i), !0; case "mouseover": return ht = kr(ht, e, t, r, n, i), !0; case "pointerover": var l = i.pointerId; return Qr.set(l, kr(Qr.get(l) || null, e, t, r, n, i)), !0; case "gotpointercapture": return l = i.pointerId, Kr.set(l, kr(Kr.get(l) || null, e, t, r, n, i)), !0 }return !1 } function Eu(e) { var t = Nt(e.target); if (t !== null) { var r = Gt(t); if (r !== null) { if (t = r.tag, t === 13) { if (t = vu(r), t !== null) { e.blockedOn = t, Lu(e.priority, function () { Cu(r) }); return } } else if (t === 3 && r.stateNode.current.memoizedState.isDehydrated) { e.blockedOn = r.tag === 3 ? r.stateNode.containerInfo : null; return } } } e.blockedOn = null } function On(e) { if (e.blockedOn !== null) return !1; for (var t = e.targetContainers; 0 < t.length;) { var r = zl(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent); if (r === null) { r = e.nativeEvent; var n = new r.constructor(r.type, r); Dl = n, r.target.dispatchEvent(n), Dl = null } else return t = pn(r), t !== null && Do(t), e.blockedOn = r, !1; t.shift() } return !0 } function _s(e, t, r) { On(e) && r.delete(t) } function pp() { Ol = !1, gt !== null && On(gt) && (gt = null), mt !== null && On(mt) && (mt = null), ht !== null && On(ht) && (ht = null), Qr.forEach(_s), Kr.forEach(_s) } function wr(e, t) { e.blockedOn === t && (e.blockedOn = null, Ol || (Ol = !0, Te.unstable_scheduleCallback(Te.unstable_NormalPriority, pp))) } function Zr(e) { function t(i) { return wr(i, e) } if (0 < xn.length) { wr(xn[0], e); for (var r = 1; r < xn.length; r++) { var n = xn[r]; n.blockedOn === e && (n.blockedOn = null) } } for (gt !== null && wr(gt, e), mt !== null && wr(mt, e), ht !== null && wr(ht, e), Qr.forEach(t), Kr.forEach(t), r = 0; r < ut.length; r++)n = ut[r], n.blockedOn === e && (n.blockedOn = null); for (; 0 < ut.length && (r = ut[0], r.blockedOn === null);)Eu(r), r.blockedOn === null && ut.shift() } var ur = rt.ReactCurrentBatchConfig, ti = !0; function fp(e, t, r, n) { var i = U, l = ur.transition; ur.transition = null; try { U = 1, Io(e, t, r, n) } finally { U = i, ur.transition = l } } function gp(e, t, r, n) { var i = U, l = ur.transition; ur.transition = null; try { U = 4, Io(e, t, r, n) } finally { U = i, ur.transition = l } } function Io(e, t, r, n) { if (ti) { var i = zl(e, t, r, n); if (i === null) tl(e, t, n, ri, r), Ns(e, n); else if (dp(i, e, t, r, n)) n.stopPropagation(); else if (Ns(e, n), t & 4 && -1 < cp.indexOf(e)) { for (; i !== null;) { var l = pn(i); if (l !== null && wu(l), l = zl(e, t, r, n), l === null && tl(e, t, n, ri, r), l === i) break; i = l } i !== null && n.stopPropagation() } else tl(e, t, n, null, r) } } var ri = null; function zl(e, t, r, n) { if (ri = null, e = bo(n), e = Nt(e), e !== null) if (t = Gt(e), t === null) e = null; else if (r = t.tag, r === 13) { if (e = vu(t), e !== null) return e; e = null } else if (r === 3) { if (t.stateNode.current.memoizedState.isDehydrated) return t.tag === 3 ? t.stateNode.containerInfo : null; e = null } else t !== e && (e = null); return ri = e, null } function Mu(e) { switch (e) { case "cancel": case "click": case "close": case "contextmenu": case "copy": case "cut": case "auxclick": case "dblclick": case "dragend": case "dragstart": case "drop": case "focusin": case "focusout": case "input": case "invalid": case "keydown": case "keypress": case "keyup": case "mousedown": case "mouseup": case "paste": case "pause": case "play": case "pointercancel": case "pointerdown": case "pointerup": case "ratechange": case "reset": case "resize": case "seeked": case "submit": case "touchcancel": case "touchend": case "touchstart": case "volumechange": case "change": case "selectionchange": case "textInput": case "compositionstart": case "compositionend": case "compositionupdate": case "beforeblur": case "afterblur": case "beforeinput": case "blur": case "fullscreenchange": case "focus": case "hashchange": case "popstate": case "select": case "selectstart": return 1; case "drag": case "dragenter": case "dragexit": case "dragleave": case "dragover": case "mousemove": case "mouseout": case "mouseover": case "pointermove": case "pointerout": case "pointerover": case "scroll": case "toggle": case "touchmove": case "wheel": case "mouseenter": case "mouseleave": case "pointerenter": case "pointerleave": return 4; case "message": switch (tp()) { case No: return 1; case Ru: return 4; case Jn: case rp: return 16; case xu: return 536870912; default: return 16 }default: return 16 } } var dt = null, Fo = null, zn = null; function bu() { if (zn) return zn; var e, t = Fo, r = t.length, n, i = "value" in dt ? dt.value : dt.textContent, l = i.length; for (e = 0; e < r && t[e] === i[e]; e++); var o = r - e; for (n = 1; n <= o && t[r - n] === i[l - n]; n++); return zn = i.slice(e, 1 < n ? 1 - n : void 0) } function Vn(e) { var t = e.keyCode; return "charCode" in e ? (e = e.charCode, e === 0 && t === 13 && (e = 13)) : e = t, e === 10 && (e = 13), 32 <= e || e === 13 ? e : 0 } function Tn() { return !0 } function Ds() { return !1 } function Ce(e) { function t(r, n, i, l, o) { this._reactName = r, this._targetInst = i, this.type = n, this.nativeEvent = l, this.target = o, this.currentTarget = null; for (var s in e) e.hasOwnProperty(s) && (r = e[s], this[s] = r ? r(l) : l[s]); return this.isDefaultPrevented = (l.defaultPrevented != null ? l.defaultPrevented : l.returnValue === !1) ? Tn : Ds, this.isPropagationStopped = Ds, this } return W(t.prototype, { preventDefault: function () { this.defaultPrevented = !0; var r = this.nativeEvent; r && (r.preventDefault ? r.preventDefault() : typeof r.returnValue != "unknown" && (r.returnValue = !1), this.isDefaultPrevented = Tn) }, stopPropagation: function () { var r = this.nativeEvent; r && (r.stopPropagation ? r.stopPropagation() : typeof r.cancelBubble != "unknown" && (r.cancelBubble = !0), this.isPropagationStopped = Tn) }, persist: function () { }, isPersistent: Tn }), t } var Sr = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function (e) { return e.timeStamp || Date.now() }, defaultPrevented: 0, isTrusted: 0 }, Uo = Ce(Sr), dn = W({}, Sr, { view: 0, detail: 0 }), mp = Ce(dn), Wi, qi, Cr, xi = W({}, dn, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: jo, button: 0, buttons: 0, relatedTarget: function (e) { return e.relatedTarget === void 0 ? e.fromElement === e.srcElement ? e.toElement : e.fromElement : e.relatedTarget }, movementX: function (e) { return "movementX" in e ? e.movementX : (e !== Cr && (Cr && e.type === "mousemove" ? (Wi = e.screenX - Cr.screenX, qi = e.screenY - Cr.screenY) : qi = Wi = 0, Cr = e), Wi) }, movementY: function (e) { return "movementY" in e ? e.movementY : qi } }), Is = Ce(xi), hp = W({}, xi, { dataTransfer: 0 }), vp = Ce(hp), yp = W({}, dn, { relatedTarget: 0 }), Qi = Ce(yp), Pp = W({}, Sr, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Sp = Ce(Pp), Rp = W({}, Sr, { clipboardData: function (e) { return "clipboardData" in e ? e.clipboardData : window.clipboardData } }), xp = Ce(Rp), Tp = W({}, Sr, { data: 0 }), Fs = Ce(Tp), kp = { Esc: "Escape", Spacebar: " ", Left: "ArrowLeft", Up: "ArrowUp", Right: "ArrowRight", Down: "ArrowDown", Del: "Delete", Win: "OS", Menu: "ContextMenu", Apps: "ContextMenu", Scroll: "ScrollLock", MozPrintableKey: "Unidentified" }, wp = { 8: "Backspace", 9: "Tab", 12: "Clear", 13: "Enter", 16: "Shift", 17: "Control", 18: "Alt", 19: "Pause", 20: "CapsLock", 27: "Escape", 32: " ", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown", 45: "Insert", 46: "Delete", 112: "F1", 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 144: "NumLock", 145: "ScrollLock", 224: "Meta" }, Cp = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" }; function Ap(e) { var t = this.nativeEvent; return t.getModifierState ? t.getModifierState(e) : (e = Cp[e]) ? !!t[e] : !1 } function jo() { return Ap } var Lp = W({}, dn, { key: function (e) { if (e.key) { var t = kp[e.key] || e.key; if (t !== "Unidentified") return t } return e.type === "keypress" ? (e = Vn(e), e === 13 ? "Enter" : String.fromCharCode(e)) : e.type === "keydown" || e.type === "keyup" ? wp[e.keyCode] || "Unidentified" : "" }, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: jo, charCode: function (e) { return e.type === "keypress" ? Vn(e) : 0 }, keyCode: function (e) { return e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0 }, which: function (e) { return e.type === "keypress" ? Vn(e) : e.type === "keydown" || e.type === "keyup" ? e.keyCode : 0 } }), Ep = Ce(Lp), Mp = W({}, xi, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Us = Ce(Mp), bp = W({}, dn, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: jo }), Np = Ce(bp), _p = W({}, Sr, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Dp = Ce(_p), Ip = W({}, xi, { deltaX: function (e) { return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0 }, deltaY: function (e) { return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0 }, deltaZ: 0, deltaMode: 0 }), Fp = Ce(Ip), Up = [9, 13, 27, 32], Oo = Ye && "CompositionEvent" in window, Ur = null; Ye && "documentMode" in document && (Ur = document.documentMode); var jp = Ye && "TextEvent" in window && !Ur, Nu = Ye && (!Oo || Ur && 8 < Ur && 11 >= Ur), js = " ", Os = !1; function _u(e, t) { switch (e) { case "keyup": return Up.indexOf(t.keyCode) !== -1; case "keydown": return t.keyCode !== 229; case "keypress": case "mousedown": case "focusout": return !0; default: return !1 } } function Du(e) { return e = e.detail, typeof e == "object" && "data" in e ? e.data : null } var Zt = !1; function Op(e, t) { switch (e) { case "compositionend": return Du(t); case "keypress": return t.which !== 32 ? null : (Os = !0, js); case "textInput": return e = t.data, e === js && Os ? null : e; default: return null } } function zp(e, t) { if (Zt) return e === "compositionend" || !Oo && _u(e, t) ? (e = bu(), zn = Fo = dt = null, Zt = !1, e) : null; switch (e) { case "paste": return null; case "keypress": if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) { if (t.char && 1 < t.char.length) return t.char; if (t.which) return String.fromCharCode(t.which) } return null; case "compositionend": return Nu && t.locale !== "ko" ? null : t.data; default: return null } } var Vp = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 }; function zs(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return t === "input" ? !!Vp[e.type] : t === "textarea" } function Iu(e, t, r, n) { pu(n), t = ni(t, "onChange"), 0 < t.length && (r = new Uo("onChange", "change", null, r, n), e.push({ event: r, listeners: t })) } var jr = null, Xr = null; function $p(e) { Wu(e, 0) } function Ti(e) { var t = Jt(e); if (lu(t)) return e } function Gp(e, t) { if (e === "change") return t } var Fu = !1; if (Ye) { var Ki; if (Ye) { var Zi = "oninput" in document; if (!Zi) { var Vs = document.createElement("div"); Vs.setAttribute("oninput", "return;"), Zi = typeof Vs.oninput == "function" } Ki = Zi } else Ki = !1; Fu = Ki && (!document.documentMode || 9 < document.documentMode) } function $s() { jr && (jr.detachEvent("onpropertychange", Uu), Xr = jr = null) } function Uu(e) { if (e.propertyName === "value" && Ti(Xr)) { var t = []; Iu(t, Xr, e, bo(e)), hu($p, t) } } function Hp(e, t, r) { e === "focusin" ? ($s(), jr = t, Xr = r, jr.attachEvent("onpropertychange", Uu)) : e === "focusout" && $s() } function Bp(e) { if (e === "selectionchange" || e === "keyup" || e === "keydown") return Ti(Xr) } function Wp(e, t) { if (e === "click") return Ti(t) } function qp(e, t) { if (e === "input" || e === "change") return Ti(t) } function Qp(e, t) { return e === t && (e !== 0 || 1 / e === 1 / t) || e !== e && t !== t } var ze = typeof Object.is == "function" ? Object.is : Qp; function Yr(e, t) { if (ze(e, t)) return !0; if (typeof e != "object" || e === null || typeof t != "object" || t === null) return !1; var r = Object.keys(e), n = Object.keys(t); if (r.length !== n.length) return !1; for (n = 0; n < r.length; n++) { var i = r[n]; if (!xl.call(t, i) || !ze(e[i], t[i])) return !1 } return !0 } function Gs(e) { for (; e && e.firstChild;)e = e.firstChild; return e } function Hs(e, t) { var r = Gs(e); e = 0; for (var n; r;) { if (r.nodeType === 3) { if (n = e + r.textContent.length, e <= t && n >= t) return { node: r, offset: t - e }; e = n } e: { for (; r;) { if (r.nextSibling) { r = r.nextSibling; break e } r = r.parentNode } r = void 0 } r = Gs(r) } } function ju(e, t) { return e && t ? e === t ? !0 : e && e.nodeType === 3 ? !1 : t && t.nodeType === 3 ? ju(e, t.parentNode) : "contains" in e ? e.contains(t) : e.compareDocumentPosition ? !!(e.compareDocumentPosition(t) & 16) : !1 : !1 } function Ou() { for (var e = window, t = Zn(); t instanceof e.HTMLIFrameElement;) { try { var r = typeof t.contentWindow.location.href == "string" } catch { r = !1 } if (r) e = t.contentWindow; else break; t = Zn(e.document) } return t } function zo(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return t && (t === "input" && (e.type === "text" || e.type === "search" || e.type === "tel" || e.type === "url" || e.type === "password") || t === "textarea" || e.contentEditable === "true") } function Kp(e) { var t = Ou(), r = e.focusedElem, n = e.selectionRange; if (t !== r && r && r.ownerDocument && ju(r.ownerDocument.documentElement, r)) { if (n !== null && zo(r)) { if (t = n.start, e = n.end, e === void 0 && (e = t), "selectionStart" in r) r.selectionStart = t, r.selectionEnd = Math.min(e, r.value.length); else if (e = (t = r.ownerDocument || document) && t.defaultView || window, e.getSelection) { e = e.getSelection(); var i = r.textContent.length, l = Math.min(n.start, i); n = n.end === void 0 ? l : Math.min(n.end, i), !e.extend && l > n && (i = n, n = l, l = i), i = Hs(r, l); var o = Hs(r, n); i && o && (e.rangeCount !== 1 || e.anchorNode !== i.node || e.anchorOffset !== i.offset || e.focusNode !== o.node || e.focusOffset !== o.offset) && (t = t.createRange(), t.setStart(i.node, i.offset), e.removeAllRanges(), l > n ? (e.addRange(t), e.extend(o.node, o.offset)) : (t.setEnd(o.node, o.offset), e.addRange(t))) } } for (t = [], e = r; e = e.parentNode;)e.nodeType === 1 && t.push({ element: e, left: e.scrollLeft, top: e.scrollTop }); for (typeof r.focus == "function" && r.focus(), r = 0; r < t.length; r++)e = t[r], e.element.scrollLeft = e.left, e.element.scrollTop = e.top } } var Zp = Ye && "documentMode" in document && 11 >= document.documentMode, Xt = null, Vl = null, Or = null, $l = !1; function Bs(e, t, r) { var n = r.window === r ? r.document : r.nodeType === 9 ? r : r.ownerDocument; $l || Xt == null || Xt !== Zn(n) || (n = Xt, "selectionStart" in n && zo(n) ? n = { start: n.selectionStart, end: n.selectionEnd } : (n = (n.ownerDocument && n.ownerDocument.defaultView || window).getSelection(), n = { anchorNode: n.anchorNode, anchorOffset: n.anchorOffset, focusNode: n.focusNode, focusOffset: n.focusOffset }), Or && Yr(Or, n) || (Or = n, n = ni(Vl, "onSelect"), 0 < n.length && (t = new Uo("onSelect", "select", null, t, r), e.push({ event: t, listeners: n }), t.target = Xt))) } function kn(e, t) { var r = {}; return r[e.toLowerCase()] = t.toLowerCase(), r["Webkit" + e] = "webkit" + t, r["Moz" + e] = "moz" + t, r } var Yt = { animationend: kn("Animation", "AnimationEnd"), animationiteration: kn("Animation", "AnimationIteration"), animationstart: kn("Animation", "AnimationStart"), transitionend: kn("Transition", "TransitionEnd") }, Xi = {}, zu = {}; Ye && (zu = document.createElement("div").style, "AnimationEvent" in window || (delete Yt.animationend.animation, delete Yt.animationiteration.animation, delete Yt.animationstart.animation), "TransitionEvent" in window || delete Yt.transitionend.transition); function ki(e) { if (Xi[e]) return Xi[e]; if (!Yt[e]) return e; var t = Yt[e], r; for (r in t) if (t.hasOwnProperty(r) && r in zu) return Xi[e] = t[r]; return e } var Vu = ki("animationend"), $u = ki("animationiteration"), Gu = ki("animationstart"), Hu = ki("transitionend"), Bu = new Map, Ws = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" "); function wt(e, t) { Bu.set(e, t), $t(t, [e]) } for (var Yi = 0; Yi < Ws.length; Yi++) { var Ji = Ws[Yi], Xp = Ji.toLowerCase(), Yp = Ji[0].toUpperCase() + Ji.slice(1); wt(Xp, "on" + Yp) } wt(Vu, "onAnimationEnd"); wt($u, "onAnimationIteration"); wt(Gu, "onAnimationStart"); wt("dblclick", "onDoubleClick"); wt("focusin", "onFocus"); wt("focusout", "onBlur"); wt(Hu, "onTransitionEnd"); pr("onMouseEnter", ["mouseout", "mouseover"]); pr("onMouseLeave", ["mouseout", "mouseover"]); pr("onPointerEnter", ["pointerout", "pointerover"]); pr("onPointerLeave", ["pointerout", "pointerover"]); $t("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" ")); $t("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")); $t("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]); $t("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" ")); $t("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" ")); $t("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" ")); var Dr = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), Jp = new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr)); function qs(e, t, r) { var n = e.type || "unknown-event"; e.currentTarget = r, Xd(n, t, void 0, e), e.currentTarget = null } function Wu(e, t) { t = (t & 4) !== 0; for (var r = 0; r < e.length; r++) { var n = e[r], i = n.event; n = n.listeners; e: { var l = void 0; if (t) for (var o = n.length - 1; 0 <= o; o--) { var s = n[o], a = s.instance, u = s.currentTarget; if (s = s.listener, a !== l && i.isPropagationStopped()) break e; qs(i, s, u), l = a } else for (o = 0; o < n.length; o++) { if (s = n[o], a = s.instance, u = s.currentTarget, s = s.listener, a !== l && i.isPropagationStopped()) break e; qs(i, s, u), l = a } } } if (Yn) throw e = Ul, Yn = !1, Ul = null, e } function z(e, t) { var r = t[ql]; r === void 0 && (r = t[ql] = new Set); var n = e + "__bubble"; r.has(n) || (qu(t, e, 2, !1), r.add(n)) } function el(e, t, r) { var n = 0; t && (n |= 4), qu(r, e, n, t) } var wn = "_reactListening" + Math.random().toString(36).slice(2); function Jr(e) { if (!e[wn]) { e[wn] = !0, eu.forEach(function (r) { r !== "selectionchange" && (Jp.has(r) || el(r, !1, e), el(r, !0, e)) }); var t = e.nodeType === 9 ? e : e.ownerDocument; t === null || t[wn] || (t[wn] = !0, el("selectionchange", !1, t)) } } function qu(e, t, r, n) { switch (Mu(t)) { case 1: var i = fp; break; case 4: i = gp; break; default: i = Io }r = i.bind(null, t, r, e), i = void 0, !Fl || t !== "touchstart" && t !== "touchmove" && t !== "wheel" || (i = !0), n ? i !== void 0 ? e.addEventListener(t, r, { capture: !0, passive: i }) : e.addEventListener(t, r, !0) : i !== void 0 ? e.addEventListener(t, r, { passive: i }) : e.addEventListener(t, r, !1) } function tl(e, t, r, n, i) { var l = n; if (!(t & 1) && !(t & 2) && n !== null) e: for (; ;) { if (n === null) return; var o = n.tag; if (o === 3 || o === 4) { var s = n.stateNode.containerInfo; if (s === i || s.nodeType === 8 && s.parentNode === i) break; if (o === 4) for (o = n.return; o !== null;) { var a = o.tag; if ((a === 3 || a === 4) && (a = o.stateNode.containerInfo, a === i || a.nodeType === 8 && a.parentNode === i)) return; o = o.return } for (; s !== null;) { if (o = Nt(s), o === null) return; if (a = o.tag, a === 5 || a === 6) { n = l = o; continue e } s = s.parentNode } } n = n.return } hu(function () { var u = l, g = bo(r), h = []; e: { var p = Bu.get(e); if (p !== void 0) { var y = Uo, P = e; switch (e) { case "keypress": if (Vn(r) === 0) break e; case "keydown": case "keyup": y = Ep; break; case "focusin": P = "focus", y = Qi; break; case "focusout": P = "blur", y = Qi; break; case "beforeblur": case "afterblur": y = Qi; break; case "click": if (r.button === 2) break e; case "auxclick": case "dblclick": case "mousedown": case "mousemove": case "mouseup": case "mouseout": case "mouseover": case "contextmenu": y = Is; break; case "drag": case "dragend": case "dragenter": case "dragexit": case "dragleave": case "dragover": case "dragstart": case "drop": y = vp; break; case "touchcancel": case "touchend": case "touchmove": case "touchstart": y = Np; break; case Vu: case $u: case Gu: y = Sp; break; case Hu: y = Dp; break; case "scroll": y = mp; break; case "wheel": y = Fp; break; case "copy": case "cut": case "paste": y = xp; break; case "gotpointercapture": case "lostpointercapture": case "pointercancel": case "pointerdown": case "pointermove": case "pointerout": case "pointerover": case "pointerup": y = Us }var S = (t & 4) !== 0, C = !S && e === "scroll", m = S ? p !== null ? p + "Capture" : null : p; S = []; for (var f = u, d; f !== null;) { d = f; var x = d.stateNode; if (d.tag === 5 && x !== null && (d = x, m !== null && (x = qr(f, m), x != null && S.push(en(f, x, d)))), C) break; f = f.return } 0 < S.length && (p = new y(p, P, null, r, g), h.push({ event: p, listeners: S })) } } if (!(t & 7)) { e: { if (p = e === "mouseover" || e === "pointerover", y = e === "mouseout" || e === "pointerout", p && r !== Dl && (P = r.relatedTarget || r.fromElement) && (Nt(P) || P[Je])) break e; if ((y || p) && (p = g.window === g ? g : (p = g.ownerDocument) ? p.defaultView || p.parentWindow : window, y ? (P = r.relatedTarget || r.toElement, y = u, P = P ? Nt(P) : null, P !== null && (C = Gt(P), P !== C || P.tag !== 5 && P.tag !== 6) && (P = null)) : (y = null, P = u), y !== P)) { if (S = Is, x = "onMouseLeave", m = "onMouseEnter", f = "mouse", (e === "pointerout" || e === "pointerover") && (S = Us, x = "onPointerLeave", m = "onPointerEnter", f = "pointer"), C = y == null ? p : Jt(y), d = P == null ? p : Jt(P), p = new S(x, f + "leave", y, r, g), p.target = C, p.relatedTarget = d, x = null, Nt(g) === u && (S = new S(m, f + "enter", P, r, g), S.target = d, S.relatedTarget = C, x = S), C = x, y && P) t: { for (S = y, m = P, f = 0, d = S; d; d = Bt(d))f++; for (d = 0, x = m; x; x = Bt(x))d++; for (; 0 < f - d;)S = Bt(S), f--; for (; 0 < d - f;)m = Bt(m), d--; for (; f--;) { if (S === m || m !== null && S === m.alternate) break t; S = Bt(S), m = Bt(m) } S = null } else S = null; y !== null && Qs(h, p, y, S, !1), P !== null && C !== null && Qs(h, C, P, S, !0) } } e: { if (p = u ? Jt(u) : window, y = p.nodeName && p.nodeName.toLowerCase(), y === "select" || y === "input" && p.type === "file") var v = Gp; else if (zs(p)) if (Fu) v = qp; else { v = Bp; var R = Hp } else (y = p.nodeName) && y.toLowerCase() === "input" && (p.type === "checkbox" || p.type === "radio") && (v = Wp); if (v && (v = v(e, u))) { Iu(h, v, r, g); break e } R && R(e, p, u), e === "focusout" && (R = p._wrapperState) && R.controlled && p.type === "number" && El(p, "number", p.value) } switch (R = u ? Jt(u) : window, e) { case "focusin": (zs(R) || R.contentEditable === "true") && (Xt = R, Vl = u, Or = null); break; case "focusout": Or = Vl = Xt = null; break; case "mousedown": $l = !0; break; case "contextmenu": case "mouseup": case "dragend": $l = !1, Bs(h, r, g); break; case "selectionchange": if (Zp) break; case "keydown": case "keyup": Bs(h, r, g) }var w; if (Oo) e: { switch (e) { case "compositionstart": var k = "onCompositionStart"; break e; case "compositionend": k = "onCompositionEnd"; break e; case "compositionupdate": k = "onCompositionUpdate"; break e }k = void 0 } else Zt ? _u(e, r) && (k = "onCompositionEnd") : e === "keydown" && r.keyCode === 229 && (k = "onCompositionStart"); k && (Nu && r.locale !== "ko" && (Zt || k !== "onCompositionStart" ? k === "onCompositionEnd" && Zt && (w = bu()) : (dt = g, Fo = "value" in dt ? dt.value : dt.textContent, Zt = !0)), R = ni(u, k), 0 < R.length && (k = new Fs(k, e, null, r, g), h.push({ event: k, listeners: R }), w ? k.data = w : (w = Du(r), w !== null && (k.data = w)))), (w = jp ? Op(e, r) : zp(e, r)) && (u = ni(u, "onBeforeInput"), 0 < u.length && (g = new Fs("onBeforeInput", "beforeinput", null, r, g), h.push({ event: g, listeners: u }), g.data = w)) } Wu(h, t) }) } function en(e, t, r) { return { instance: e, listener: t, currentTarget: r } } function ni(e, t) { for (var r = t + "Capture", n = []; e !== null;) { var i = e, l = i.stateNode; i.tag === 5 && l !== null && (i = l, l = qr(e, r), l != null && n.unshift(en(e, l, i)), l = qr(e, t), l != null && n.push(en(e, l, i))), e = e.return } return n } function Bt(e) { if (e === null) return null; do e = e.return; while (e && e.tag !== 5); return e || null } function Qs(e, t, r, n, i) { for (var l = t._reactName, o = []; r !== null && r !== n;) { var s = r, a = s.alternate, u = s.stateNode; if (a !== null && a === n) break; s.tag === 5 && u !== null && (s = u, i ? (a = qr(r, l), a != null && o.unshift(en(r, a, s))) : i || (a = qr(r, l), a != null && o.push(en(r, a, s)))), r = r.return } o.length !== 0 && e.push({ event: t, listeners: o }) } var ef = /\r\n?/g, tf = /\u0000|\uFFFD/g; function Ks(e) {
return (typeof e == "string" ? e : "" + e).replace(ef, `
`).replace(tf, "")
} function Cn(e, t, r) { if (t = Ks(t), Ks(e) !== t && r) throw Error(T(425)) } function ii() { } var Gl = null, Hl = null; function Bl(e, t) { return e === "textarea" || e === "noscript" || typeof t.children == "string" || typeof t.children == "number" || typeof t.dangerouslySetInnerHTML == "object" && t.dangerouslySetInnerHTML !== null && t.dangerouslySetInnerHTML.__html != null } var Wl = typeof setTimeout == "function" ? setTimeout : void 0, rf = typeof clearTimeout == "function" ? clearTimeout : void 0, Zs = typeof Promise == "function" ? Promise : void 0, nf = typeof queueMicrotask == "function" ? queueMicrotask : typeof Zs < "u" ? function (e) { return Zs.resolve(null).then(e).catch(lf) } : Wl; function lf(e) { setTimeout(function () { throw e }) } function rl(e, t) { var r = t, n = 0; do { var i = r.nextSibling; if (e.removeChild(r), i && i.nodeType === 8) if (r = i.data, r === "/$") { if (n === 0) { e.removeChild(i), Zr(t); return } n-- } else r !== "$" && r !== "$?" && r !== "$!" || n++; r = i } while (r); Zr(t) } function vt(e) { for (; e != null; e = e.nextSibling) { var t = e.nodeType; if (t === 1 || t === 3) break; if (t === 8) { if (t = e.data, t === "$" || t === "$!" || t === "$?") break; if (t === "/$") return null } } return e } function Xs(e) { e = e.previousSibling; for (var t = 0; e;) { if (e.nodeType === 8) { var r = e.data; if (r === "$" || r === "$!" || r === "$?") { if (t === 0) return e; t-- } else r === "/$" && t++ } e = e.previousSibling } return null } var Rr = Math.random().toString(36).slice(2), Ge = "__reactFiber$" + Rr, tn = "__reactProps$" + Rr, Je = "__reactContainer$" + Rr, ql = "__reactEvents$" + Rr, of = "__reactListeners$" + Rr, sf = "__reactHandles$" + Rr; function Nt(e) { var t = e[Ge]; if (t) return t; for (var r = e.parentNode; r;) { if (t = r[Je] || r[Ge]) { if (r = t.alternate, t.child !== null || r !== null && r.child !== null) for (e = Xs(e); e !== null;) { if (r = e[Ge]) return r; e = Xs(e) } return t } e = r, r = e.parentNode } return null } function pn(e) { return e = e[Ge] || e[Je], !e || e.tag !== 5 && e.tag !== 6 && e.tag !== 13 && e.tag !== 3 ? null : e } function Jt(e) { if (e.tag === 5 || e.tag === 6) return e.stateNode; throw Error(T(33)) } function wi(e) { return e[tn] || null } var Ql = [], er = -1; function Ct(e) { return { current: e } } function $(e) { 0 > er || (e.current = Ql[er], Ql[er] = null, er--) } function O(e, t) { er++, Ql[er] = e.current, e.current = t } var Tt = {}, ce = Ct(Tt), ve = Ct(!1), Ut = Tt; function fr(e, t) { var r = e.type.contextTypes; if (!r) return Tt; var n = e.stateNode; if (n && n.__reactInternalMemoizedUnmaskedChildContext === t) return n.__reactInternalMemoizedMaskedChildContext; var i = {}, l; for (l in r) i[l] = t[l]; return n && (e = e.stateNode, e.__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = i), i } function ye(e) { return e = e.childContextTypes, e != null } function li() { $(ve), $(ce) } function Ys(e, t, r) { if (ce.current !== Tt) throw Error(T(168)); O(ce, t), O(ve, r) } function Qu(e, t, r) { var n = e.stateNode; if (t = t.childContextTypes, typeof n.getChildContext != "function") return r; n = n.getChildContext(); for (var i in n) if (!(i in t)) throw Error(T(108, Hd(e) || "Unknown", i)); return W({}, r, n) } function oi(e) { return e = (e = e.stateNode) && e.__reactInternalMemoizedMergedChildContext || Tt, Ut = ce.current, O(ce, e), O(ve, ve.current), !0 } function Js(e, t, r) { var n = e.stateNode; if (!n) throw Error(T(169)); r ? (e = Qu(e, t, Ut), n.__reactInternalMemoizedMergedChildContext = e, $(ve), $(ce), O(ce, e)) : $(ve), O(ve, r) } var Qe = null, Ci = !1, nl = !1; function Ku(e) { Qe === null ? Qe = [e] : Qe.push(e) } function af(e) { Ci = !0, Ku(e) } function At() { if (!nl && Qe !== null) { nl = !0; var e = 0, t = U; try { var r = Qe; for (U = 1; e < r.length; e++) { var n = r[e]; do n = n(!0); while (n !== null) } Qe = null, Ci = !1 } catch (i) { throw Qe !== null && (Qe = Qe.slice(e + 1)), Su(No, At), i } finally { U = t, nl = !1 } } return null } var tr = [], rr = 0, si = null, ai = 0, Ae = [], Le = 0, jt = null, Ke = 1, Ze = ""; function Mt(e, t) { tr[rr++] = ai, tr[rr++] = si, si = e, ai = t } function Zu(e, t, r) { Ae[Le++] = Ke, Ae[Le++] = Ze, Ae[Le++] = jt, jt = e; var n = Ke; e = Ze; var i = 32 - Ue(n) - 1; n &= ~(1 << i), r += 1; var l = 32 - Ue(t) + i; if (30 < l) { var o = i - i % 5; l = (n & (1 << o) - 1).toString(32), n >>= o, i -= o, Ke = 1 << 32 - Ue(t) + i | r << i | n, Ze = l + e } else Ke = 1 << l | r << i | n, Ze = e } function Vo(e) { e.return !== null && (Mt(e, 1), Zu(e, 1, 0)) } function $o(e) { for (; e === si;)si = tr[--rr], tr[rr] = null, ai = tr[--rr], tr[rr] = null; for (; e === jt;)jt = Ae[--Le], Ae[Le] = null, Ze = Ae[--Le], Ae[Le] = null, Ke = Ae[--Le], Ae[Le] = null } var xe = null, Re = null, G = !1, Fe = null; function Xu(e, t) { var r = Ee(5, null, null, 0); r.elementType = "DELETED", r.stateNode = t, r.return = e, t = e.deletions, t === null ? (e.deletions = [r], e.flags |= 16) : t.push(r) } function ea(e, t) { switch (e.tag) { case 5: var r = e.type; return t = t.nodeType !== 1 || r.toLowerCase() !== t.nodeName.toLowerCase() ? null : t, t !== null ? (e.stateNode = t, xe = e, Re = vt(t.firstChild), !0) : !1; case 6: return t = e.pendingProps === "" || t.nodeType !== 3 ? null : t, t !== null ? (e.stateNode = t, xe = e, Re = null, !0) : !1; case 13: return t = t.nodeType !== 8 ? null : t, t !== null ? (r = jt !== null ? { id: Ke, overflow: Ze } : null, e.memoizedState = { dehydrated: t, treeContext: r, retryLane: 1073741824 }, r = Ee(18, null, null, 0), r.stateNode = t, r.return = e, e.child = r, xe = e, Re = null, !0) : !1; default: return !1 } } function Kl(e) { return (e.mode & 1) !== 0 && (e.flags & 128) === 0 } function Zl(e) { if (G) { var t = Re; if (t) { var r = t; if (!ea(e, t)) { if (Kl(e)) throw Error(T(418)); t = vt(r.nextSibling); var n = xe; t && ea(e, t) ? Xu(n, r) : (e.flags = e.flags & -4097 | 2, G = !1, xe = e) } } else { if (Kl(e)) throw Error(T(418)); e.flags = e.flags & -4097 | 2, G = !1, xe = e } } } function ta(e) { for (e = e.return; e !== null && e.tag !== 5 && e.tag !== 3 && e.tag !== 13;)e = e.return; xe = e } function An(e) { if (e !== xe) return !1; if (!G) return ta(e), G = !0, !1; var t; if ((t = e.tag !== 3) && !(t = e.tag !== 5) && (t = e.type, t = t !== "head" && t !== "body" && !Bl(e.type, e.memoizedProps)), t && (t = Re)) { if (Kl(e)) throw Yu(), Error(T(418)); for (; t;)Xu(e, t), t = vt(t.nextSibling) } if (ta(e), e.tag === 13) { if (e = e.memoizedState, e = e !== null ? e.dehydrated : null, !e) throw Error(T(317)); e: { for (e = e.nextSibling, t = 0; e;) { if (e.nodeType === 8) { var r = e.data; if (r === "/$") { if (t === 0) { Re = vt(e.nextSibling); break e } t-- } else r !== "$" && r !== "$!" && r !== "$?" || t++ } e = e.nextSibling } Re = null } } else Re = xe ? vt(e.stateNode.nextSibling) : null; return !0 } function Yu() { for (var e = Re; e;)e = vt(e.nextSibling) } function gr() { Re = xe = null, G = !1 } function Go(e) { Fe === null ? Fe = [e] : Fe.push(e) } var uf = rt.ReactCurrentBatchConfig; function Ar(e, t, r) { if (e = r.ref, e !== null && typeof e != "function" && typeof e != "object") { if (r._owner) { if (r = r._owner, r) { if (r.tag !== 1) throw Error(T(309)); var n = r.stateNode } if (!n) throw Error(T(147, e)); var i = n, l = "" + e; return t !== null && t.ref !== null && typeof t.ref == "function" && t.ref._stringRef === l ? t.ref : (t = function (o) { var s = i.refs; o === null ? delete s[l] : s[l] = o }, t._stringRef = l, t) } if (typeof e != "string") throw Error(T(284)); if (!r._owner) throw Error(T(290, e)) } return e } function Ln(e, t) { throw e = Object.prototype.toString.call(t), Error(T(31, e === "[object Object]" ? "object with keys {" + Object.keys(t).join(", ") + "}" : e)) } function ra(e) { var t = e._init; return t(e._payload) } function Ju(e) { function t(m, f) { if (e) { var d = m.deletions; d === null ? (m.deletions = [f], m.flags |= 16) : d.push(f) } } function r(m, f) { if (!e) return null; for (; f !== null;)t(m, f), f = f.sibling; return null } function n(m, f) { for (m = new Map; f !== null;)f.key !== null ? m.set(f.key, f) : m.set(f.index, f), f = f.sibling; return m } function i(m, f) { return m = Rt(m, f), m.index = 0, m.sibling = null, m } function l(m, f, d) { return m.index = d, e ? (d = m.alternate, d !== null ? (d = d.index, d < f ? (m.flags |= 2, f) : d) : (m.flags |= 2, f)) : (m.flags |= 1048576, f) } function o(m) { return e && m.alternate === null && (m.flags |= 2), m } function s(m, f, d, x) { return f === null || f.tag !== 6 ? (f = cl(d, m.mode, x), f.return = m, f) : (f = i(f, d), f.return = m, f) } function a(m, f, d, x) { var v = d.type; return v === Kt ? g(m, f, d.props.children, x, d.key) : f !== null && (f.elementType === v || typeof v == "object" && v !== null && v.$$typeof === st && ra(v) === f.type) ? (x = i(f, d.props), x.ref = Ar(m, f, d), x.return = m, x) : (x = Qn(d.type, d.key, d.props, null, m.mode, x), x.ref = Ar(m, f, d), x.return = m, x) } function u(m, f, d, x) { return f === null || f.tag !== 4 || f.stateNode.containerInfo !== d.containerInfo || f.stateNode.implementation !== d.implementation ? (f = dl(d, m.mode, x), f.return = m, f) : (f = i(f, d.children || []), f.return = m, f) } function g(m, f, d, x, v) { return f === null || f.tag !== 7 ? (f = Ft(d, m.mode, x, v), f.return = m, f) : (f = i(f, d), f.return = m, f) } function h(m, f, d) { if (typeof f == "string" && f !== "" || typeof f == "number") return f = cl("" + f, m.mode, d), f.return = m, f; if (typeof f == "object" && f !== null) { switch (f.$$typeof) { case vn: return d = Qn(f.type, f.key, f.props, null, m.mode, d), d.ref = Ar(m, null, f), d.return = m, d; case Qt: return f = dl(f, m.mode, d), f.return = m, f; case st: var x = f._init; return h(m, x(f._payload), d) }if (Nr(f) || xr(f)) return f = Ft(f, m.mode, d, null), f.return = m, f; Ln(m, f) } return null } function p(m, f, d, x) { var v = f !== null ? f.key : null; if (typeof d == "string" && d !== "" || typeof d == "number") return v !== null ? null : s(m, f, "" + d, x); if (typeof d == "object" && d !== null) { switch (d.$$typeof) { case vn: return d.key === v ? a(m, f, d, x) : null; case Qt: return d.key === v ? u(m, f, d, x) : null; case st: return v = d._init, p(m, f, v(d._payload), x) }if (Nr(d) || xr(d)) return v !== null ? null : g(m, f, d, x, null); Ln(m, d) } return null } function y(m, f, d, x, v) { if (typeof x == "string" && x !== "" || typeof x == "number") return m = m.get(d) || null, s(f, m, "" + x, v); if (typeof x == "object" && x !== null) { switch (x.$$typeof) { case vn: return m = m.get(x.key === null ? d : x.key) || null, a(f, m, x, v); case Qt: return m = m.get(x.key === null ? d : x.key) || null, u(f, m, x, v); case st: var R = x._init; return y(m, f, d, R(x._payload), v) }if (Nr(x) || xr(x)) return m = m.get(d) || null, g(f, m, x, v, null); Ln(f, x) } return null } function P(m, f, d, x) { for (var v = null, R = null, w = f, k = f = 0, _ = null; w !== null && k < d.length; k++) { w.index > k ? (_ = w, w = null) : _ = w.sibling; var N = p(m, w, d[k], x); if (N === null) { w === null && (w = _); break } e && w && N.alternate === null && t(m, w), f = l(N, f, k), R === null ? v = N : R.sibling = N, R = N, w = _ } if (k === d.length) return r(m, w), G && Mt(m, k), v; if (w === null) { for (; k < d.length; k++)w = h(m, d[k], x), w !== null && (f = l(w, f, k), R === null ? v = w : R.sibling = w, R = w); return G && Mt(m, k), v } for (w = n(m, w); k < d.length; k++)_ = y(w, m, k, d[k], x), _ !== null && (e && _.alternate !== null && w.delete(_.key === null ? k : _.key), f = l(_, f, k), R === null ? v = _ : R.sibling = _, R = _); return e && w.forEach(function (re) { return t(m, re) }), G && Mt(m, k), v } function S(m, f, d, x) { var v = xr(d); if (typeof v != "function") throw Error(T(150)); if (d = v.call(d), d == null) throw Error(T(151)); for (var R = v = null, w = f, k = f = 0, _ = null, N = d.next(); w !== null && !N.done; k++, N = d.next()) { w.index > k ? (_ = w, w = null) : _ = w.sibling; var re = p(m, w, N.value, x); if (re === null) { w === null && (w = _); break } e && w && re.alternate === null && t(m, w), f = l(re, f, k), R === null ? v = re : R.sibling = re, R = re, w = _ } if (N.done) return r(m, w), G && Mt(m, k), v; if (w === null) { for (; !N.done; k++, N = d.next())N = h(m, N.value, x), N !== null && (f = l(N, f, k), R === null ? v = N : R.sibling = N, R = N); return G && Mt(m, k), v } for (w = n(m, w); !N.done; k++, N = d.next())N = y(w, m, k, N.value, x), N !== null && (e && N.alternate !== null && w.delete(N.key === null ? k : N.key), f = l(N, f, k), R === null ? v = N : R.sibling = N, R = N); return e && w.forEach(function (nt) { return t(m, nt) }), G && Mt(m, k), v } function C(m, f, d, x) { if (typeof d == "object" && d !== null && d.type === Kt && d.key === null && (d = d.props.children), typeof d == "object" && d !== null) { switch (d.$$typeof) { case vn: e: { for (var v = d.key, R = f; R !== null;) { if (R.key === v) { if (v = d.type, v === Kt) { if (R.tag === 7) { r(m, R.sibling), f = i(R, d.props.children), f.return = m, m = f; break e } } else if (R.elementType === v || typeof v == "object" && v !== null && v.$$typeof === st && ra(v) === R.type) { r(m, R.sibling), f = i(R, d.props), f.ref = Ar(m, R, d), f.return = m, m = f; break e } r(m, R); break } else t(m, R); R = R.sibling } d.type === Kt ? (f = Ft(d.props.children, m.mode, x, d.key), f.return = m, m = f) : (x = Qn(d.type, d.key, d.props, null, m.mode, x), x.ref = Ar(m, f, d), x.return = m, m = x) } return o(m); case Qt: e: { for (R = d.key; f !== null;) { if (f.key === R) if (f.tag === 4 && f.stateNode.containerInfo === d.containerInfo && f.stateNode.implementation === d.implementation) { r(m, f.sibling), f = i(f, d.children || []), f.return = m, m = f; break e } else { r(m, f); break } else t(m, f); f = f.sibling } f = dl(d, m.mode, x), f.return = m, m = f } return o(m); case st: return R = d._init, C(m, f, R(d._payload), x) }if (Nr(d)) return P(m, f, d, x); if (xr(d)) return S(m, f, d, x); Ln(m, d) } return typeof d == "string" && d !== "" || typeof d == "number" ? (d = "" + d, f !== null && f.tag === 6 ? (r(m, f.sibling), f = i(f, d), f.return = m, m = f) : (r(m, f), f = cl(d, m.mode, x), f.return = m, m = f), o(m)) : r(m, f) } return C } var mr = Ju(!0), ec = Ju(!1), ui = Ct(null), ci = null, nr = null, Ho = null; function Bo() { Ho = nr = ci = null } function Wo(e) { var t = ui.current; $(ui), e._currentValue = t } function Xl(e, t, r) { for (; e !== null;) { var n = e.alternate; if ((e.childLanes & t) !== t ? (e.childLanes |= t, n !== null && (n.childLanes |= t)) : n !== null && (n.childLanes & t) !== t && (n.childLanes |= t), e === r) break; e = e.return } } function cr(e, t) { ci = e, Ho = nr = null, e = e.dependencies, e !== null && e.firstContext !== null && (e.lanes & t && (he = !0), e.firstContext = null) } function be(e) { var t = e._currentValue; if (Ho !== e) if (e = { context: e, memoizedValue: t, next: null }, nr === null) { if (ci === null) throw Error(T(308)); nr = e, ci.dependencies = { lanes: 0, firstContext: e } } else nr = nr.next = e; return t } var _t = null; function qo(e) { _t === null ? _t = [e] : _t.push(e) } function tc(e, t, r, n) { var i = t.interleaved; return i === null ? (r.next = r, qo(t)) : (r.next = i.next, i.next = r), t.interleaved = r, et(e, n) } function et(e, t) { e.lanes |= t; var r = e.alternate; for (r !== null && (r.lanes |= t), r = e, e = e.return; e !== null;)e.childLanes |= t, r = e.alternate, r !== null && (r.childLanes |= t), r = e, e = e.return; return r.tag === 3 ? r.stateNode : null } var at = !1; function Qo(e) { e.updateQueue = { baseState: e.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null, interleaved: null, lanes: 0 }, effects: null } } function rc(e, t) { e = e.updateQueue, t.updateQueue === e && (t.updateQueue = { baseState: e.baseState, firstBaseUpdate: e.firstBaseUpdate, lastBaseUpdate: e.lastBaseUpdate, shared: e.shared, effects: e.effects }) } function Xe(e, t) { return { eventTime: e, lane: t, tag: 0, payload: null, callback: null, next: null } } function yt(e, t, r) { var n = e.updateQueue; if (n === null) return null; if (n = n.shared, F & 2) { var i = n.pending; return i === null ? t.next = t : (t.next = i.next, i.next = t), n.pending = t, et(e, r) } return i = n.interleaved, i === null ? (t.next = t, qo(n)) : (t.next = i.next, i.next = t), n.interleaved = t, et(e, r) } function $n(e, t, r) { if (t = t.updateQueue, t !== null && (t = t.shared, (r & 4194240) !== 0)) { var n = t.lanes; n &= e.pendingLanes, r |= n, t.lanes = r, _o(e, r) } } function na(e, t) { var r = e.updateQueue, n = e.alternate; if (n !== null && (n = n.updateQueue, r === n)) { var i = null, l = null; if (r = r.firstBaseUpdate, r !== null) { do { var o = { eventTime: r.eventTime, lane: r.lane, tag: r.tag, payload: r.payload, callback: r.callback, next: null }; l === null ? i = l = o : l = l.next = o, r = r.next } while (r !== null); l === null ? i = l = t : l = l.next = t } else i = l = t; r = { baseState: n.baseState, firstBaseUpdate: i, lastBaseUpdate: l, shared: n.shared, effects: n.effects }, e.updateQueue = r; return } e = r.lastBaseUpdate, e === null ? r.firstBaseUpdate = t : e.next = t, r.lastBaseUpdate = t } function di(e, t, r, n) { var i = e.updateQueue; at = !1; var l = i.firstBaseUpdate, o = i.lastBaseUpdate, s = i.shared.pending; if (s !== null) { i.shared.pending = null; var a = s, u = a.next; a.next = null, o === null ? l = u : o.next = u, o = a; var g = e.alternate; g !== null && (g = g.updateQueue, s = g.lastBaseUpdate, s !== o && (s === null ? g.firstBaseUpdate = u : s.next = u, g.lastBaseUpdate = a)) } if (l !== null) { var h = i.baseState; o = 0, g = u = a = null, s = l; do { var p = s.lane, y = s.eventTime; if ((n & p) === p) { g !== null && (g = g.next = { eventTime: y, lane: 0, tag: s.tag, payload: s.payload, callback: s.callback, next: null }); e: { var P = e, S = s; switch (p = t, y = r, S.tag) { case 1: if (P = S.payload, typeof P == "function") { h = P.call(y, h, p); break e } h = P; break e; case 3: P.flags = P.flags & -65537 | 128; case 0: if (P = S.payload, p = typeof P == "function" ? P.call(y, h, p) : P, p == null) break e; h = W({}, h, p); break e; case 2: at = !0 } } s.callback !== null && s.lane !== 0 && (e.flags |= 64, p = i.effects, p === null ? i.effects = [s] : p.push(s)) } else y = { eventTime: y, lane: p, tag: s.tag, payload: s.payload, callback: s.callback, next: null }, g === null ? (u = g = y, a = h) : g = g.next = y, o |= p; if (s = s.next, s === null) { if (s = i.shared.pending, s === null) break; p = s, s = p.next, p.next = null, i.lastBaseUpdate = p, i.shared.pending = null } } while (!0); if (g === null && (a = h), i.baseState = a, i.firstBaseUpdate = u, i.lastBaseUpdate = g, t = i.shared.interleaved, t !== null) { i = t; do o |= i.lane, i = i.next; while (i !== t) } else l === null && (i.shared.lanes = 0); zt |= o, e.lanes = o, e.memoizedState = h } } function ia(e, t, r) { if (e = t.effects, t.effects = null, e !== null) for (t = 0; t < e.length; t++) { var n = e[t], i = n.callback; if (i !== null) { if (n.callback = null, n = r, typeof i != "function") throw Error(T(191, i)); i.call(n) } } } var fn = {}, Be = Ct(fn), rn = Ct(fn), nn = Ct(fn); function Dt(e) { if (e === fn) throw Error(T(174)); return e } function Ko(e, t) { switch (O(nn, t), O(rn, e), O(Be, fn), e = t.nodeType, e) { case 9: case 11: t = (t = t.documentElement) ? t.namespaceURI : bl(null, ""); break; default: e = e === 8 ? t.parentNode : t, t = e.namespaceURI || null, e = e.tagName, t = bl(t, e) }$(Be), O(Be, t) } function hr() { $(Be), $(rn), $(nn) } function nc(e) { Dt(nn.current); var t = Dt(Be.current), r = bl(t, e.type); t !== r && (O(rn, e), O(Be, r)) } function Zo(e) { rn.current === e && ($(Be), $(rn)) } var H = Ct(0); function pi(e) { for (var t = e; t !== null;) { if (t.tag === 13) { var r = t.memoizedState; if (r !== null && (r = r.dehydrated, r === null || r.data === "$?" || r.data === "$!")) return t } else if (t.tag === 19 && t.memoizedProps.revealOrder !== void 0) { if (t.flags & 128) return t } else if (t.child !== null) { t.child.return = t, t = t.child; continue } if (t === e) break; for (; t.sibling === null;) { if (t.return === null || t.return === e) return null; t = t.return } t.sibling.return = t.return, t = t.sibling } return null } var il = []; function Xo() { for (var e = 0; e < il.length; e++)il[e]._workInProgressVersionPrimary = null; il.length = 0 } var Gn = rt.ReactCurrentDispatcher, ll = rt.ReactCurrentBatchConfig, Ot = 0, B = null, X = null, ee = null, fi = !1, zr = !1, ln = 0, cf = 0; function oe() { throw Error(T(321)) } function Yo(e, t) { if (t === null) return !1; for (var r = 0; r < t.length && r < e.length; r++)if (!ze(e[r], t[r])) return !1; return !0 } function Jo(e, t, r, n, i, l) { if (Ot = l, B = t, t.memoizedState = null, t.updateQueue = null, t.lanes = 0, Gn.current = e === null || e.memoizedState === null ? gf : mf, e = r(n, i), zr) { l = 0; do { if (zr = !1, ln = 0, 25 <= l) throw Error(T(301)); l += 1, ee = X = null, t.updateQueue = null, Gn.current = hf, e = r(n, i) } while (zr) } if (Gn.current = gi, t = X !== null && X.next !== null, Ot = 0, ee = X = B = null, fi = !1, t) throw Error(T(300)); return e } function es() { var e = ln !== 0; return ln = 0, e } function $e() { var e = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null }; return ee === null ? B.memoizedState = ee = e : ee = ee.next = e, ee } function Ne() { if (X === null) { var e = B.alternate; e = e !== null ? e.memoizedState : null } else e = X.next; var t = ee === null ? B.memoizedState : ee.next; if (t !== null) ee = t, X = e; else { if (e === null) throw Error(T(310)); X = e, e = { memoizedState: X.memoizedState, baseState: X.baseState, baseQueue: X.baseQueue, queue: X.queue, next: null }, ee === null ? B.memoizedState = ee = e : ee = ee.next = e } return ee } function on(e, t) { return typeof t == "function" ? t(e) : t } function ol(e) { var t = Ne(), r = t.queue; if (r === null) throw Error(T(311)); r.lastRenderedReducer = e; var n = X, i = n.baseQueue, l = r.pending; if (l !== null) { if (i !== null) { var o = i.next; i.next = l.next, l.next = o } n.baseQueue = i = l, r.pending = null } if (i !== null) { l = i.next, n = n.baseState; var s = o = null, a = null, u = l; do { var g = u.lane; if ((Ot & g) === g) a !== null && (a = a.next = { lane: 0, action: u.action, hasEagerState: u.hasEagerState, eagerState: u.eagerState, next: null }), n = u.hasEagerState ? u.eagerState : e(n, u.action); else { var h = { lane: g, action: u.action, hasEagerState: u.hasEagerState, eagerState: u.eagerState, next: null }; a === null ? (s = a = h, o = n) : a = a.next = h, B.lanes |= g, zt |= g } u = u.next } while (u !== null && u !== l); a === null ? o = n : a.next = s, ze(n, t.memoizedState) || (he = !0), t.memoizedState = n, t.baseState = o, t.baseQueue = a, r.lastRenderedState = n } if (e = r.interleaved, e !== null) { i = e; do l = i.lane, B.lanes |= l, zt |= l, i = i.next; while (i !== e) } else i === null && (r.lanes = 0); return [t.memoizedState, r.dispatch] } function sl(e) { var t = Ne(), r = t.queue; if (r === null) throw Error(T(311)); r.lastRenderedReducer = e; var n = r.dispatch, i = r.pending, l = t.memoizedState; if (i !== null) { r.pending = null; var o = i = i.next; do l = e(l, o.action), o = o.next; while (o !== i); ze(l, t.memoizedState) || (he = !0), t.memoizedState = l, t.baseQueue === null && (t.baseState = l), r.lastRenderedState = l } return [l, n] } function ic() { } function lc(e, t) { var r = B, n = Ne(), i = t(), l = !ze(n.memoizedState, i); if (l && (n.memoizedState = i, he = !0), n = n.queue, ts(ac.bind(null, r, n, e), [e]), n.getSnapshot !== t || l || ee !== null && ee.memoizedState.tag & 1) { if (r.flags |= 2048, sn(9, sc.bind(null, r, n, i, t), void 0, null), te === null) throw Error(T(349)); Ot & 30 || oc(r, t, i) } return i } function oc(e, t, r) { e.flags |= 16384, e = { getSnapshot: t, value: r }, t = B.updateQueue, t === null ? (t = { lastEffect: null, stores: null }, B.updateQueue = t, t.stores = [e]) : (r = t.stores, r === null ? t.stores = [e] : r.push(e)) } function sc(e, t, r, n) { t.value = r, t.getSnapshot = n, uc(t) && cc(e) } function ac(e, t, r) { return r(function () { uc(t) && cc(e) }) } function uc(e) { var t = e.getSnapshot; e = e.value; try { var r = t(); return !ze(e, r) } catch { return !0 } } function cc(e) { var t = et(e, 1); t !== null && je(t, e, 1, -1) } function la(e) { var t = $e(); return typeof e == "function" && (e = e()), t.memoizedState = t.baseState = e, e = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: on, lastRenderedState: e }, t.queue = e, e = e.dispatch = ff.bind(null, B, e), [t.memoizedState, e] } function sn(e, t, r, n) { return e = { tag: e, create: t, destroy: r, deps: n, next: null }, t = B.updateQueue, t === null ? (t = { lastEffect: null, stores: null }, B.updateQueue = t, t.lastEffect = e.next = e) : (r = t.lastEffect, r === null ? t.lastEffect = e.next = e : (n = r.next, r.next = e, e.next = n, t.lastEffect = e)), e } function dc() { return Ne().memoizedState } function Hn(e, t, r, n) { var i = $e(); B.flags |= e, i.memoizedState = sn(1 | t, r, void 0, n === void 0 ? null : n) } function Ai(e, t, r, n) { var i = Ne(); n = n === void 0 ? null : n; var l = void 0; if (X !== null) { var o = X.memoizedState; if (l = o.destroy, n !== null && Yo(n, o.deps)) { i.memoizedState = sn(t, r, l, n); return } } B.flags |= e, i.memoizedState = sn(1 | t, r, l, n) } function oa(e, t) { return Hn(8390656, 8, e, t) } function ts(e, t) { return Ai(2048, 8, e, t) } function pc(e, t) { return Ai(4, 2, e, t) } function fc(e, t) { return Ai(4, 4, e, t) } function gc(e, t) { if (typeof t == "function") return e = e(), t(e), function () { t(null) }; if (t != null) return e = e(), t.current = e, function () { t.current = null } } function mc(e, t, r) { return r = r != null ? r.concat([e]) : null, Ai(4, 4, gc.bind(null, t, e), r) } function rs() { } function hc(e, t) { var r = Ne(); t = t === void 0 ? null : t; var n = r.memoizedState; return n !== null && t !== null && Yo(t, n[1]) ? n[0] : (r.memoizedState = [e, t], e) } function vc(e, t) { var r = Ne(); t = t === void 0 ? null : t; var n = r.memoizedState; return n !== null && t !== null && Yo(t, n[1]) ? n[0] : (e = e(), r.memoizedState = [e, t], e) } function yc(e, t, r) { return Ot & 21 ? (ze(r, t) || (r = Tu(), B.lanes |= r, zt |= r, e.baseState = !0), t) : (e.baseState && (e.baseState = !1, he = !0), e.memoizedState = r) } function df(e, t) { var r = U; U = r !== 0 && 4 > r ? r : 4, e(!0); var n = ll.transition; ll.transition = {}; try { e(!1), t() } finally { U = r, ll.transition = n } } function Pc() { return Ne().memoizedState } function pf(e, t, r) { var n = St(e); if (r = { lane: n, action: r, hasEagerState: !1, eagerState: null, next: null }, Sc(e)) Rc(t, r); else if (r = tc(e, t, r, n), r !== null) { var i = pe(); je(r, e, n, i), xc(r, t, n) } } function ff(e, t, r) { var n = St(e), i = { lane: n, action: r, hasEagerState: !1, eagerState: null, next: null }; if (Sc(e)) Rc(t, i); else { var l = e.alternate; if (e.lanes === 0 && (l === null || l.lanes === 0) && (l = t.lastRenderedReducer, l !== null)) try { var o = t.lastRenderedState, s = l(o, r); if (i.hasEagerState = !0, i.eagerState = s, ze(s, o)) { var a = t.interleaved; a === null ? (i.next = i, qo(t)) : (i.next = a.next, a.next = i), t.interleaved = i; return } } catch { } finally { } r = tc(e, t, i, n), r !== null && (i = pe(), je(r, e, n, i), xc(r, t, n)) } } function Sc(e) { var t = e.alternate; return e === B || t !== null && t === B } function Rc(e, t) { zr = fi = !0; var r = e.pending; r === null ? t.next = t : (t.next = r.next, r.next = t), e.pending = t } function xc(e, t, r) { if (r & 4194240) { var n = t.lanes; n &= e.pendingLanes, r |= n, t.lanes = r, _o(e, r) } } var gi = { readContext: be, useCallback: oe, useContext: oe, useEffect: oe, useImperativeHandle: oe, useInsertionEffect: oe, useLayoutEffect: oe, useMemo: oe, useReducer: oe, useRef: oe, useState: oe, useDebugValue: oe, useDeferredValue: oe, useTransition: oe, useMutableSource: oe, useSyncExternalStore: oe, useId: oe, unstable_isNewReconciler: !1 }, gf = { readContext: be, useCallback: function (e, t) { return $e().memoizedState = [e, t === void 0 ? null : t], e }, useContext: be, useEffect: oa, useImperativeHandle: function (e, t, r) { return r = r != null ? r.concat([e]) : null, Hn(4194308, 4, gc.bind(null, t, e), r) }, useLayoutEffect: function (e, t) { return Hn(4194308, 4, e, t) }, useInsertionEffect: function (e, t) { return Hn(4, 2, e, t) }, useMemo: function (e, t) { var r = $e(); return t = t === void 0 ? null : t, e = e(), r.memoizedState = [e, t], e }, useReducer: function (e, t, r) { var n = $e(); return t = r !== void 0 ? r(t) : t, n.memoizedState = n.baseState = t, e = { pending: null, interleaved: null, lanes: 0, dispatch: null, lastRenderedReducer: e, lastRenderedState: t }, n.queue = e, e = e.dispatch = pf.bind(null, B, e), [n.memoizedState, e] }, useRef: function (e) { var t = $e(); return e = { current: e }, t.memoizedState = e }, useState: la, useDebugValue: rs, useDeferredValue: function (e) { return $e().memoizedState = e }, useTransition: function () { var e = la(!1), t = e[0]; return e = df.bind(null, e[1]), $e().memoizedState = e, [t, e] }, useMutableSource: function () { }, useSyncExternalStore: function (e, t, r) { var n = B, i = $e(); if (G) { if (r === void 0) throw Error(T(407)); r = r() } else { if (r = t(), te === null) throw Error(T(349)); Ot & 30 || oc(n, t, r) } i.memoizedState = r; var l = { value: r, getSnapshot: t }; return i.queue = l, oa(ac.bind(null, n, l, e), [e]), n.flags |= 2048, sn(9, sc.bind(null, n, l, r, t), void 0, null), r }, useId: function () { var e = $e(), t = te.identifierPrefix; if (G) { var r = Ze, n = Ke; r = (n & ~(1 << 32 - Ue(n) - 1)).toString(32) + r, t = ":" + t + "R" + r, r = ln++, 0 < r && (t += "H" + r.toString(32)), t += ":" } else r = cf++, t = ":" + t + "r" + r.toString(32) + ":"; return e.memoizedState = t }, unstable_isNewReconciler: !1 }, mf = { readContext: be, useCallback: hc, useContext: be, useEffect: ts, useImperativeHandle: mc, useInsertionEffect: pc, useLayoutEffect: fc, useMemo: vc, useReducer: ol, useRef: dc, useState: function () { return ol(on) }, useDebugValue: rs, useDeferredValue: function (e) { var t = Ne(); return yc(t, X.memoizedState, e) }, useTransition: function () { var e = ol(on)[0], t = Ne().memoizedState; return [e, t] }, useMutableSource: ic, useSyncExternalStore: lc, useId: Pc, unstable_isNewReconciler: !1 }, hf = { readContext: be, useCallback: hc, useContext: be, useEffect: ts, useImperativeHandle: mc, useInsertionEffect: pc, useLayoutEffect: fc, useMemo: vc, useReducer: sl, useRef: dc, useState: function () { return sl(on) }, useDebugValue: rs, useDeferredValue: function (e) { var t = Ne(); return X === null ? t.memoizedState = e : yc(t, X.memoizedState, e) }, useTransition: function () { var e = sl(on)[0], t = Ne().memoizedState; return [e, t] }, useMutableSource: ic, useSyncExternalStore: lc, useId: Pc, unstable_isNewReconciler: !1 }; function De(e, t) { if (e && e.defaultProps) { t = W({}, t), e = e.defaultProps; for (var r in e) t[r] === void 0 && (t[r] = e[r]); return t } return t } function Yl(e, t, r, n) { t = e.memoizedState, r = r(n, t), r = r == null ? t : W({}, t, r), e.memoizedState = r, e.lanes === 0 && (e.updateQueue.baseState = r) } var Li = { isMounted: function (e) { return (e = e._reactInternals) ? Gt(e) === e : !1 }, enqueueSetState: function (e, t, r) { e = e._reactInternals; var n = pe(), i = St(e), l = Xe(n, i); l.payload = t, r != null && (l.callback = r), t = yt(e, l, i), t !== null && (je(t, e, i, n), $n(t, e, i)) }, enqueueReplaceState: function (e, t, r) { e = e._reactInternals; var n = pe(), i = St(e), l = Xe(n, i); l.tag = 1, l.payload = t, r != null && (l.callback = r), t = yt(e, l, i), t !== null && (je(t, e, i, n), $n(t, e, i)) }, enqueueForceUpdate: function (e, t) { e = e._reactInternals; var r = pe(), n = St(e), i = Xe(r, n); i.tag = 2, t != null && (i.callback = t), t = yt(e, i, n), t !== null && (je(t, e, n, r), $n(t, e, n)) } }; function sa(e, t, r, n, i, l, o) { return e = e.stateNode, typeof e.shouldComponentUpdate == "function" ? e.shouldComponentUpdate(n, l, o) : t.prototype && t.prototype.isPureReactComponent ? !Yr(r, n) || !Yr(i, l) : !0 } function Tc(e, t, r) { var n = !1, i = Tt, l = t.contextType; return typeof l == "object" && l !== null ? l = be(l) : (i = ye(t) ? Ut : ce.current, n = t.contextTypes, l = (n = n != null) ? fr(e, i) : Tt), t = new t(r, l), e.memoizedState = t.state !== null && t.state !== void 0 ? t.state : null, t.updater = Li, e.stateNode = t, t._reactInternals = e, n && (e = e.stateNode, e.__reactInternalMemoizedUnmaskedChildContext = i, e.__reactInternalMemoizedMaskedChildContext = l), t } function aa(e, t, r, n) { e = t.state, typeof t.componentWillReceiveProps == "function" && t.componentWillReceiveProps(r, n), typeof t.UNSAFE_componentWillReceiveProps == "function" && t.UNSAFE_componentWillReceiveProps(r, n), t.state !== e && Li.enqueueReplaceState(t, t.state, null) } function Jl(e, t, r, n) { var i = e.stateNode; i.props = r, i.state = e.memoizedState, i.refs = {}, Qo(e); var l = t.contextType; typeof l == "object" && l !== null ? i.context = be(l) : (l = ye(t) ? Ut : ce.current, i.context = fr(e, l)), i.state = e.memoizedState, l = t.getDerivedStateFromProps, typeof l == "function" && (Yl(e, t, l, r), i.state = e.memoizedState), typeof t.getDerivedStateFromProps == "function" || typeof i.getSnapshotBeforeUpdate == "function" || typeof i.UNSAFE_componentWillMount != "function" && typeof i.componentWillMount != "function" || (t = i.state, typeof i.componentWillMount == "function" && i.componentWillMount(), typeof i.UNSAFE_componentWillMount == "function" && i.UNSAFE_componentWillMount(), t !== i.state && Li.enqueueReplaceState(i, i.state, null), di(e, r, i, n), i.state = e.memoizedState), typeof i.componentDidMount == "function" && (e.flags |= 4194308) } function vr(e, t) {
try { var r = "", n = t; do r += Gd(n), n = n.return; while (n); var i = r } catch (l) {
i = `
Error generating stack: `+ l.message + `
`+ l.stack
} return { value: e, source: t, stack: i, digest: null }
} function al(e, t, r) { return { value: e, source: null, stack: r ?? null, digest: t ?? null } } function eo(e, t) { try { console.error(t.value) } catch (r) { setTimeout(function () { throw r }) } } var vf = typeof WeakMap == "function" ? WeakMap : Map; function kc(e, t, r) { r = Xe(-1, r), r.tag = 3, r.payload = { element: null }; var n = t.value; return r.callback = function () { hi || (hi = !0, co = n), eo(e, t) }, r } function wc(e, t, r) { r = Xe(-1, r), r.tag = 3; var n = e.type.getDerivedStateFromError; if (typeof n == "function") { var i = t.value; r.payload = function () { return n(i) }, r.callback = function () { eo(e, t) } } var l = e.stateNode; return l !== null && typeof l.componentDidCatch == "function" && (r.callback = function () { eo(e, t), typeof n != "function" && (Pt === null ? Pt = new Set([this]) : Pt.add(this)); var o = t.stack; this.componentDidCatch(t.value, { componentStack: o !== null ? o : "" }) }), r } function ua(e, t, r) { var n = e.pingCache; if (n === null) { n = e.pingCache = new vf; var i = new Set; n.set(t, i) } else i = n.get(t), i === void 0 && (i = new Set, n.set(t, i)); i.has(r) || (i.add(r), e = bf.bind(null, e, t, r), t.then(e, e)) } function ca(e) { do { var t; if ((t = e.tag === 13) && (t = e.memoizedState, t = t !== null ? t.dehydrated !== null : !0), t) return e; e = e.return } while (e !== null); return null } function da(e, t, r, n, i) { return e.mode & 1 ? (e.flags |= 65536, e.lanes = i, e) : (e === t ? e.flags |= 65536 : (e.flags |= 128, r.flags |= 131072, r.flags &= -52805, r.tag === 1 && (r.alternate === null ? r.tag = 17 : (t = Xe(-1, 1), t.tag = 2, yt(r, t, 1))), r.lanes |= 1), e) } var yf = rt.ReactCurrentOwner, he = !1; function de(e, t, r, n) { t.child = e === null ? ec(t, null, r, n) : mr(t, e.child, r, n) } function pa(e, t, r, n, i) { r = r.render; var l = t.ref; return cr(t, i), n = Jo(e, t, r, n, l, i), r = es(), e !== null && !he ? (t.updateQueue = e.updateQueue, t.flags &= -2053, e.lanes &= ~i, tt(e, t, i)) : (G && r && Vo(t), t.flags |= 1, de(e, t, n, i), t.child) } function fa(e, t, r, n, i) { if (e === null) { var l = r.type; return typeof l == "function" && !cs(l) && l.defaultProps === void 0 && r.compare === null && r.defaultProps === void 0 ? (t.tag = 15, t.type = l, Cc(e, t, l, n, i)) : (e = Qn(r.type, null, n, t, t.mode, i), e.ref = t.ref, e.return = t, t.child = e) } if (l = e.child, !(e.lanes & i)) { var o = l.memoizedProps; if (r = r.compare, r = r !== null ? r : Yr, r(o, n) && e.ref === t.ref) return tt(e, t, i) } return t.flags |= 1, e = Rt(l, n), e.ref = t.ref, e.return = t, t.child = e } function Cc(e, t, r, n, i) { if (e !== null) { var l = e.memoizedProps; if (Yr(l, n) && e.ref === t.ref) if (he = !1, t.pendingProps = n = l, (e.lanes & i) !== 0) e.flags & 131072 && (he = !0); else return t.lanes = e.lanes, tt(e, t, i) } return to(e, t, r, n, i) } function Ac(e, t, r) { var n = t.pendingProps, i = n.children, l = e !== null ? e.memoizedState : null; if (n.mode === "hidden") if (!(t.mode & 1)) t.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, O(lr, Se), Se |= r; else { if (!(r & 1073741824)) return e = l !== null ? l.baseLanes | r : r, t.lanes = t.childLanes = 1073741824, t.memoizedState = { baseLanes: e, cachePool: null, transitions: null }, t.updateQueue = null, O(lr, Se), Se |= e, null; t.memoizedState = { baseLanes: 0, cachePool: null, transitions: null }, n = l !== null ? l.baseLanes : r, O(lr, Se), Se |= n } else l !== null ? (n = l.baseLanes | r, t.memoizedState = null) : n = r, O(lr, Se), Se |= n; return de(e, t, i, r), t.child } function Lc(e, t) { var r = t.ref; (e === null && r !== null || e !== null && e.ref !== r) && (t.flags |= 512, t.flags |= 2097152) } function to(e, t, r, n, i) { var l = ye(r) ? Ut : ce.current; return l = fr(t, l), cr(t, i), r = Jo(e, t, r, n, l, i), n = es(), e !== null && !he ? (t.updateQueue = e.updateQueue, t.flags &= -2053, e.lanes &= ~i, tt(e, t, i)) : (G && n && Vo(t), t.flags |= 1, de(e, t, r, i), t.child) } function ga(e, t, r, n, i) { if (ye(r)) { var l = !0; oi(t) } else l = !1; if (cr(t, i), t.stateNode === null) Bn(e, t), Tc(t, r, n), Jl(t, r, n, i), n = !0; else if (e === null) { var o = t.stateNode, s = t.memoizedProps; o.props = s; var a = o.context, u = r.contextType; typeof u == "object" && u !== null ? u = be(u) : (u = ye(r) ? Ut : ce.current, u = fr(t, u)); var g = r.getDerivedStateFromProps, h = typeof g == "function" || typeof o.getSnapshotBeforeUpdate == "function"; h || typeof o.UNSAFE_componentWillReceiveProps != "function" && typeof o.componentWillReceiveProps != "function" || (s !== n || a !== u) && aa(t, o, n, u), at = !1; var p = t.memoizedState; o.state = p, di(t, n, o, i), a = t.memoizedState, s !== n || p !== a || ve.current || at ? (typeof g == "function" && (Yl(t, r, g, n), a = t.memoizedState), (s = at || sa(t, r, s, n, p, a, u)) ? (h || typeof o.UNSAFE_componentWillMount != "function" && typeof o.componentWillMount != "function" || (typeof o.componentWillMount == "function" && o.componentWillMount(), typeof o.UNSAFE_componentWillMount == "function" && o.UNSAFE_componentWillMount()), typeof o.componentDidMount == "function" && (t.flags |= 4194308)) : (typeof o.componentDidMount == "function" && (t.flags |= 4194308), t.memoizedProps = n, t.memoizedState = a), o.props = n, o.state = a, o.context = u, n = s) : (typeof o.componentDidMount == "function" && (t.flags |= 4194308), n = !1) } else { o = t.stateNode, rc(e, t), s = t.memoizedProps, u = t.type === t.elementType ? s : De(t.type, s), o.props = u, h = t.pendingProps, p = o.context, a = r.contextType, typeof a == "object" && a !== null ? a = be(a) : (a = ye(r) ? Ut : ce.current, a = fr(t, a)); var y = r.getDerivedStateFromProps; (g = typeof y == "function" || typeof o.getSnapshotBeforeUpdate == "function") || typeof o.UNSAFE_componentWillReceiveProps != "function" && typeof o.componentWillReceiveProps != "function" || (s !== h || p !== a) && aa(t, o, n, a), at = !1, p = t.memoizedState, o.state = p, di(t, n, o, i); var P = t.memoizedState; s !== h || p !== P || ve.current || at ? (typeof y == "function" && (Yl(t, r, y, n), P = t.memoizedState), (u = at || sa(t, r, u, n, p, P, a) || !1) ? (g || typeof o.UNSAFE_componentWillUpdate != "function" && typeof o.componentWillUpdate != "function" || (typeof o.componentWillUpdate == "function" && o.componentWillUpdate(n, P, a), typeof o.UNSAFE_componentWillUpdate == "function" && o.UNSAFE_componentWillUpdate(n, P, a)), typeof o.componentDidUpdate == "function" && (t.flags |= 4), typeof o.getSnapshotBeforeUpdate == "function" && (t.flags |= 1024)) : (typeof o.componentDidUpdate != "function" || s === e.memoizedProps && p === e.memoizedState || (t.flags |= 4), typeof o.getSnapshotBeforeUpdate != "function" || s === e.memoizedProps && p === e.memoizedState || (t.flags |= 1024), t.memoizedProps = n, t.memoizedState = P), o.props = n, o.state = P, o.context = a, n = u) : (typeof o.componentDidUpdate != "function" || s === e.memoizedProps && p === e.memoizedState || (t.flags |= 4), typeof o.getSnapshotBeforeUpdate != "function" || s === e.memoizedProps && p === e.memoizedState || (t.flags |= 1024), n = !1) } return ro(e, t, r, n, l, i) } function ro(e, t, r, n, i, l) { Lc(e, t); var o = (t.flags & 128) !== 0; if (!n && !o) return i && Js(t, r, !1), tt(e, t, l); n = t.stateNode, yf.current = t; var s = o && typeof r.getDerivedStateFromError != "function" ? null : n.render(); return t.flags |= 1, e !== null && o ? (t.child = mr(t, e.child, null, l), t.child = mr(t, null, s, l)) : de(e, t, s, l), t.memoizedState = n.state, i && Js(t, r, !0), t.child } function Ec(e) { var t = e.stateNode; t.pendingContext ? Ys(e, t.pendingContext, t.pendingContext !== t.context) : t.context && Ys(e, t.context, !1), Ko(e, t.containerInfo) } function ma(e, t, r, n, i) { return gr(), Go(i), t.flags |= 256, de(e, t, r, n), t.child } var no = { dehydrated: null, treeContext: null, retryLane: 0 }; function io(e) { return { baseLanes: e, cachePool: null, transitions: null } } function Mc(e, t, r) { var n = t.pendingProps, i = H.current, l = !1, o = (t.flags & 128) !== 0, s; if ((s = o) || (s = e !== null && e.memoizedState === null ? !1 : (i & 2) !== 0), s ? (l = !0, t.flags &= -129) : (e === null || e.memoizedState !== null) && (i |= 1), O(H, i & 1), e === null) return Zl(t), e = t.memoizedState, e !== null && (e = e.dehydrated, e !== null) ? (t.mode & 1 ? e.data === "$!" ? t.lanes = 8 : t.lanes = 1073741824 : t.lanes = 1, null) : (o = n.children, e = n.fallback, l ? (n = t.mode, l = t.child, o = { mode: "hidden", children: o }, !(n & 1) && l !== null ? (l.childLanes = 0, l.pendingProps = o) : l = bi(o, n, 0, null), e = Ft(e, n, r, null), l.return = t, e.return = t, l.sibling = e, t.child = l, t.child.memoizedState = io(r), t.memoizedState = no, e) : ns(t, o)); if (i = e.memoizedState, i !== null && (s = i.dehydrated, s !== null)) return Pf(e, t, o, n, s, i, r); if (l) { l = n.fallback, o = t.mode, i = e.child, s = i.sibling; var a = { mode: "hidden", children: n.children }; return !(o & 1) && t.child !== i ? (n = t.child, n.childLanes = 0, n.pendingProps = a, t.deletions = null) : (n = Rt(i, a), n.subtreeFlags = i.subtreeFlags & 14680064), s !== null ? l = Rt(s, l) : (l = Ft(l, o, r, null), l.flags |= 2), l.return = t, n.return = t, n.sibling = l, t.child = n, n = l, l = t.child, o = e.child.memoizedState, o = o === null ? io(r) : { baseLanes: o.baseLanes | r, cachePool: null, transitions: o.transitions }, l.memoizedState = o, l.childLanes = e.childLanes & ~r, t.memoizedState = no, n } return l = e.child, e = l.sibling, n = Rt(l, { mode: "visible", children: n.children }), !(t.mode & 1) && (n.lanes = r), n.return = t, n.sibling = null, e !== null && (r = t.deletions, r === null ? (t.deletions = [e], t.flags |= 16) : r.push(e)), t.child = n, t.memoizedState = null, n } function ns(e, t) { return t = bi({ mode: "visible", children: t }, e.mode, 0, null), t.return = e, e.child = t } function En(e, t, r, n) { return n !== null && Go(n), mr(t, e.child, null, r), e = ns(t, t.pendingProps.children), e.flags |= 2, t.memoizedState = null, e } function Pf(e, t, r, n, i, l, o) { if (r) return t.flags & 256 ? (t.flags &= -257, n = al(Error(T(422))), En(e, t, o, n)) : t.memoizedState !== null ? (t.child = e.child, t.flags |= 128, null) : (l = n.fallback, i = t.mode, n = bi({ mode: "visible", children: n.children }, i, 0, null), l = Ft(l, i, o, null), l.flags |= 2, n.return = t, l.return = t, n.sibling = l, t.child = n, t.mode & 1 && mr(t, e.child, null, o), t.child.memoizedState = io(o), t.memoizedState = no, l); if (!(t.mode & 1)) return En(e, t, o, null); if (i.data === "$!") { if (n = i.nextSibling && i.nextSibling.dataset, n) var s = n.dgst; return n = s, l = Error(T(419)), n = al(l, n, void 0), En(e, t, o, n) } if (s = (o & e.childLanes) !== 0, he || s) { if (n = te, n !== null) { switch (o & -o) { case 4: i = 2; break; case 16: i = 8; break; case 64: case 128: case 256: case 512: case 1024: case 2048: case 4096: case 8192: case 16384: case 32768: case 65536: case 131072: case 262144: case 524288: case 1048576: case 2097152: case 4194304: case 8388608: case 16777216: case 33554432: case 67108864: i = 32; break; case 536870912: i = 268435456; break; default: i = 0 }i = i & (n.suspendedLanes | o) ? 0 : i, i !== 0 && i !== l.retryLane && (l.retryLane = i, et(e, i), je(n, e, i, -1)) } return us(), n = al(Error(T(421))), En(e, t, o, n) } return i.data === "$?" ? (t.flags |= 128, t.child = e.child, t = Nf.bind(null, e), i._reactRetry = t, null) : (e = l.treeContext, Re = vt(i.nextSibling), xe = t, G = !0, Fe = null, e !== null && (Ae[Le++] = Ke, Ae[Le++] = Ze, Ae[Le++] = jt, Ke = e.id, Ze = e.overflow, jt = t), t = ns(t, n.children), t.flags |= 4096, t) } function ha(e, t, r) { e.lanes |= t; var n = e.alternate; n !== null && (n.lanes |= t), Xl(e.return, t, r) } function ul(e, t, r, n, i) { var l = e.memoizedState; l === null ? e.memoizedState = { isBackwards: t, rendering: null, renderingStartTime: 0, last: n, tail: r, tailMode: i } : (l.isBackwards = t, l.rendering = null, l.renderingStartTime = 0, l.last = n, l.tail = r, l.tailMode = i) } function bc(e, t, r) { var n = t.pendingProps, i = n.revealOrder, l = n.tail; if (de(e, t, n.children, r), n = H.current, n & 2) n = n & 1 | 2, t.flags |= 128; else { if (e !== null && e.flags & 128) e: for (e = t.child; e !== null;) { if (e.tag === 13) e.memoizedState !== null && ha(e, r, t); else if (e.tag === 19) ha(e, r, t); else if (e.child !== null) { e.child.return = e, e = e.child; continue } if (e === t) break e; for (; e.sibling === null;) { if (e.return === null || e.return === t) break e; e = e.return } e.sibling.return = e.return, e = e.sibling } n &= 1 } if (O(H, n), !(t.mode & 1)) t.memoizedState = null; else switch (i) { case "forwards": for (r = t.child, i = null; r !== null;)e = r.alternate, e !== null && pi(e) === null && (i = r), r = r.sibling; r = i, r === null ? (i = t.child, t.child = null) : (i = r.sibling, r.sibling = null), ul(t, !1, i, r, l); break; case "backwards": for (r = null, i = t.child, t.child = null; i !== null;) { if (e = i.alternate, e !== null && pi(e) === null) { t.child = i; break } e = i.sibling, i.sibling = r, r = i, i = e } ul(t, !0, r, null, l); break; case "together": ul(t, !1, null, null, void 0); break; default: t.memoizedState = null }return t.child } function Bn(e, t) { !(t.mode & 1) && e !== null && (e.alternate = null, t.alternate = null, t.flags |= 2) } function tt(e, t, r) { if (e !== null && (t.dependencies = e.dependencies), zt |= t.lanes, !(r & t.childLanes)) return null; if (e !== null && t.child !== e.child) throw Error(T(153)); if (t.child !== null) { for (e = t.child, r = Rt(e, e.pendingProps), t.child = r, r.return = t; e.sibling !== null;)e = e.sibling, r = r.sibling = Rt(e, e.pendingProps), r.return = t; r.sibling = null } return t.child } function Sf(e, t, r) { switch (t.tag) { case 3: Ec(t), gr(); break; case 5: nc(t); break; case 1: ye(t.type) && oi(t); break; case 4: Ko(t, t.stateNode.containerInfo); break; case 10: var n = t.type._context, i = t.memoizedProps.value; O(ui, n._currentValue), n._currentValue = i; break; case 13: if (n = t.memoizedState, n !== null) return n.dehydrated !== null ? (O(H, H.current & 1), t.flags |= 128, null) : r & t.child.childLanes ? Mc(e, t, r) : (O(H, H.current & 1), e = tt(e, t, r), e !== null ? e.sibling : null); O(H, H.current & 1); break; case 19: if (n = (r & t.childLanes) !== 0, e.flags & 128) { if (n) return bc(e, t, r); t.flags |= 128 } if (i = t.memoizedState, i !== null && (i.rendering = null, i.tail = null, i.lastEffect = null), O(H, H.current), n) break; return null; case 22: case 23: return t.lanes = 0, Ac(e, t, r) }return tt(e, t, r) } var Nc, lo, _c, Dc; Nc = function (e, t) { for (var r = t.child; r !== null;) { if (r.tag === 5 || r.tag === 6) e.appendChild(r.stateNode); else if (r.tag !== 4 && r.child !== null) { r.child.return = r, r = r.child; continue } if (r === t) break; for (; r.sibling === null;) { if (r.return === null || r.return === t) return; r = r.return } r.sibling.return = r.return, r = r.sibling } }; lo = function () { }; _c = function (e, t, r, n) { var i = e.memoizedProps; if (i !== n) { e = t.stateNode, Dt(Be.current); var l = null; switch (r) { case "input": i = Al(e, i), n = Al(e, n), l = []; break; case "select": i = W({}, i, { value: void 0 }), n = W({}, n, { value: void 0 }), l = []; break; case "textarea": i = Ml(e, i), n = Ml(e, n), l = []; break; default: typeof i.onClick != "function" && typeof n.onClick == "function" && (e.onclick = ii) }Nl(r, n); var o; r = null; for (u in i) if (!n.hasOwnProperty(u) && i.hasOwnProperty(u) && i[u] != null) if (u === "style") { var s = i[u]; for (o in s) s.hasOwnProperty(o) && (r || (r = {}), r[o] = "") } else u !== "dangerouslySetInnerHTML" && u !== "children" && u !== "suppressContentEditableWarning" && u !== "suppressHydrationWarning" && u !== "autoFocus" && (Br.hasOwnProperty(u) ? l || (l = []) : (l = l || []).push(u, null)); for (u in n) { var a = n[u]; if (s = i != null ? i[u] : void 0, n.hasOwnProperty(u) && a !== s && (a != null || s != null)) if (u === "style") if (s) { for (o in s) !s.hasOwnProperty(o) || a && a.hasOwnProperty(o) || (r || (r = {}), r[o] = ""); for (o in a) a.hasOwnProperty(o) && s[o] !== a[o] && (r || (r = {}), r[o] = a[o]) } else r || (l || (l = []), l.push(u, r)), r = a; else u === "dangerouslySetInnerHTML" ? (a = a ? a.__html : void 0, s = s ? s.__html : void 0, a != null && s !== a && (l = l || []).push(u, a)) : u === "children" ? typeof a != "string" && typeof a != "number" || (l = l || []).push(u, "" + a) : u !== "suppressContentEditableWarning" && u !== "suppressHydrationWarning" && (Br.hasOwnProperty(u) ? (a != null && u === "onScroll" && z("scroll", e), l || s === a || (l = [])) : (l = l || []).push(u, a)) } r && (l = l || []).push("style", r); var u = l; (t.updateQueue = u) && (t.flags |= 4) } }; Dc = function (e, t, r, n) { r !== n && (t.flags |= 4) }; function Lr(e, t) { if (!G) switch (e.tailMode) { case "hidden": t = e.tail; for (var r = null; t !== null;)t.alternate !== null && (r = t), t = t.sibling; r === null ? e.tail = null : r.sibling = null; break; case "collapsed": r = e.tail; for (var n = null; r !== null;)r.alternate !== null && (n = r), r = r.sibling; n === null ? t || e.tail === null ? e.tail = null : e.tail.sibling = null : n.sibling = null } } function se(e) { var t = e.alternate !== null && e.alternate.child === e.child, r = 0, n = 0; if (t) for (var i = e.child; i !== null;)r |= i.lanes | i.childLanes, n |= i.subtreeFlags & 14680064, n |= i.flags & 14680064, i.return = e, i = i.sibling; else for (i = e.child; i !== null;)r |= i.lanes | i.childLanes, n |= i.subtreeFlags, n |= i.flags, i.return = e, i = i.sibling; return e.subtreeFlags |= n, e.childLanes = r, t } function Rf(e, t, r) { var n = t.pendingProps; switch ($o(t), t.tag) { case 2: case 16: case 15: case 0: case 11: case 7: case 8: case 12: case 9: case 14: return se(t), null; case 1: return ye(t.type) && li(), se(t), null; case 3: return n = t.stateNode, hr(), $(ve), $(ce), Xo(), n.pendingContext && (n.context = n.pendingContext, n.pendingContext = null), (e === null || e.child === null) && (An(t) ? t.flags |= 4 : e === null || e.memoizedState.isDehydrated && !(t.flags & 256) || (t.flags |= 1024, Fe !== null && (go(Fe), Fe = null))), lo(e, t), se(t), null; case 5: Zo(t); var i = Dt(nn.current); if (r = t.type, e !== null && t.stateNode != null) _c(e, t, r, n, i), e.ref !== t.ref && (t.flags |= 512, t.flags |= 2097152); else { if (!n) { if (t.stateNode === null) throw Error(T(166)); return se(t), null } if (e = Dt(Be.current), An(t)) { n = t.stateNode, r = t.type; var l = t.memoizedProps; switch (n[Ge] = t, n[tn] = l, e = (t.mode & 1) !== 0, r) { case "dialog": z("cancel", n), z("close", n); break; case "iframe": case "object": case "embed": z("load", n); break; case "video": case "audio": for (i = 0; i < Dr.length; i++)z(Dr[i], n); break; case "source": z("error", n); break; case "img": case "image": case "link": z("error", n), z("load", n); break; case "details": z("toggle", n); break; case "input": ws(n, l), z("invalid", n); break; case "select": n._wrapperState = { wasMultiple: !!l.multiple }, z("invalid", n); break; case "textarea": As(n, l), z("invalid", n) }Nl(r, l), i = null; for (var o in l) if (l.hasOwnProperty(o)) { var s = l[o]; o === "children" ? typeof s == "string" ? n.textContent !== s && (l.suppressHydrationWarning !== !0 && Cn(n.textContent, s, e), i = ["children", s]) : typeof s == "number" && n.textContent !== "" + s && (l.suppressHydrationWarning !== !0 && Cn(n.textContent, s, e), i = ["children", "" + s]) : Br.hasOwnProperty(o) && s != null && o === "onScroll" && z("scroll", n) } switch (r) { case "input": yn(n), Cs(n, l, !0); break; case "textarea": yn(n), Ls(n); break; case "select": case "option": break; default: typeof l.onClick == "function" && (n.onclick = ii) }n = i, t.updateQueue = n, n !== null && (t.flags |= 4) } else { o = i.nodeType === 9 ? i : i.ownerDocument, e === "http://www.w3.org/1999/xhtml" && (e = au(r)), e === "http://www.w3.org/1999/xhtml" ? r === "script" ? (e = o.createElement("div"), e.innerHTML = "<script><\/script>", e = e.removeChild(e.firstChild)) : typeof n.is == "string" ? e = o.createElement(r, { is: n.is }) : (e = o.createElement(r), r === "select" && (o = e, n.multiple ? o.multiple = !0 : n.size && (o.size = n.size))) : e = o.createElementNS(e, r), e[Ge] = t, e[tn] = n, Nc(e, t, !1, !1), t.stateNode = e; e: { switch (o = _l(r, n), r) { case "dialog": z("cancel", e), z("close", e), i = n; break; case "iframe": case "object": case "embed": z("load", e), i = n; break; case "video": case "audio": for (i = 0; i < Dr.length; i++)z(Dr[i], e); i = n; break; case "source": z("error", e), i = n; break; case "img": case "image": case "link": z("error", e), z("load", e), i = n; break; case "details": z("toggle", e), i = n; break; case "input": ws(e, n), i = Al(e, n), z("invalid", e); break; case "option": i = n; break; case "select": e._wrapperState = { wasMultiple: !!n.multiple }, i = W({}, n, { value: void 0 }), z("invalid", e); break; case "textarea": As(e, n), i = Ml(e, n), z("invalid", e); break; default: i = n }Nl(r, i), s = i; for (l in s) if (s.hasOwnProperty(l)) { var a = s[l]; l === "style" ? du(e, a) : l === "dangerouslySetInnerHTML" ? (a = a ? a.__html : void 0, a != null && uu(e, a)) : l === "children" ? typeof a == "string" ? (r !== "textarea" || a !== "") && Wr(e, a) : typeof a == "number" && Wr(e, "" + a) : l !== "suppressContentEditableWarning" && l !== "suppressHydrationWarning" && l !== "autoFocus" && (Br.hasOwnProperty(l) ? a != null && l === "onScroll" && z("scroll", e) : a != null && Ao(e, l, a, o)) } switch (r) { case "input": yn(e), Cs(e, n, !1); break; case "textarea": yn(e), Ls(e); break; case "option": n.value != null && e.setAttribute("value", "" + xt(n.value)); break; case "select": e.multiple = !!n.multiple, l = n.value, l != null ? or(e, !!n.multiple, l, !1) : n.defaultValue != null && or(e, !!n.multiple, n.defaultValue, !0); break; default: typeof i.onClick == "function" && (e.onclick = ii) }switch (r) { case "button": case "input": case "select": case "textarea": n = !!n.autoFocus; break e; case "img": n = !0; break e; default: n = !1 } } n && (t.flags |= 4) } t.ref !== null && (t.flags |= 512, t.flags |= 2097152) } return se(t), null; case 6: if (e && t.stateNode != null) Dc(e, t, e.memoizedProps, n); else { if (typeof n != "string" && t.stateNode === null) throw Error(T(166)); if (r = Dt(nn.current), Dt(Be.current), An(t)) { if (n = t.stateNode, r = t.memoizedProps, n[Ge] = t, (l = n.nodeValue !== r) && (e = xe, e !== null)) switch (e.tag) { case 3: Cn(n.nodeValue, r, (e.mode & 1) !== 0); break; case 5: e.memoizedProps.suppressHydrationWarning !== !0 && Cn(n.nodeValue, r, (e.mode & 1) !== 0) }l && (t.flags |= 4) } else n = (r.nodeType === 9 ? r : r.ownerDocument).createTextNode(n), n[Ge] = t, t.stateNode = n } return se(t), null; case 13: if ($(H), n = t.memoizedState, e === null || e.memoizedState !== null && e.memoizedState.dehydrated !== null) { if (G && Re !== null && t.mode & 1 && !(t.flags & 128)) Yu(), gr(), t.flags |= 98560, l = !1; else if (l = An(t), n !== null && n.dehydrated !== null) { if (e === null) { if (!l) throw Error(T(318)); if (l = t.memoizedState, l = l !== null ? l.dehydrated : null, !l) throw Error(T(317)); l[Ge] = t } else gr(), !(t.flags & 128) && (t.memoizedState = null), t.flags |= 4; se(t), l = !1 } else Fe !== null && (go(Fe), Fe = null), l = !0; if (!l) return t.flags & 65536 ? t : null } return t.flags & 128 ? (t.lanes = r, t) : (n = n !== null, n !== (e !== null && e.memoizedState !== null) && n && (t.child.flags |= 8192, t.mode & 1 && (e === null || H.current & 1 ? Y === 0 && (Y = 3) : us())), t.updateQueue !== null && (t.flags |= 4), se(t), null); case 4: return hr(), lo(e, t), e === null && Jr(t.stateNode.containerInfo), se(t), null; case 10: return Wo(t.type._context), se(t), null; case 17: return ye(t.type) && li(), se(t), null; case 19: if ($(H), l = t.memoizedState, l === null) return se(t), null; if (n = (t.flags & 128) !== 0, o = l.rendering, o === null) if (n) Lr(l, !1); else { if (Y !== 0 || e !== null && e.flags & 128) for (e = t.child; e !== null;) { if (o = pi(e), o !== null) { for (t.flags |= 128, Lr(l, !1), n = o.updateQueue, n !== null && (t.updateQueue = n, t.flags |= 4), t.subtreeFlags = 0, n = r, r = t.child; r !== null;)l = r, e = n, l.flags &= 14680066, o = l.alternate, o === null ? (l.childLanes = 0, l.lanes = e, l.child = null, l.subtreeFlags = 0, l.memoizedProps = null, l.memoizedState = null, l.updateQueue = null, l.dependencies = null, l.stateNode = null) : (l.childLanes = o.childLanes, l.lanes = o.lanes, l.child = o.child, l.subtreeFlags = 0, l.deletions = null, l.memoizedProps = o.memoizedProps, l.memoizedState = o.memoizedState, l.updateQueue = o.updateQueue, l.type = o.type, e = o.dependencies, l.dependencies = e === null ? null : { lanes: e.lanes, firstContext: e.firstContext }), r = r.sibling; return O(H, H.current & 1 | 2), t.child } e = e.sibling } l.tail !== null && K() > yr && (t.flags |= 128, n = !0, Lr(l, !1), t.lanes = 4194304) } else { if (!n) if (e = pi(o), e !== null) { if (t.flags |= 128, n = !0, r = e.updateQueue, r !== null && (t.updateQueue = r, t.flags |= 4), Lr(l, !0), l.tail === null && l.tailMode === "hidden" && !o.alternate && !G) return se(t), null } else 2 * K() - l.renderingStartTime > yr && r !== 1073741824 && (t.flags |= 128, n = !0, Lr(l, !1), t.lanes = 4194304); l.isBackwards ? (o.sibling = t.child, t.child = o) : (r = l.last, r !== null ? r.sibling = o : t.child = o, l.last = o) } return l.tail !== null ? (t = l.tail, l.rendering = t, l.tail = t.sibling, l.renderingStartTime = K(), t.sibling = null, r = H.current, O(H, n ? r & 1 | 2 : r & 1), t) : (se(t), null); case 22: case 23: return as(), n = t.memoizedState !== null, e !== null && e.memoizedState !== null !== n && (t.flags |= 8192), n && t.mode & 1 ? Se & 1073741824 && (se(t), t.subtreeFlags & 6 && (t.flags |= 8192)) : se(t), null; case 24: return null; case 25: return null }throw Error(T(156, t.tag)) } function xf(e, t) { switch ($o(t), t.tag) { case 1: return ye(t.type) && li(), e = t.flags, e & 65536 ? (t.flags = e & -65537 | 128, t) : null; case 3: return hr(), $(ve), $(ce), Xo(), e = t.flags, e & 65536 && !(e & 128) ? (t.flags = e & -65537 | 128, t) : null; case 5: return Zo(t), null; case 13: if ($(H), e = t.memoizedState, e !== null && e.dehydrated !== null) { if (t.alternate === null) throw Error(T(340)); gr() } return e = t.flags, e & 65536 ? (t.flags = e & -65537 | 128, t) : null; case 19: return $(H), null; case 4: return hr(), null; case 10: return Wo(t.type._context), null; case 22: case 23: return as(), null; case 24: return null; default: return null } } var Mn = !1, ue = !1, Tf = typeof WeakSet == "function" ? WeakSet : Set, A = null; function ir(e, t) { var r = e.ref; if (r !== null) if (typeof r == "function") try { r(null) } catch (n) { q(e, t, n) } else r.current = null } function oo(e, t, r) { try { r() } catch (n) { q(e, t, n) } } var va = !1; function kf(e, t) { if (Gl = ti, e = Ou(), zo(e)) { if ("selectionStart" in e) var r = { start: e.selectionStart, end: e.selectionEnd }; else e: { r = (r = e.ownerDocument) && r.defaultView || window; var n = r.getSelection && r.getSelection(); if (n && n.rangeCount !== 0) { r = n.anchorNode; var i = n.anchorOffset, l = n.focusNode; n = n.focusOffset; try { r.nodeType, l.nodeType } catch { r = null; break e } var o = 0, s = -1, a = -1, u = 0, g = 0, h = e, p = null; t: for (; ;) { for (var y; h !== r || i !== 0 && h.nodeType !== 3 || (s = o + i), h !== l || n !== 0 && h.nodeType !== 3 || (a = o + n), h.nodeType === 3 && (o += h.nodeValue.length), (y = h.firstChild) !== null;)p = h, h = y; for (; ;) { if (h === e) break t; if (p === r && ++u === i && (s = o), p === l && ++g === n && (a = o), (y = h.nextSibling) !== null) break; h = p, p = h.parentNode } h = y } r = s === -1 || a === -1 ? null : { start: s, end: a } } else r = null } r = r || { start: 0, end: 0 } } else r = null; for (Hl = { focusedElem: e, selectionRange: r }, ti = !1, A = t; A !== null;)if (t = A, e = t.child, (t.subtreeFlags & 1028) !== 0 && e !== null) e.return = t, A = e; else for (; A !== null;) { t = A; try { var P = t.alternate; if (t.flags & 1024) switch (t.tag) { case 0: case 11: case 15: break; case 1: if (P !== null) { var S = P.memoizedProps, C = P.memoizedState, m = t.stateNode, f = m.getSnapshotBeforeUpdate(t.elementType === t.type ? S : De(t.type, S), C); m.__reactInternalSnapshotBeforeUpdate = f } break; case 3: var d = t.stateNode.containerInfo; d.nodeType === 1 ? d.textContent = "" : d.nodeType === 9 && d.documentElement && d.removeChild(d.documentElement); break; case 5: case 6: case 4: case 17: break; default: throw Error(T(163)) } } catch (x) { q(t, t.return, x) } if (e = t.sibling, e !== null) { e.return = t.return, A = e; break } A = t.return } return P = va, va = !1, P } function Vr(e, t, r) { var n = t.updateQueue; if (n = n !== null ? n.lastEffect : null, n !== null) { var i = n = n.next; do { if ((i.tag & e) === e) { var l = i.destroy; i.destroy = void 0, l !== void 0 && oo(t, r, l) } i = i.next } while (i !== n) } } function Ei(e, t) { if (t = t.updateQueue, t = t !== null ? t.lastEffect : null, t !== null) { var r = t = t.next; do { if ((r.tag & e) === e) { var n = r.create; r.destroy = n() } r = r.next } while (r !== t) } } function so(e) { var t = e.ref; if (t !== null) { var r = e.stateNode; switch (e.tag) { case 5: e = r; break; default: e = r }typeof t == "function" ? t(e) : t.current = e } } function Ic(e) { var t = e.alternate; t !== null && (e.alternate = null, Ic(t)), e.child = null, e.deletions = null, e.sibling = null, e.tag === 5 && (t = e.stateNode, t !== null && (delete t[Ge], delete t[tn], delete t[ql], delete t[of], delete t[sf])), e.stateNode = null, e.return = null, e.dependencies = null, e.memoizedProps = null, e.memoizedState = null, e.pendingProps = null, e.stateNode = null, e.updateQueue = null } function Fc(e) { return e.tag === 5 || e.tag === 3 || e.tag === 4 } function ya(e) { e: for (; ;) { for (; e.sibling === null;) { if (e.return === null || Fc(e.return)) return null; e = e.return } for (e.sibling.return = e.return, e = e.sibling; e.tag !== 5 && e.tag !== 6 && e.tag !== 18;) { if (e.flags & 2 || e.child === null || e.tag === 4) continue e; e.child.return = e, e = e.child } if (!(e.flags & 2)) return e.stateNode } } function ao(e, t, r) { var n = e.tag; if (n === 5 || n === 6) e = e.stateNode, t ? r.nodeType === 8 ? r.parentNode.insertBefore(e, t) : r.insertBefore(e, t) : (r.nodeType === 8 ? (t = r.parentNode, t.insertBefore(e, r)) : (t = r, t.appendChild(e)), r = r._reactRootContainer, r != null || t.onclick !== null || (t.onclick = ii)); else if (n !== 4 && (e = e.child, e !== null)) for (ao(e, t, r), e = e.sibling; e !== null;)ao(e, t, r), e = e.sibling } function uo(e, t, r) { var n = e.tag; if (n === 5 || n === 6) e = e.stateNode, t ? r.insertBefore(e, t) : r.appendChild(e); else if (n !== 4 && (e = e.child, e !== null)) for (uo(e, t, r), e = e.sibling; e !== null;)uo(e, t, r), e = e.sibling } var ne = null, Ie = !1; function lt(e, t, r) { for (r = r.child; r !== null;)Uc(e, t, r), r = r.sibling } function Uc(e, t, r) { if (He && typeof He.onCommitFiberUnmount == "function") try { He.onCommitFiberUnmount(Ri, r) } catch { } switch (r.tag) { case 5: ue || ir(r, t); case 6: var n = ne, i = Ie; ne = null, lt(e, t, r), ne = n, Ie = i, ne !== null && (Ie ? (e = ne, r = r.stateNode, e.nodeType === 8 ? e.parentNode.removeChild(r) : e.removeChild(r)) : ne.removeChild(r.stateNode)); break; case 18: ne !== null && (Ie ? (e = ne, r = r.stateNode, e.nodeType === 8 ? rl(e.parentNode, r) : e.nodeType === 1 && rl(e, r), Zr(e)) : rl(ne, r.stateNode)); break; case 4: n = ne, i = Ie, ne = r.stateNode.containerInfo, Ie = !0, lt(e, t, r), ne = n, Ie = i; break; case 0: case 11: case 14: case 15: if (!ue && (n = r.updateQueue, n !== null && (n = n.lastEffect, n !== null))) { i = n = n.next; do { var l = i, o = l.destroy; l = l.tag, o !== void 0 && (l & 2 || l & 4) && oo(r, t, o), i = i.next } while (i !== n) } lt(e, t, r); break; case 1: if (!ue && (ir(r, t), n = r.stateNode, typeof n.componentWillUnmount == "function")) try { n.props = r.memoizedProps, n.state = r.memoizedState, n.componentWillUnmount() } catch (s) { q(r, t, s) } lt(e, t, r); break; case 21: lt(e, t, r); break; case 22: r.mode & 1 ? (ue = (n = ue) || r.memoizedState !== null, lt(e, t, r), ue = n) : lt(e, t, r); break; default: lt(e, t, r) } } function Pa(e) { var t = e.updateQueue; if (t !== null) { e.updateQueue = null; var r = e.stateNode; r === null && (r = e.stateNode = new Tf), t.forEach(function (n) { var i = _f.bind(null, e, n); r.has(n) || (r.add(n), n.then(i, i)) }) } } function _e(e, t) { var r = t.deletions; if (r !== null) for (var n = 0; n < r.length; n++) { var i = r[n]; try { var l = e, o = t, s = o; e: for (; s !== null;) { switch (s.tag) { case 5: ne = s.stateNode, Ie = !1; break e; case 3: ne = s.stateNode.containerInfo, Ie = !0; break e; case 4: ne = s.stateNode.containerInfo, Ie = !0; break e }s = s.return } if (ne === null) throw Error(T(160)); Uc(l, o, i), ne = null, Ie = !1; var a = i.alternate; a !== null && (a.return = null), i.return = null } catch (u) { q(i, t, u) } } if (t.subtreeFlags & 12854) for (t = t.child; t !== null;)jc(t, e), t = t.sibling } function jc(e, t) { var r = e.alternate, n = e.flags; switch (e.tag) { case 0: case 11: case 14: case 15: if (_e(t, e), Ve(e), n & 4) { try { Vr(3, e, e.return), Ei(3, e) } catch (S) { q(e, e.return, S) } try { Vr(5, e, e.return) } catch (S) { q(e, e.return, S) } } break; case 1: _e(t, e), Ve(e), n & 512 && r !== null && ir(r, r.return); break; case 5: if (_e(t, e), Ve(e), n & 512 && r !== null && ir(r, r.return), e.flags & 32) { var i = e.stateNode; try { Wr(i, "") } catch (S) { q(e, e.return, S) } } if (n & 4 && (i = e.stateNode, i != null)) { var l = e.memoizedProps, o = r !== null ? r.memoizedProps : l, s = e.type, a = e.updateQueue; if (e.updateQueue = null, a !== null) try { s === "input" && l.type === "radio" && l.name != null && ou(i, l), _l(s, o); var u = _l(s, l); for (o = 0; o < a.length; o += 2) { var g = a[o], h = a[o + 1]; g === "style" ? du(i, h) : g === "dangerouslySetInnerHTML" ? uu(i, h) : g === "children" ? Wr(i, h) : Ao(i, g, h, u) } switch (s) { case "input": Ll(i, l); break; case "textarea": su(i, l); break; case "select": var p = i._wrapperState.wasMultiple; i._wrapperState.wasMultiple = !!l.multiple; var y = l.value; y != null ? or(i, !!l.multiple, y, !1) : p !== !!l.multiple && (l.defaultValue != null ? or(i, !!l.multiple, l.defaultValue, !0) : or(i, !!l.multiple, l.multiple ? [] : "", !1)) }i[tn] = l } catch (S) { q(e, e.return, S) } } break; case 6: if (_e(t, e), Ve(e), n & 4) { if (e.stateNode === null) throw Error(T(162)); i = e.stateNode, l = e.memoizedProps; try { i.nodeValue = l } catch (S) { q(e, e.return, S) } } break; case 3: if (_e(t, e), Ve(e), n & 4 && r !== null && r.memoizedState.isDehydrated) try { Zr(t.containerInfo) } catch (S) { q(e, e.return, S) } break; case 4: _e(t, e), Ve(e); break; case 13: _e(t, e), Ve(e), i = e.child, i.flags & 8192 && (l = i.memoizedState !== null, i.stateNode.isHidden = l, !l || i.alternate !== null && i.alternate.memoizedState !== null || (os = K())), n & 4 && Pa(e); break; case 22: if (g = r !== null && r.memoizedState !== null, e.mode & 1 ? (ue = (u = ue) || g, _e(t, e), ue = u) : _e(t, e), Ve(e), n & 8192) { if (u = e.memoizedState !== null, (e.stateNode.isHidden = u) && !g && e.mode & 1) for (A = e, g = e.child; g !== null;) { for (h = A = g; A !== null;) { switch (p = A, y = p.child, p.tag) { case 0: case 11: case 14: case 15: Vr(4, p, p.return); break; case 1: ir(p, p.return); var P = p.stateNode; if (typeof P.componentWillUnmount == "function") { n = p, r = p.return; try { t = n, P.props = t.memoizedProps, P.state = t.memoizedState, P.componentWillUnmount() } catch (S) { q(n, r, S) } } break; case 5: ir(p, p.return); break; case 22: if (p.memoizedState !== null) { Ra(h); continue } }y !== null ? (y.return = p, A = y) : Ra(h) } g = g.sibling } e: for (g = null, h = e; ;) { if (h.tag === 5) { if (g === null) { g = h; try { i = h.stateNode, u ? (l = i.style, typeof l.setProperty == "function" ? l.setProperty("display", "none", "important") : l.display = "none") : (s = h.stateNode, a = h.memoizedProps.style, o = a != null && a.hasOwnProperty("display") ? a.display : null, s.style.display = cu("display", o)) } catch (S) { q(e, e.return, S) } } } else if (h.tag === 6) { if (g === null) try { h.stateNode.nodeValue = u ? "" : h.memoizedProps } catch (S) { q(e, e.return, S) } } else if ((h.tag !== 22 && h.tag !== 23 || h.memoizedState === null || h === e) && h.child !== null) { h.child.return = h, h = h.child; continue } if (h === e) break e; for (; h.sibling === null;) { if (h.return === null || h.return === e) break e; g === h && (g = null), h = h.return } g === h && (g = null), h.sibling.return = h.return, h = h.sibling } } break; case 19: _e(t, e), Ve(e), n & 4 && Pa(e); break; case 21: break; default: _e(t, e), Ve(e) } } function Ve(e) { var t = e.flags; if (t & 2) { try { e: { for (var r = e.return; r !== null;) { if (Fc(r)) { var n = r; break e } r = r.return } throw Error(T(160)) } switch (n.tag) { case 5: var i = n.stateNode; n.flags & 32 && (Wr(i, ""), n.flags &= -33); var l = ya(e); uo(e, l, i); break; case 3: case 4: var o = n.stateNode.containerInfo, s = ya(e); ao(e, s, o); break; default: throw Error(T(161)) } } catch (a) { q(e, e.return, a) } e.flags &= -3 } t & 4096 && (e.flags &= -4097) } function wf(e, t, r) { A = e, Oc(e) } function Oc(e, t, r) { for (var n = (e.mode & 1) !== 0; A !== null;) { var i = A, l = i.child; if (i.tag === 22 && n) { var o = i.memoizedState !== null || Mn; if (!o) { var s = i.alternate, a = s !== null && s.memoizedState !== null || ue; s = Mn; var u = ue; if (Mn = o, (ue = a) && !u) for (A = i; A !== null;)o = A, a = o.child, o.tag === 22 && o.memoizedState !== null ? xa(i) : a !== null ? (a.return = o, A = a) : xa(i); for (; l !== null;)A = l, Oc(l), l = l.sibling; A = i, Mn = s, ue = u } Sa(e) } else i.subtreeFlags & 8772 && l !== null ? (l.return = i, A = l) : Sa(e) } } function Sa(e) { for (; A !== null;) { var t = A; if (t.flags & 8772) { var r = t.alternate; try { if (t.flags & 8772) switch (t.tag) { case 0: case 11: case 15: ue || Ei(5, t); break; case 1: var n = t.stateNode; if (t.flags & 4 && !ue) if (r === null) n.componentDidMount(); else { var i = t.elementType === t.type ? r.memoizedProps : De(t.type, r.memoizedProps); n.componentDidUpdate(i, r.memoizedState, n.__reactInternalSnapshotBeforeUpdate) } var l = t.updateQueue; l !== null && ia(t, l, n); break; case 3: var o = t.updateQueue; if (o !== null) { if (r = null, t.child !== null) switch (t.child.tag) { case 5: r = t.child.stateNode; break; case 1: r = t.child.stateNode }ia(t, o, r) } break; case 5: var s = t.stateNode; if (r === null && t.flags & 4) { r = s; var a = t.memoizedProps; switch (t.type) { case "button": case "input": case "select": case "textarea": a.autoFocus && r.focus(); break; case "img": a.src && (r.src = a.src) } } break; case 6: break; case 4: break; case 12: break; case 13: if (t.memoizedState === null) { var u = t.alternate; if (u !== null) { var g = u.memoizedState; if (g !== null) { var h = g.dehydrated; h !== null && Zr(h) } } } break; case 19: case 17: case 21: case 22: case 23: case 25: break; default: throw Error(T(163)) }ue || t.flags & 512 && so(t) } catch (p) { q(t, t.return, p) } } if (t === e) { A = null; break } if (r = t.sibling, r !== null) { r.return = t.return, A = r; break } A = t.return } } function Ra(e) { for (; A !== null;) { var t = A; if (t === e) { A = null; break } var r = t.sibling; if (r !== null) { r.return = t.return, A = r; break } A = t.return } } function xa(e) { for (; A !== null;) { var t = A; try { switch (t.tag) { case 0: case 11: case 15: var r = t.return; try { Ei(4, t) } catch (a) { q(t, r, a) } break; case 1: var n = t.stateNode; if (typeof n.componentDidMount == "function") { var i = t.return; try { n.componentDidMount() } catch (a) { q(t, i, a) } } var l = t.return; try { so(t) } catch (a) { q(t, l, a) } break; case 5: var o = t.return; try { so(t) } catch (a) { q(t, o, a) } } } catch (a) { q(t, t.return, a) } if (t === e) { A = null; break } var s = t.sibling; if (s !== null) { s.return = t.return, A = s; break } A = t.return } } var Cf = Math.ceil, mi = rt.ReactCurrentDispatcher, is = rt.ReactCurrentOwner, Me = rt.ReactCurrentBatchConfig, F = 0, te = null, Z = null, ie = 0, Se = 0, lr = Ct(0), Y = 0, an = null, zt = 0, Mi = 0, ls = 0, $r = null, me = null, os = 0, yr = 1 / 0, We = null, hi = !1, co = null, Pt = null, bn = !1, pt = null, vi = 0, Gr = 0, po = null, Wn = -1, qn = 0; function pe() { return F & 6 ? K() : Wn !== -1 ? Wn : Wn = K() } function St(e) { return e.mode & 1 ? F & 2 && ie !== 0 ? ie & -ie : uf.transition !== null ? (qn === 0 && (qn = Tu()), qn) : (e = U, e !== 0 || (e = window.event, e = e === void 0 ? 16 : Mu(e.type)), e) : 1 } function je(e, t, r, n) { if (50 < Gr) throw Gr = 0, po = null, Error(T(185)); cn(e, r, n), (!(F & 2) || e !== te) && (e === te && (!(F & 2) && (Mi |= r), Y === 4 && ct(e, ie)), Pe(e, n), r === 1 && F === 0 && !(t.mode & 1) && (yr = K() + 500, Ci && At())) } function Pe(e, t) { var r = e.callbackNode; ap(e, t); var n = ei(e, e === te ? ie : 0); if (n === 0) r !== null && bs(r), e.callbackNode = null, e.callbackPriority = 0; else if (t = n & -n, e.callbackPriority !== t) { if (r != null && bs(r), t === 1) e.tag === 0 ? af(Ta.bind(null, e)) : Ku(Ta.bind(null, e)), nf(function () { !(F & 6) && At() }), r = null; else { switch (ku(n)) { case 1: r = No; break; case 4: r = Ru; break; case 16: r = Jn; break; case 536870912: r = xu; break; default: r = Jn }r = qc(r, zc.bind(null, e)) } e.callbackPriority = t, e.callbackNode = r } } function zc(e, t) { if (Wn = -1, qn = 0, F & 6) throw Error(T(327)); var r = e.callbackNode; if (dr() && e.callbackNode !== r) return null; var n = ei(e, e === te ? ie : 0); if (n === 0) return null; if (n & 30 || n & e.expiredLanes || t) t = yi(e, n); else { t = n; var i = F; F |= 2; var l = $c(); (te !== e || ie !== t) && (We = null, yr = K() + 500, It(e, t)); do try { Ef(); break } catch (s) { Vc(e, s) } while (!0); Bo(), mi.current = l, F = i, Z !== null ? t = 0 : (te = null, ie = 0, t = Y) } if (t !== 0) { if (t === 2 && (i = jl(e), i !== 0 && (n = i, t = fo(e, i))), t === 1) throw r = an, It(e, 0), ct(e, n), Pe(e, K()), r; if (t === 6) ct(e, n); else { if (i = e.current.alternate, !(n & 30) && !Af(i) && (t = yi(e, n), t === 2 && (l = jl(e), l !== 0 && (n = l, t = fo(e, l))), t === 1)) throw r = an, It(e, 0), ct(e, n), Pe(e, K()), r; switch (e.finishedWork = i, e.finishedLanes = n, t) { case 0: case 1: throw Error(T(345)); case 2: bt(e, me, We); break; case 3: if (ct(e, n), (n & 130023424) === n && (t = os + 500 - K(), 10 < t)) { if (ei(e, 0) !== 0) break; if (i = e.suspendedLanes, (i & n) !== n) { pe(), e.pingedLanes |= e.suspendedLanes & i; break } e.timeoutHandle = Wl(bt.bind(null, e, me, We), t); break } bt(e, me, We); break; case 4: if (ct(e, n), (n & 4194240) === n) break; for (t = e.eventTimes, i = -1; 0 < n;) { var o = 31 - Ue(n); l = 1 << o, o = t[o], o > i && (i = o), n &= ~l } if (n = i, n = K() - n, n = (120 > n ? 120 : 480 > n ? 480 : 1080 > n ? 1080 : 1920 > n ? 1920 : 3e3 > n ? 3e3 : 4320 > n ? 4320 : 1960 * Cf(n / 1960)) - n, 10 < n) { e.timeoutHandle = Wl(bt.bind(null, e, me, We), n); break } bt(e, me, We); break; case 5: bt(e, me, We); break; default: throw Error(T(329)) } } } return Pe(e, K()), e.callbackNode === r ? zc.bind(null, e) : null } function fo(e, t) { var r = $r; return e.current.memoizedState.isDehydrated && (It(e, t).flags |= 256), e = yi(e, t), e !== 2 && (t = me, me = r, t !== null && go(t)), e } function go(e) { me === null ? me = e : me.push.apply(me, e) } function Af(e) { for (var t = e; ;) { if (t.flags & 16384) { var r = t.updateQueue; if (r !== null && (r = r.stores, r !== null)) for (var n = 0; n < r.length; n++) { var i = r[n], l = i.getSnapshot; i = i.value; try { if (!ze(l(), i)) return !1 } catch { return !1 } } } if (r = t.child, t.subtreeFlags & 16384 && r !== null) r.return = t, t = r; else { if (t === e) break; for (; t.sibling === null;) { if (t.return === null || t.return === e) return !0; t = t.return } t.sibling.return = t.return, t = t.sibling } } return !0 } function ct(e, t) { for (t &= ~ls, t &= ~Mi, e.suspendedLanes |= t, e.pingedLanes &= ~t, e = e.expirationTimes; 0 < t;) { var r = 31 - Ue(t), n = 1 << r; e[r] = -1, t &= ~n } } function Ta(e) { if (F & 6) throw Error(T(327)); dr(); var t = ei(e, 0); if (!(t & 1)) return Pe(e, K()), null; var r = yi(e, t); if (e.tag !== 0 && r === 2) { var n = jl(e); n !== 0 && (t = n, r = fo(e, n)) } if (r === 1) throw r = an, It(e, 0), ct(e, t), Pe(e, K()), r; if (r === 6) throw Error(T(345)); return e.finishedWork = e.current.alternate, e.finishedLanes = t, bt(e, me, We), Pe(e, K()), null } function ss(e, t) { var r = F; F |= 1; try { return e(t) } finally { F = r, F === 0 && (yr = K() + 500, Ci && At()) } } function Vt(e) { pt !== null && pt.tag === 0 && !(F & 6) && dr(); var t = F; F |= 1; var r = Me.transition, n = U; try { if (Me.transition = null, U = 1, e) return e() } finally { U = n, Me.transition = r, F = t, !(F & 6) && At() } } function as() { Se = lr.current, $(lr) } function It(e, t) { e.finishedWork = null, e.finishedLanes = 0; var r = e.timeoutHandle; if (r !== -1 && (e.timeoutHandle = -1, rf(r)), Z !== null) for (r = Z.return; r !== null;) { var n = r; switch ($o(n), n.tag) { case 1: n = n.type.childContextTypes, n != null && li(); break; case 3: hr(), $(ve), $(ce), Xo(); break; case 5: Zo(n); break; case 4: hr(); break; case 13: $(H); break; case 19: $(H); break; case 10: Wo(n.type._context); break; case 22: case 23: as() }r = r.return } if (te = e, Z = e = Rt(e.current, null), ie = Se = t, Y = 0, an = null, ls = Mi = zt = 0, me = $r = null, _t !== null) { for (t = 0; t < _t.length; t++)if (r = _t[t], n = r.interleaved, n !== null) { r.interleaved = null; var i = n.next, l = r.pending; if (l !== null) { var o = l.next; l.next = i, n.next = o } r.pending = n } _t = null } return e } function Vc(e, t) { do { var r = Z; try { if (Bo(), Gn.current = gi, fi) { for (var n = B.memoizedState; n !== null;) { var i = n.queue; i !== null && (i.pending = null), n = n.next } fi = !1 } if (Ot = 0, ee = X = B = null, zr = !1, ln = 0, is.current = null, r === null || r.return === null) { Y = 1, an = t, Z = null; break } e: { var l = e, o = r.return, s = r, a = t; if (t = ie, s.flags |= 32768, a !== null && typeof a == "object" && typeof a.then == "function") { var u = a, g = s, h = g.tag; if (!(g.mode & 1) && (h === 0 || h === 11 || h === 15)) { var p = g.alternate; p ? (g.updateQueue = p.updateQueue, g.memoizedState = p.memoizedState, g.lanes = p.lanes) : (g.updateQueue = null, g.memoizedState = null) } var y = ca(o); if (y !== null) { y.flags &= -257, da(y, o, s, l, t), y.mode & 1 && ua(l, u, t), t = y, a = u; var P = t.updateQueue; if (P === null) { var S = new Set; S.add(a), t.updateQueue = S } else P.add(a); break e } else { if (!(t & 1)) { ua(l, u, t), us(); break e } a = Error(T(426)) } } else if (G && s.mode & 1) { var C = ca(o); if (C !== null) { !(C.flags & 65536) && (C.flags |= 256), da(C, o, s, l, t), Go(vr(a, s)); break e } } l = a = vr(a, s), Y !== 4 && (Y = 2), $r === null ? $r = [l] : $r.push(l), l = o; do { switch (l.tag) { case 3: l.flags |= 65536, t &= -t, l.lanes |= t; var m = kc(l, a, t); na(l, m); break e; case 1: s = a; var f = l.type, d = l.stateNode; if (!(l.flags & 128) && (typeof f.getDerivedStateFromError == "function" || d !== null && typeof d.componentDidCatch == "function" && (Pt === null || !Pt.has(d)))) { l.flags |= 65536, t &= -t, l.lanes |= t; var x = wc(l, s, t); na(l, x); break e } }l = l.return } while (l !== null) } Hc(r) } catch (v) { t = v, Z === r && r !== null && (Z = r = r.return); continue } break } while (!0) } function $c() { var e = mi.current; return mi.current = gi, e === null ? gi : e } function us() { (Y === 0 || Y === 3 || Y === 2) && (Y = 4), te === null || !(zt & 268435455) && !(Mi & 268435455) || ct(te, ie) } function yi(e, t) { var r = F; F |= 2; var n = $c(); (te !== e || ie !== t) && (We = null, It(e, t)); do try { Lf(); break } catch (i) { Vc(e, i) } while (!0); if (Bo(), F = r, mi.current = n, Z !== null) throw Error(T(261)); return te = null, ie = 0, Y } function Lf() { for (; Z !== null;)Gc(Z) } function Ef() { for (; Z !== null && !Jd();)Gc(Z) } function Gc(e) { var t = Wc(e.alternate, e, Se); e.memoizedProps = e.pendingProps, t === null ? Hc(e) : Z = t, is.current = null } function Hc(e) { var t = e; do { var r = t.alternate; if (e = t.return, t.flags & 32768) { if (r = xf(r, t), r !== null) { r.flags &= 32767, Z = r; return } if (e !== null) e.flags |= 32768, e.subtreeFlags = 0, e.deletions = null; else { Y = 6, Z = null; return } } else if (r = Rf(r, t, Se), r !== null) { Z = r; return } if (t = t.sibling, t !== null) { Z = t; return } Z = t = e } while (t !== null); Y === 0 && (Y = 5) } function bt(e, t, r) { var n = U, i = Me.transition; try { Me.transition = null, U = 1, Mf(e, t, r, n) } finally { Me.transition = i, U = n } return null } function Mf(e, t, r, n) { do dr(); while (pt !== null); if (F & 6) throw Error(T(327)); r = e.finishedWork; var i = e.finishedLanes; if (r === null) return null; if (e.finishedWork = null, e.finishedLanes = 0, r === e.current) throw Error(T(177)); e.callbackNode = null, e.callbackPriority = 0; var l = r.lanes | r.childLanes; if (up(e, l), e === te && (Z = te = null, ie = 0), !(r.subtreeFlags & 2064) && !(r.flags & 2064) || bn || (bn = !0, qc(Jn, function () { return dr(), null })), l = (r.flags & 15990) !== 0, r.subtreeFlags & 15990 || l) { l = Me.transition, Me.transition = null; var o = U; U = 1; var s = F; F |= 4, is.current = null, kf(e, r), jc(r, e), Kp(Hl), ti = !!Gl, Hl = Gl = null, e.current = r, wf(r), ep(), F = s, U = o, Me.transition = l } else e.current = r; if (bn && (bn = !1, pt = e, vi = i), l = e.pendingLanes, l === 0 && (Pt = null), np(r.stateNode), Pe(e, K()), t !== null) for (n = e.onRecoverableError, r = 0; r < t.length; r++)i = t[r], n(i.value, { componentStack: i.stack, digest: i.digest }); if (hi) throw hi = !1, e = co, co = null, e; return vi & 1 && e.tag !== 0 && dr(), l = e.pendingLanes, l & 1 ? e === po ? Gr++ : (Gr = 0, po = e) : Gr = 0, At(), null } function dr() { if (pt !== null) { var e = ku(vi), t = Me.transition, r = U; try { if (Me.transition = null, U = 16 > e ? 16 : e, pt === null) var n = !1; else { if (e = pt, pt = null, vi = 0, F & 6) throw Error(T(331)); var i = F; for (F |= 4, A = e.current; A !== null;) { var l = A, o = l.child; if (A.flags & 16) { var s = l.deletions; if (s !== null) { for (var a = 0; a < s.length; a++) { var u = s[a]; for (A = u; A !== null;) { var g = A; switch (g.tag) { case 0: case 11: case 15: Vr(8, g, l) }var h = g.child; if (h !== null) h.return = g, A = h; else for (; A !== null;) { g = A; var p = g.sibling, y = g.return; if (Ic(g), g === u) { A = null; break } if (p !== null) { p.return = y, A = p; break } A = y } } } var P = l.alternate; if (P !== null) { var S = P.child; if (S !== null) { P.child = null; do { var C = S.sibling; S.sibling = null, S = C } while (S !== null) } } A = l } } if (l.subtreeFlags & 2064 && o !== null) o.return = l, A = o; else e: for (; A !== null;) { if (l = A, l.flags & 2048) switch (l.tag) { case 0: case 11: case 15: Vr(9, l, l.return) }var m = l.sibling; if (m !== null) { m.return = l.return, A = m; break e } A = l.return } } var f = e.current; for (A = f; A !== null;) { o = A; var d = o.child; if (o.subtreeFlags & 2064 && d !== null) d.return = o, A = d; else e: for (o = f; A !== null;) { if (s = A, s.flags & 2048) try { switch (s.tag) { case 0: case 11: case 15: Ei(9, s) } } catch (v) { q(s, s.return, v) } if (s === o) { A = null; break e } var x = s.sibling; if (x !== null) { x.return = s.return, A = x; break e } A = s.return } } if (F = i, At(), He && typeof He.onPostCommitFiberRoot == "function") try { He.onPostCommitFiberRoot(Ri, e) } catch { } n = !0 } return n } finally { U = r, Me.transition = t } } return !1 } function ka(e, t, r) { t = vr(r, t), t = kc(e, t, 1), e = yt(e, t, 1), t = pe(), e !== null && (cn(e, 1, t), Pe(e, t)) } function q(e, t, r) { if (e.tag === 3) ka(e, e, r); else for (; t !== null;) { if (t.tag === 3) { ka(t, e, r); break } else if (t.tag === 1) { var n = t.stateNode; if (typeof t.type.getDerivedStateFromError == "function" || typeof n.componentDidCatch == "function" && (Pt === null || !Pt.has(n))) { e = vr(r, e), e = wc(t, e, 1), t = yt(t, e, 1), e = pe(), t !== null && (cn(t, 1, e), Pe(t, e)); break } } t = t.return } } function bf(e, t, r) { var n = e.pingCache; n !== null && n.delete(t), t = pe(), e.pingedLanes |= e.suspendedLanes & r, te === e && (ie & r) === r && (Y === 4 || Y === 3 && (ie & 130023424) === ie && 500 > K() - os ? It(e, 0) : ls |= r), Pe(e, t) } function Bc(e, t) { t === 0 && (e.mode & 1 ? (t = Rn, Rn <<= 1, !(Rn & 130023424) && (Rn = 4194304)) : t = 1); var r = pe(); e = et(e, t), e !== null && (cn(e, t, r), Pe(e, r)) } function Nf(e) { var t = e.memoizedState, r = 0; t !== null && (r = t.retryLane), Bc(e, r) } function _f(e, t) { var r = 0; switch (e.tag) { case 13: var n = e.stateNode, i = e.memoizedState; i !== null && (r = i.retryLane); break; case 19: n = e.stateNode; break; default: throw Error(T(314)) }n !== null && n.delete(t), Bc(e, r) } var Wc; Wc = function (e, t, r) { if (e !== null) if (e.memoizedProps !== t.pendingProps || ve.current) he = !0; else { if (!(e.lanes & r) && !(t.flags & 128)) return he = !1, Sf(e, t, r); he = !!(e.flags & 131072) } else he = !1, G && t.flags & 1048576 && Zu(t, ai, t.index); switch (t.lanes = 0, t.tag) { case 2: var n = t.type; Bn(e, t), e = t.pendingProps; var i = fr(t, ce.current); cr(t, r), i = Jo(null, t, n, e, i, r); var l = es(); return t.flags |= 1, typeof i == "object" && i !== null && typeof i.render == "function" && i.$$typeof === void 0 ? (t.tag = 1, t.memoizedState = null, t.updateQueue = null, ye(n) ? (l = !0, oi(t)) : l = !1, t.memoizedState = i.state !== null && i.state !== void 0 ? i.state : null, Qo(t), i.updater = Li, t.stateNode = i, i._reactInternals = t, Jl(t, n, e, r), t = ro(null, t, n, !0, l, r)) : (t.tag = 0, G && l && Vo(t), de(null, t, i, r), t = t.child), t; case 16: n = t.elementType; e: { switch (Bn(e, t), e = t.pendingProps, i = n._init, n = i(n._payload), t.type = n, i = t.tag = If(n), e = De(n, e), i) { case 0: t = to(null, t, n, e, r); break e; case 1: t = ga(null, t, n, e, r); break e; case 11: t = pa(null, t, n, e, r); break e; case 14: t = fa(null, t, n, De(n.type, e), r); break e }throw Error(T(306, n, "")) } return t; case 0: return n = t.type, i = t.pendingProps, i = t.elementType === n ? i : De(n, i), to(e, t, n, i, r); case 1: return n = t.type, i = t.pendingProps, i = t.elementType === n ? i : De(n, i), ga(e, t, n, i, r); case 3: e: { if (Ec(t), e === null) throw Error(T(387)); n = t.pendingProps, l = t.memoizedState, i = l.element, rc(e, t), di(t, n, null, r); var o = t.memoizedState; if (n = o.element, l.isDehydrated) if (l = { element: n, isDehydrated: !1, cache: o.cache, pendingSuspenseBoundaries: o.pendingSuspenseBoundaries, transitions: o.transitions }, t.updateQueue.baseState = l, t.memoizedState = l, t.flags & 256) { i = vr(Error(T(423)), t), t = ma(e, t, n, r, i); break e } else if (n !== i) { i = vr(Error(T(424)), t), t = ma(e, t, n, r, i); break e } else for (Re = vt(t.stateNode.containerInfo.firstChild), xe = t, G = !0, Fe = null, r = ec(t, null, n, r), t.child = r; r;)r.flags = r.flags & -3 | 4096, r = r.sibling; else { if (gr(), n === i) { t = tt(e, t, r); break e } de(e, t, n, r) } t = t.child } return t; case 5: return nc(t), e === null && Zl(t), n = t.type, i = t.pendingProps, l = e !== null ? e.memoizedProps : null, o = i.children, Bl(n, i) ? o = null : l !== null && Bl(n, l) && (t.flags |= 32), Lc(e, t), de(e, t, o, r), t.child; case 6: return e === null && Zl(t), null; case 13: return Mc(e, t, r); case 4: return Ko(t, t.stateNode.containerInfo), n = t.pendingProps, e === null ? t.child = mr(t, null, n, r) : de(e, t, n, r), t.child; case 11: return n = t.type, i = t.pendingProps, i = t.elementType === n ? i : De(n, i), pa(e, t, n, i, r); case 7: return de(e, t, t.pendingProps, r), t.child; case 8: return de(e, t, t.pendingProps.children, r), t.child; case 12: return de(e, t, t.pendingProps.children, r), t.child; case 10: e: { if (n = t.type._context, i = t.pendingProps, l = t.memoizedProps, o = i.value, O(ui, n._currentValue), n._currentValue = o, l !== null) if (ze(l.value, o)) { if (l.children === i.children && !ve.current) { t = tt(e, t, r); break e } } else for (l = t.child, l !== null && (l.return = t); l !== null;) { var s = l.dependencies; if (s !== null) { o = l.child; for (var a = s.firstContext; a !== null;) { if (a.context === n) { if (l.tag === 1) { a = Xe(-1, r & -r), a.tag = 2; var u = l.updateQueue; if (u !== null) { u = u.shared; var g = u.pending; g === null ? a.next = a : (a.next = g.next, g.next = a), u.pending = a } } l.lanes |= r, a = l.alternate, a !== null && (a.lanes |= r), Xl(l.return, r, t), s.lanes |= r; break } a = a.next } } else if (l.tag === 10) o = l.type === t.type ? null : l.child; else if (l.tag === 18) { if (o = l.return, o === null) throw Error(T(341)); o.lanes |= r, s = o.alternate, s !== null && (s.lanes |= r), Xl(o, r, t), o = l.sibling } else o = l.child; if (o !== null) o.return = l; else for (o = l; o !== null;) { if (o === t) { o = null; break } if (l = o.sibling, l !== null) { l.return = o.return, o = l; break } o = o.return } l = o } de(e, t, i.children, r), t = t.child } return t; case 9: return i = t.type, n = t.pendingProps.children, cr(t, r), i = be(i), n = n(i), t.flags |= 1, de(e, t, n, r), t.child; case 14: return n = t.type, i = De(n, t.pendingProps), i = De(n.type, i), fa(e, t, n, i, r); case 15: return Cc(e, t, t.type, t.pendingProps, r); case 17: return n = t.type, i = t.pendingProps, i = t.elementType === n ? i : De(n, i), Bn(e, t), t.tag = 1, ye(n) ? (e = !0, oi(t)) : e = !1, cr(t, r), Tc(t, n, i), Jl(t, n, i, r), ro(null, t, n, !0, e, r); case 19: return bc(e, t, r); case 22: return Ac(e, t, r) }throw Error(T(156, t.tag)) }; function qc(e, t) { return Su(e, t) } function Df(e, t, r, n) { this.tag = e, this.key = r, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = t, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = n, this.subtreeFlags = this.flags = 0, this.deletions = null, this.childLanes = this.lanes = 0, this.alternate = null } function Ee(e, t, r, n) { return new Df(e, t, r, n) } function cs(e) { return e = e.prototype, !(!e || !e.isReactComponent) } function If(e) { if (typeof e == "function") return cs(e) ? 1 : 0; if (e != null) { if (e = e.$$typeof, e === Eo) return 11; if (e === Mo) return 14 } return 2 } function Rt(e, t) { var r = e.alternate; return r === null ? (r = Ee(e.tag, t, e.key, e.mode), r.elementType = e.elementType, r.type = e.type, r.stateNode = e.stateNode, r.alternate = e, e.alternate = r) : (r.pendingProps = t, r.type = e.type, r.flags = 0, r.subtreeFlags = 0, r.deletions = null), r.flags = e.flags & 14680064, r.childLanes = e.childLanes, r.lanes = e.lanes, r.child = e.child, r.memoizedProps = e.memoizedProps, r.memoizedState = e.memoizedState, r.updateQueue = e.updateQueue, t = e.dependencies, r.dependencies = t === null ? null : { lanes: t.lanes, firstContext: t.firstContext }, r.sibling = e.sibling, r.index = e.index, r.ref = e.ref, r } function Qn(e, t, r, n, i, l) { var o = 2; if (n = e, typeof e == "function") cs(e) && (o = 1); else if (typeof e == "string") o = 5; else e: switch (e) { case Kt: return Ft(r.children, i, l, t); case Lo: o = 8, i |= 8; break; case Tl: return e = Ee(12, r, t, i | 2), e.elementType = Tl, e.lanes = l, e; case kl: return e = Ee(13, r, t, i), e.elementType = kl, e.lanes = l, e; case wl: return e = Ee(19, r, t, i), e.elementType = wl, e.lanes = l, e; case nu: return bi(r, i, l, t); default: if (typeof e == "object" && e !== null) switch (e.$$typeof) { case tu: o = 10; break e; case ru: o = 9; break e; case Eo: o = 11; break e; case Mo: o = 14; break e; case st: o = 16, n = null; break e }throw Error(T(130, e == null ? e : typeof e, "")) }return t = Ee(o, r, t, i), t.elementType = e, t.type = n, t.lanes = l, t } function Ft(e, t, r, n) { return e = Ee(7, e, n, t), e.lanes = r, e } function bi(e, t, r, n) { return e = Ee(22, e, n, t), e.elementType = nu, e.lanes = r, e.stateNode = { isHidden: !1 }, e } function cl(e, t, r) { return e = Ee(6, e, null, t), e.lanes = r, e } function dl(e, t, r) { return t = Ee(4, e.children !== null ? e.children : [], e.key, t), t.lanes = r, t.stateNode = { containerInfo: e.containerInfo, pendingChildren: null, implementation: e.implementation }, t } function Ff(e, t, r, n, i) { this.tag = t, this.containerInfo = e, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = -1, this.callbackNode = this.pendingContext = this.context = null, this.callbackPriority = 0, this.eventTimes = Bi(0), this.expirationTimes = Bi(-1), this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = Bi(0), this.identifierPrefix = n, this.onRecoverableError = i, this.mutableSourceEagerHydrationData = null } function ds(e, t, r, n, i, l, o, s, a) { return e = new Ff(e, t, r, s, a), t === 1 ? (t = 1, l === !0 && (t |= 8)) : t = 0, l = Ee(3, null, null, t), e.current = l, l.stateNode = e, l.memoizedState = { element: n, isDehydrated: r, cache: null, transitions: null, pendingSuspenseBoundaries: null }, Qo(l), e } function Uf(e, t, r) { var n = 3 < arguments.length && arguments[3] !== void 0 ? arguments[3] : null; return { $$typeof: Qt, key: n == null ? null : "" + n, children: e, containerInfo: t, implementation: r } } function Qc(e) { if (!e) return Tt; e = e._reactInternals; e: { if (Gt(e) !== e || e.tag !== 1) throw Error(T(170)); var t = e; do { switch (t.tag) { case 3: t = t.stateNode.context; break e; case 1: if (ye(t.type)) { t = t.stateNode.__reactInternalMemoizedMergedChildContext; break e } }t = t.return } while (t !== null); throw Error(T(171)) } if (e.tag === 1) { var r = e.type; if (ye(r)) return Qu(e, r, t) } return t } function Kc(e, t, r, n, i, l, o, s, a) { return e = ds(r, n, !0, e, i, l, o, s, a), e.context = Qc(null), r = e.current, n = pe(), i = St(r), l = Xe(n, i), l.callback = t ?? null, yt(r, l, i), e.current.lanes = i, cn(e, i, n), Pe(e, n), e } function Ni(e, t, r, n) { var i = t.current, l = pe(), o = St(i); return r = Qc(r), t.context === null ? t.context = r : t.pendingContext = r, t = Xe(l, o), t.payload = { element: e }, n = n === void 0 ? null : n, n !== null && (t.callback = n), e = yt(i, t, o), e !== null && (je(e, i, o, l), $n(e, i, o)), o } function Pi(e) { if (e = e.current, !e.child) return null; switch (e.child.tag) { case 5: return e.child.stateNode; default: return e.child.stateNode } } function wa(e, t) { if (e = e.memoizedState, e !== null && e.dehydrated !== null) { var r = e.retryLane; e.retryLane = r !== 0 && r < t ? r : t } } function ps(e, t) { wa(e, t), (e = e.alternate) && wa(e, t) } function jf() { return null } var Zc = typeof reportError == "function" ? reportError : function (e) { console.error(e) }; function fs(e) { this._internalRoot = e } _i.prototype.render = fs.prototype.render = function (e) { var t = this._internalRoot; if (t === null) throw Error(T(409)); Ni(e, t, null, null) }; _i.prototype.unmount = fs.prototype.unmount = function () { var e = this._internalRoot; if (e !== null) { this._internalRoot = null; var t = e.containerInfo; Vt(function () { Ni(null, e, null, null) }), t[Je] = null } }; function _i(e) { this._internalRoot = e } _i.prototype.unstable_scheduleHydration = function (e) { if (e) { var t = Au(); e = { blockedOn: null, target: e, priority: t }; for (var r = 0; r < ut.length && t !== 0 && t < ut[r].priority; r++); ut.splice(r, 0, e), r === 0 && Eu(e) } }; function gs(e) { return !(!e || e.nodeType !== 1 && e.nodeType !== 9 && e.nodeType !== 11) } function Di(e) { return !(!e || e.nodeType !== 1 && e.nodeType !== 9 && e.nodeType !== 11 && (e.nodeType !== 8 || e.nodeValue !== " react-mount-point-unstable ")) } function Ca() { } function Of(e, t, r, n, i) { if (i) { if (typeof n == "function") { var l = n; n = function () { var u = Pi(o); l.call(u) } } var o = Kc(t, n, e, 0, null, !1, !1, "", Ca); return e._reactRootContainer = o, e[Je] = o.current, Jr(e.nodeType === 8 ? e.parentNode : e), Vt(), o } for (; i = e.lastChild;)e.removeChild(i); if (typeof n == "function") { var s = n; n = function () { var u = Pi(a); s.call(u) } } var a = ds(e, 0, !1, null, null, !1, !1, "", Ca); return e._reactRootContainer = a, e[Je] = a.current, Jr(e.nodeType === 8 ? e.parentNode : e), Vt(function () { Ni(t, a, r, n) }), a } function Ii(e, t, r, n, i) { var l = r._reactRootContainer; if (l) { var o = l; if (typeof i == "function") { var s = i; i = function () { var a = Pi(o); s.call(a) } } Ni(t, o, e, i) } else o = Of(r, t, e, i, n); return Pi(o) } wu = function (e) { switch (e.tag) { case 3: var t = e.stateNode; if (t.current.memoizedState.isDehydrated) { var r = _r(t.pendingLanes); r !== 0 && (_o(t, r | 1), Pe(t, K()), !(F & 6) && (yr = K() + 500, At())) } break; case 13: Vt(function () { var n = et(e, 1); if (n !== null) { var i = pe(); je(n, e, 1, i) } }), ps(e, 1) } }; Do = function (e) { if (e.tag === 13) { var t = et(e, 134217728); if (t !== null) { var r = pe(); je(t, e, 134217728, r) } ps(e, 134217728) } }; Cu = function (e) { if (e.tag === 13) { var t = St(e), r = et(e, t); if (r !== null) { var n = pe(); je(r, e, t, n) } ps(e, t) } }; Au = function () { return U }; Lu = function (e, t) { var r = U; try { return U = e, t() } finally { U = r } }; Il = function (e, t, r) { switch (t) { case "input": if (Ll(e, r), t = r.name, r.type === "radio" && t != null) { for (r = e; r.parentNode;)r = r.parentNode; for (r = r.querySelectorAll("input[name=" + JSON.stringify("" + t) + '][type="radio"]'), t = 0; t < r.length; t++) { var n = r[t]; if (n !== e && n.form === e.form) { var i = wi(n); if (!i) throw Error(T(90)); lu(n), Ll(n, i) } } } break; case "textarea": su(e, r); break; case "select": t = r.value, t != null && or(e, !!r.multiple, t, !1) } }; gu = ss; mu = Vt; var zf = { usingClientEntryPoint: !1, Events: [pn, Jt, wi, pu, fu, ss] }, Er = { findFiberByHostInstance: Nt, bundleType: 0, version: "18.3.1", rendererPackageName: "react-dom" }, Vf = { bundleType: Er.bundleType, version: Er.version, rendererPackageName: Er.rendererPackageName, rendererConfig: Er.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, overrideProps: null, overridePropsDeletePath: null, overridePropsRenamePath: null, setErrorHandler: null, setSuspenseHandler: null, scheduleUpdate: null, currentDispatcherRef: rt.ReactCurrentDispatcher, findHostInstanceByFiber: function (e) { return e = yu(e), e === null ? null : e.stateNode }, findFiberByHostInstance: Er.findFiberByHostInstance || jf, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, reconcilerVersion: "18.3.1-next-f1338f8080-20240426" }; if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u") { var Nn = __REACT_DEVTOOLS_GLOBAL_HOOK__; if (!Nn.isDisabled && Nn.supportsFiber) try { Ri = Nn.inject(Vf), He = Nn } catch { } } we.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = zf; we.createPortal = function (e, t) { var r = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null; if (!gs(t)) throw Error(T(200)); return Uf(e, t, null, r) }; we.createRoot = function (e, t) { if (!gs(e)) throw Error(T(299)); var r = !1, n = "", i = Zc; return t != null && (t.unstable_strictMode === !0 && (r = !0), t.identifierPrefix !== void 0 && (n = t.identifierPrefix), t.onRecoverableError !== void 0 && (i = t.onRecoverableError)), t = ds(e, 1, !1, null, null, r, !1, n, i), e[Je] = t.current, Jr(e.nodeType === 8 ? e.parentNode : e), new fs(t) }; we.findDOMNode = function (e) { if (e == null) return null; if (e.nodeType === 1) return e; var t = e._reactInternals; if (t === void 0) throw typeof e.render == "function" ? Error(T(188)) : (e = Object.keys(e).join(","), Error(T(268, e))); return e = yu(t), e = e === null ? null : e.stateNode, e }; we.flushSync = function (e) { return Vt(e) }; we.hydrate = function (e, t, r) { if (!Di(t)) throw Error(T(200)); return Ii(null, e, t, !0, r) }; we.hydrateRoot = function (e, t, r) { if (!gs(e)) throw Error(T(405)); var n = r != null && r.hydratedSources || null, i = !1, l = "", o = Zc; if (r != null && (r.unstable_strictMode === !0 && (i = !0), r.identifierPrefix !== void 0 && (l = r.identifierPrefix), r.onRecoverableError !== void 0 && (o = r.onRecoverableError)), t = Kc(t, null, e, 1, r ?? null, i, !1, l, o), e[Je] = t.current, Jr(e), n) for (e = 0; e < n.length; e++)r = n[e], i = r._getVersion, i = i(r._source), t.mutableSourceEagerHydrationData == null ? t.mutableSourceEagerHydrationData = [r, i] : t.mutableSourceEagerHydrationData.push(r, i); return new _i(t) }; we.render = function (e, t, r) { if (!Di(t)) throw Error(T(200)); return Ii(null, e, t, !1, r) }; we.unmountComponentAtNode = function (e) { if (!Di(e)) throw Error(T(40)); return e._reactRootContainer ? (Vt(function () { Ii(null, null, e, !1, function () { e._reactRootContainer = null, e[Je] = null }) }), !0) : !1 }; we.unstable_batchedUpdates = ss; we.unstable_renderSubtreeIntoContainer = function (e, t, r, n) { if (!Di(r)) throw Error(T(200)); if (e == null || e._reactInternals === void 0) throw Error(T(38)); return Ii(e, t, r, !1, n) }; we.version = "18.3.1-next-f1338f8080-20240426"; function Xc() { if (!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != "function")) try { __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Xc) } catch (e) { console.error(e) } } Xc(), Xa.exports = we; var $f = Xa.exports, Aa = $f; Rl.createRoot = Aa.createRoot, Rl.hydrateRoot = Aa.hydrateRoot; const La = [{ PrincipalId: "aaaaaaaa-0001-0001-0001-aaaaaaaaaaaa", PrincipalName: "Contoso SSO App", AppRoleCount: 3, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0002-0002-0002-aaaaaaaaaaaa", PrincipalName: "Contoso Directory Sync", AppRoleCount: 4, AppRoles: [{ appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "a154be20-db9c-4678-8ab7-66f6cc099a59", FriendlyName: "User.Read.All", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/applications/{id}", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 445, SuccessfulRequests: 183, Total429Errors: 0, TotalClientErrors: 262, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 58.88, SuccessRate: 41.12, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T19:57:32Z", LastOccurrence: "2026-05-03T18:56:45Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/applications/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/applications/{id}", MatchedEndpoint: "/applications/{id}", LeastPrivilegedPermissions: { Permission: "Application.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/servicePrincipals/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}", MatchedEndpoint: "/servicePrincipals/{id}", LeastPrivilegedPermissions: { Permission: "Application.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }, { Permission: "Application.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 2, Activities: [{ Method: "GET", Version: "v1.0", Path: "/applications/{id}", Uri: "https://graph.microsoft.com/v1.0/applications/{id}" }, { Method: "GET", Version: "v1.0", Path: "/servicePrincipals/{id}", Uri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "Application.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0003-0003-0003-aaaaaaaaaaaa", PrincipalName: "Contoso Identity Provider", AppRoleCount: 4, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0004-0004-0004-aaaaaaaaaaaa", PrincipalName: "Contoso HR Portal", AppRoleCount: 5, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0005-0005-0005-aaaaaaaaaaaa", PrincipalName: "Contoso BI Connector", AppRoleCount: 5, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0006-0006-0006-aaaaaaaaaaaa", PrincipalName: "Contoso SharePoint Archiver", AppRoleCount: 6, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "883ea226-0bf2-4a8f-9f9d-92c9162a727d", FriendlyName: "Sites.Selected", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 5, SuccessfulRequests: 5, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 100, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-29T08:51:04Z", LastOccurrence: "2026-04-30T10:12:21Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/sites/{id}/lists/{id}/items", OriginalUri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items", MatchedEndpoint: "/sites/{id}/lists/{id}/items", LeastPrivilegedPermissions: { Permission: "Sites.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "Sites.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/sites/{id}/lists/{id}/items", Uri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "Sites.Selected", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "Sites.Selected", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "Sites.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0007-0007-0007-aaaaaaaaaaaa", PrincipalName: "Contoso User Automation", AppRoleCount: 6, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "741f803b-c850-494e-b5df-cde7c675a1ca", FriendlyName: "User.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }, { Method: "PUT", Uri: "https://graph.microsoft.com/v1.0/users/{id}/photo", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 101, SuccessfulRequests: 87, Total429Errors: 0, TotalClientErrors: 1, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .99, SuccessRate: 86.14, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T21:03:52Z", LastOccurrence: "2026-05-03T10:01:46Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "PUT", Version: "v1.0", Path: "/users/{id}/photo", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/photo", MatchedEndpoint: "/users/{id}/photo", LeastPrivilegedPermissions: { Permission: "ProfilePhoto.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "ProfilePhoto.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "PUT", Version: "v1.0", Path: "/users/{id}/photo", Uri: "https://graph.microsoft.com/v1.0/users/{id}/photo" }] }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], RequiredPermissions: [{ Permission: "User.Read", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0008-0008-0008-aaaaaaaaaaaa", PrincipalName: "Contoso Governance Scanner", AppRoleCount: 2, AppRoles: [], Activity: [], ThrottlingStats: { TotalRequests: 312, SuccessfulRequests: 298, Total429Errors: 14, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 4.49, ErrorRate: 4.49, SuccessRate: 95.51, ThrottlingSeverity: 2, ThrottlingStatus: "Low", FirstOccurrence: "2026-04-28T07:12:00Z", LastOccurrence: "2026-05-03T03:19:04Z" }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: null, CurrentPermissions: [], ExcessPermissions: [{ Permission: "RoleManagement.ReadWrite.Directory", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], RequiredPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0009-0009-0009-aaaaaaaaaaaa", PrincipalName: "Contoso Mail Service", AppRoleCount: 2, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0010-0010-0010-aaaaaaaaaaaa", PrincipalName: "Contoso Azure Gov Viz", AppRoleCount: 3, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0011-0011-0011-aaaaaaaaaaaa", PrincipalName: "Contoso PIT API Client", AppRoleCount: 1, AppRoles: [{ appRoleId: "9e3f62cf-ca93-4989-b6ce-bf83047a90c6", FriendlyName: "User.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], ExcessPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0012-0012-0012-aaaaaaaaaaaa", PrincipalName: "Contoso Cloud Storage Sync", AppRoleCount: 5, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0013-0013-0013-aaaaaaaaaaaa", PrincipalName: "Contoso v1-reg-f0ad894d", AppRoleCount: 4, AppRoles: [], Activity: [], ThrottlingStats: { TotalRequests: 1248, SuccessfulRequests: 1201, Total429Errors: 47, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 3.77, ErrorRate: 3.77, SuccessRate: 96.23, ThrottlingSeverity: 2, ThrottlingStatus: "Low", FirstOccurrence: "2026-04-28T06:00:00Z", LastOccurrence: "2026-05-03T19:31:51Z" }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: null, CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [{ Permission: "User.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0014-0014-0014-aaaaaaaaaaaa", PrincipalName: "Contoso Foundspot Integration", AppRoleCount: 1, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], ExcessPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0015-0015-0015-aaaaaaaaaaaa", PrincipalName: "Contoso Collaboration App", AppRoleCount: 4, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0016-0016-0016-aaaaaaaaaaaa", PrincipalName: "Contoso v1-reg-83d8c15f", AppRoleCount: 4, AppRoles: [], Activity: [], ThrottlingStats: { TotalRequests: 892, SuccessfulRequests: 856, Total429Errors: 36, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 4.04, ErrorRate: 4.04, SuccessRate: 95.96, ThrottlingSeverity: 2, ThrottlingStatus: "Low", FirstOccurrence: "2026-04-28T09:00:00Z", LastOccurrence: "2026-05-03T19:28:24Z" }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: null, CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [{ Permission: "Group.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0017-0017-0017-aaaaaaaaaaaa", PrincipalName: "Contoso E-Commerce Integration", AppRoleCount: 5, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0018-0018-0018-aaaaaaaaaaaa", PrincipalName: "Contoso Internal Tooling", AppRoleCount: 5, AppRoles: [], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "aaaaaaaa-0019-0019-0019-aaaaaaaaaaaa", PrincipalName: "Contoso v1-reg-4a1e0ca0", AppRoleCount: 4, AppRoles: [], Activity: [], ThrottlingStats: { TotalRequests: 2187, SuccessfulRequests: 2100, Total429Errors: 87, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 3.98, ErrorRate: 3.98, SuccessRate: 96.02, ThrottlingSeverity: 3, ThrottlingStatus: "Warning", FirstOccurrence: "2026-04-27T12:00:00Z", LastOccurrence: "2026-05-03T18:44:10Z" }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: null, CurrentPermissions: [], ExcessPermissions: [], RequiredPermissions: [{ Permission: "Mail.Read", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0020-0020-0020-bbbbbbbbbbbb", PrincipalName: "Contoso Planner SSO", AppRoleCount: 4, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0021-0021-0021-bbbbbbbbbbbb", PrincipalName: "Contoso File Sync Client", AppRoleCount: 5, AppRoles: [{ appRoleId: "df85f4d6-205c-4ac5-a5ea-6bf408dba283", FriendlyName: "Files.Read.All", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "10465720-29dd-4523-a11a-6a75c743c9d9", FriendlyName: "Files.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "863451e7-0667-486c-a5d6-d135439485f0", FriendlyName: "Files.ReadWrite.All", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "5c28f0bf-8a70-41f1-8ab2-9032436ddb65", FriendlyName: "Files.ReadWrite", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "Principal" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "Files.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Files.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "Files.ReadWrite.All", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "Files.ReadWrite", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], ExcessPermissions: [{ Permission: "Files.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Files.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "Files.ReadWrite.All", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "Files.ReadWrite", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0022-0022-0022-bbbbbbbbbbbb", PrincipalName: "Contoso Helpdesk Mail Reader", AppRoleCount: 2, AppRoles: [{ appRoleId: "e2a3a72e-5f79-4c64-b1b1-878b674786c9", FriendlyName: "Mail.ReadWrite", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "97235f07-e226-4f63-ace3-39588e11d3a1", FriendlyName: "User.ReadBasic.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "Mail.ReadWrite", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], ExcessPermissions: [{ Permission: "Mail.ReadWrite", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0023-0023-0023-bbbbbbbbbbbb", PrincipalName: "Contoso SIEM Connector", AppRoleCount: 7, AppRoles: [{ appRoleId: "b0afded3-3588-46d8-8b3d-9842eff778da", FriendlyName: "AuditLog.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "6e472fd1-ad78-48da-a0f0-97ab2c6b769e", FriendlyName: "IdentityRiskEvent.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "ed4fca05-be46-441f-9803-1873825f8fdb", FriendlyName: "SecurityAlert.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "34bf0e97-1971-4929-b999-9e2442d941d7", FriendlyName: "SecurityIncident.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/security/incidents", Scheme: "Application" }, { Method: "PATCH", Uri: "https://graph.microsoft.com/v1.0/security/incidents/{id}", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/security/{id}", Scheme: "Application" }, { Method: "PATCH", Uri: "https://graph.microsoft.com/v1.0/security/{id}/{id}", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 10058, SuccessfulRequests: 10044, Total429Errors: 0, TotalClientErrors: 14, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .14, SuccessRate: 99.86, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-26T20:00:05Z", LastOccurrence: "2026-05-03T18:00:21Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/security/incidents", OriginalUri: "https://graph.microsoft.com/v1.0/security/incidents", MatchedEndpoint: "/security/incidents", LeastPrivilegedPermissions: { Permission: "SecurityIncident.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "PATCH", Version: "v1.0", Path: "/security/incidents/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/security/incidents/{id}", MatchedEndpoint: "/security/incidents/{id}", LeastPrivilegedPermissions: { Permission: "SecurityIncident.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/security/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/security/{id}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }, { Method: "PATCH", Version: "v1.0", Path: "/security/{id}/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/security/{id}/{id}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }], OptimalPermissions: [{ Permission: "SecurityIncident.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical", ActivitiesCovered: 1, Activities: [{ Method: "PATCH", Version: "v1.0", Path: "/security/incidents/{id}", Uri: "https://graph.microsoft.com/v1.0/security/incidents/{id}" }] }, { Permission: "SecurityIncident.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/security/incidents", Uri: "https://graph.microsoft.com/v1.0/security/incidents" }] }], UnmatchedActivities: [{ Method: "GET", Version: "v1.0", Path: "/security/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/security/{id}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }, { Method: "PATCH", Version: "v1.0", Path: "/security/{id}/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/security/{id}/{id}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }], CurrentPermissions: [{ Permission: "AuditLog.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "IdentityRiskEvent.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "SecurityAlert.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "SecurityIncident.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "AuditLog.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "IdentityRiskEvent.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "SecurityAlert.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: null, MatchedAllActivity: !1 }, { PrincipalId: "bbbbbbbb-0024-0024-0024-bbbbbbbbbbbb", PrincipalName: "Contoso Org Directory Sync", AppRoleCount: 2, AppRoles: [{ appRoleId: "498476ce-e0fe-48b0-b801-37ba7e2685c6", FriendlyName: "Organization.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/organization", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}/manager", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 11922, SuccessfulRequests: 11910, Total429Errors: 0, TotalClientErrors: 12, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .1, SuccessRate: 99.9, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-29T12:29:46Z", LastOccurrence: "2026-05-03T12:56:31Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/organization", OriginalUri: "https://graph.microsoft.com/v1.0/organization", MatchedEndpoint: "/organization", LeastPrivilegedPermissions: { Permission: "DeviceManagementServiceConfig.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users/{id}/manager", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/manager", MatchedEndpoint: "/users/{id}/manager", LeastPrivilegedPermissions: { Permission: "User.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "DeviceManagementServiceConfig.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/organization", Uri: "https://graph.microsoft.com/v1.0/organization" }] }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}/manager", Uri: "https://graph.microsoft.com/v1.0/users/{id}/manager" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Organization.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], ExcessPermissions: [{ Permission: "Organization.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], RequiredPermissions: [{ Permission: "DeviceManagementServiceConfig.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0025-0025-0025-bbbbbbbbbbbb", PrincipalName: "Contoso Intranet Portal", AppRoleCount: 3, AppRoles: [{ appRoleId: "883ea226-0bf2-4a8f-9f9d-92c9162a727d", FriendlyName: "Sites.Selected", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "97235f07-e226-4f63-ace3-39588e11d3a1", FriendlyName: "User.ReadBasic.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/Documents/items", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/intranet", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 814, SuccessfulRequests: 799, Total429Errors: 0, TotalClientErrors: 15, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 1.84, SuccessRate: 98.16, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-27T01:00:00Z", LastOccurrence: "2026-05-03T12:00:09Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/sites/{id}/lists/Documents/items", OriginalUri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/Documents/items", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }, { Method: "GET", Version: "v1.0", Path: "/sites/contoso.sharepoint.com:/sites/intranet", OriginalUri: "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/intranet", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }, { Method: "GET", Version: "v1.0", Path: "/users/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}", MatchedEndpoint: "/users/{id}", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}", Uri: "https://graph.microsoft.com/v1.0/users/{id}" }] }], UnmatchedActivities: [{ Method: "GET", Version: "v1.0", Path: "/sites/{id}/lists/Documents/items", OriginalUri: "https://graph.microsoft.com/v1.0/sites/{id}/lists/Documents/items", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }, { Method: "GET", Version: "v1.0", Path: "/sites/contoso.sharepoint.com:/sites/intranet", OriginalUri: "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/intranet", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }], CurrentPermissions: [{ Permission: "Sites.Selected", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "Sites.Selected", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: null, MatchedAllActivity: !1 }, { PrincipalId: "bbbbbbbb-0026-0026-0026-bbbbbbbbbbbb", PrincipalName: "Contoso Calendar Notifier", AppRoleCount: 1, AppRoles: [{ appRoleId: "798ee544-9d2d-430c-a058-570e29e34338", FriendlyName: "Calendars.Read", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}/calendar/events", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 542, SuccessfulRequests: 542, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 100, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T08:00:00Z", LastOccurrence: "2026-05-03T08:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}/calendar/events", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/calendar/events", MatchedEndpoint: "/users/{id}/calendar/events", LeastPrivilegedPermissions: { Permission: "Calendars.Read", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "Calendars.Read", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}/calendar/events", Uri: "https://graph.microsoft.com/v1.0/users/{id}/calendar/events" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Calendars.Read", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0027-0027-0027-bbbbbbbbbbbb", PrincipalName: "Contoso Teams Meeting Bot", AppRoleCount: 3, AppRoles: [{ appRoleId: "a7a681dc-756e-4909-b988-f160edc6655f", FriendlyName: "OnlineMeetings.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "b8bb2037-6e08-44ac-a4ea-4674e010e2a4", FriendlyName: "OnlineMeetings.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/me/onlineMeetings", Scheme: "Delegated" }, { Method: "POST", Uri: "https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}/presence", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 3201, SuccessfulRequests: 3187, Total429Errors: 0, TotalClientErrors: 14, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .44, SuccessRate: 99.56, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-27T09:00:00Z", LastOccurrence: "2026-05-03T17:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/me/onlineMeetings", OriginalUri: "https://graph.microsoft.com/v1.0/me/onlineMeetings", MatchedEndpoint: "/me/onlineMeetings", LeastPrivilegedPermissions: { Permission: "OnlineMeetings.Read", ScopeType: "Delegated", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "POST", Version: "v1.0", Path: "/users/{id}/onlineMeetings", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings", MatchedEndpoint: "/users/{id}/onlineMeetings", LeastPrivilegedPermissions: { Permission: "OnlineMeetings.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users/{id}/presence", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/presence", MatchedEndpoint: "/users/{id}/presence", LeastPrivilegedPermissions: { Permission: "Presence.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "OnlineMeetings.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/me/onlineMeetings", Uri: "https://graph.microsoft.com/v1.0/me/onlineMeetings" }] }, { Permission: "OnlineMeetings.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "POST", Version: "v1.0", Path: "/users/{id}/onlineMeetings", Uri: "https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings" }] }, { Permission: "Presence.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}/presence", Uri: "https://graph.microsoft.com/v1.0/users/{id}/presence" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "OnlineMeetings.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "OnlineMeetings.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "OnlineMeetings.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "Presence.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0028-0028-0028-bbbbbbbbbbbb", PrincipalName: "Contoso Identity Governance", AppRoleCount: 4, AppRoles: [{ appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "62a82d76-70ea-41e2-9197-370581804d09", FriendlyName: "Group.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/groups", Scheme: "Application" }, { Method: "PATCH", Uri: "https://graph.microsoft.com/v1.0/groups/{id}", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 98420, SuccessfulRequests: 93001, Total429Errors: 5419, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 5.51, ErrorRate: 5.51, SuccessRate: 94.49, ThrottlingSeverity: 4, ThrottlingStatus: "Critical", FirstOccurrence: "2026-04-25T00:00:00Z", LastOccurrence: "2026-05-03T23:59:59Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/groups", OriginalUri: "https://graph.microsoft.com/v1.0/groups", MatchedEndpoint: "/groups", LeastPrivilegedPermissions: { Permission: "GroupMember.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "PATCH", Version: "v1.0", Path: "/groups/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/groups/{id}", MatchedEndpoint: "/groups/{id}", LeastPrivilegedPermissions: { Permission: "Group.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }, { Permission: "GroupMember.Read.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/groups", Uri: "https://graph.microsoft.com/v1.0/groups" }] }, { Permission: "Group.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical", ActivitiesCovered: 1, Activities: [{ Method: "PATCH", Version: "v1.0", Path: "/groups/{id}", Uri: "https://graph.microsoft.com/v1.0/groups/{id}" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Group.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "GroupMember.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0029-0029-0029-bbbbbbbbbbbb", PrincipalName: "Contoso Compliance Auditor", AppRoleCount: 3, AppRoles: [{ appRoleId: "b0afded3-3588-46d8-8b3d-9842eff778da", FriendlyName: "AuditLog.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "246dd0d5-5bd0-4def-940b-0421030a5b68", FriendlyName: "Policy.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/auditLogs/signIns", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 45310, SuccessfulRequests: 43500, Total429Errors: 1810, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 3.99, ErrorRate: 3.99, SuccessRate: 96.01, ThrottlingSeverity: 3, ThrottlingStatus: "Warning", FirstOccurrence: "2026-04-26T00:00:00Z", LastOccurrence: "2026-05-03T23:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/auditLogs/signIns", OriginalUri: "https://graph.microsoft.com/v1.0/auditLogs/signIns", MatchedEndpoint: "/auditLogs/signIns", LeastPrivilegedPermissions: { Permission: "AuditLog.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/auditLogs/directoryAudits", OriginalUri: "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits", MatchedEndpoint: "/auditLogs/directoryAudits", LeastPrivilegedPermissions: { Permission: "AuditLog.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "AuditLog.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical", ActivitiesCovered: 2, Activities: [{ Method: "GET", Version: "v1.0", Path: "/auditLogs/signIns", Uri: "https://graph.microsoft.com/v1.0/auditLogs/signIns" }, { Method: "GET", Version: "v1.0", Path: "/auditLogs/directoryAudits", Uri: "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "AuditLog.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Policy.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], ExcessPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Policy.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0030-0030-0030-bbbbbbbbbbbb", PrincipalName: "Contoso Partner Connect", AppRoleCount: 1, AppRoles: [{ appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0031-0031-0031-bbbbbbbbbbbb", PrincipalName: "Contoso Device Manager", AppRoleCount: 3, AppRoles: [{ appRoleId: "2f51be20-0bb4-4fed-bf7b-db946066c75e", FriendlyName: "DeviceManagementManagedDevices.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "dc377aa6-52d8-4e23-b271-2a7ae04cedf3", FriendlyName: "DeviceManagementConfiguration.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 1820, SuccessfulRequests: 1804, Total429Errors: 0, TotalClientErrors: 16, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .88, SuccessRate: 99.12, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T05:00:00Z", LastOccurrence: "2026-05-03T05:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/deviceManagement/managedDevices", OriginalUri: "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices", MatchedEndpoint: "/deviceManagement/managedDevices", LeastPrivilegedPermissions: { Permission: "DeviceManagementManagedDevices.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/deviceManagement/deviceConfigurations", OriginalUri: "https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations", MatchedEndpoint: "/deviceManagement/deviceConfigurations", LeastPrivilegedPermissions: { Permission: "DeviceManagementConfiguration.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "DeviceManagementManagedDevices.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/deviceManagement/managedDevices", Uri: "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices" }] }, { Permission: "DeviceManagementConfiguration.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/deviceManagement/deviceConfigurations", Uri: "https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "DeviceManagementManagedDevices.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "DeviceManagementConfiguration.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], ExcessPermissions: [{ Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0032-0032-0032-bbbbbbbbbbbb", PrincipalName: "Contoso Power Platform Connector", AppRoleCount: 4, AppRoles: [{ appRoleId: "9e3f62cf-ca93-4989-b6ce-bf83047a90c6", FriendlyName: "User.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "62a82d76-70ea-41e2-9197-370581804d09", FriendlyName: "Group.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "741f803b-c850-494e-b5df-cde7c675a1ca", FriendlyName: "RoleManagement.ReadWrite.Directory", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Group.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "RoleManagement.ReadWrite.Directory", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "Group.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "RoleManagement.ReadWrite.Directory", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0033-0033-0033-bbbbbbbbbbbb", PrincipalName: "Contoso v1-reg-7f2c1e88", AppRoleCount: 4, AppRoles: [{ appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "a154be20-db9c-4678-8ab7-66f6cc099a59", FriendlyName: "User.Read.All", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/applications/{id}", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 3102, SuccessfulRequests: 2984, Total429Errors: 118, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 3.8, ErrorRate: 3.8, SuccessRate: 96.2, ThrottlingSeverity: 2, ThrottlingStatus: "Low", FirstOccurrence: "2026-04-26T20:41:12Z", LastOccurrence: "2026-05-03T19:31:51Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/applications/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/applications/{id}", MatchedEndpoint: "/applications/{id}", LeastPrivilegedPermissions: { Permission: "Application.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/servicePrincipals/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}", MatchedEndpoint: "/servicePrincipals/{id}", LeastPrivilegedPermissions: { Permission: "Application.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "Application.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 2, Activities: [{ Method: "GET", Version: "v1.0", Path: "/applications/{id}", Uri: "https://graph.microsoft.com/v1.0/applications/{id}" }, { Method: "GET", Version: "v1.0", Path: "/servicePrincipals/{id}", Uri: "https://graph.microsoft.com/v1.0/servicePrincipals/{id}" }] }, { Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read.All", ScopeType: "Delegated", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "Application.Read.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0034-0034-0034-bbbbbbbbbbbb", PrincipalName: "Contoso Email Campaign Tool", AppRoleCount: 3, AppRoles: [{ appRoleId: "b633e1c5-b582-4058-a3f9-3d44700e7d87", FriendlyName: "Mail.Send", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "570282fd-fa5c-430d-a7fd-fc8dc98a9dca", FriendlyName: "Mail.Read", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "Mail.Send", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Mail.Read", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "Mail.Send", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Mail.Read", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0035-0035-0035-bbbbbbbbbbbb", PrincipalName: "Contoso Reporting Service", AppRoleCount: 2, AppRoles: [{ appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}/memberOf", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 7204, SuccessfulRequests: 7204, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 100, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T00:00:00Z", LastOccurrence: "2026-05-03T00:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users/{id}/memberOf", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/memberOf", MatchedEndpoint: "/users/{id}/memberOf", LeastPrivilegedPermissions: { Permission: "Directory.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }] }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users/{id}/memberOf", Uri: "https://graph.microsoft.com/v1.0/users/{id}/memberOf" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], ExcessPermissions: [{ Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0036-0036-0036-bbbbbbbbbbbb", PrincipalName: "Contoso Subscription Monitor", AppRoleCount: 1, AppRoles: [{ appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/subscriptions", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 288, SuccessfulRequests: 288, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 100, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-28T00:00:00Z", LastOccurrence: "2026-05-03T00:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/subscriptions", OriginalUri: "https://graph.microsoft.com/v1.0/subscriptions", MatchedEndpoint: "/subscriptions", LeastPrivilegedPermissions: { Permission: "Directory.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/subscriptions", Uri: "https://graph.microsoft.com/v1.0/subscriptions" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }], ExcessPermissions: [], RequiredPermissions: [], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0037-0037-0037-bbbbbbbbbbbb", PrincipalName: "Contoso Risk Assessment Engine", AppRoleCount: 5, AppRoles: [{ appRoleId: "6e472fd1-ad78-48da-a0f0-97ab2c6b769e", FriendlyName: "IdentityRiskEvent.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "dc5007c0-2d7d-4c42-879c-2dab87571379", FriendlyName: "IdentityRiskyUser.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "df021288-bdef-4463-88db-98f22de89214", FriendlyName: "User.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "7ab1d382-f21e-4acd-a863-ba3e13f7da61", FriendlyName: "Directory.Read.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskDetections", Scheme: "Application" }, { Method: "POST", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/identityProtection/{unknownEndpoint}", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 5642, SuccessfulRequests: 5620, Total429Errors: 0, TotalClientErrors: 22, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: .39, SuccessRate: 99.61, ThrottlingSeverity: 0, ThrottlingStatus: "Normal", FirstOccurrence: "2026-04-26T15:00:00Z", LastOccurrence: "2026-05-03T15:00:00Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/identityProtection/riskyUsers", OriginalUri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers", MatchedEndpoint: "/identityProtection/riskyUsers", LeastPrivilegedPermissions: { Permission: "IdentityRiskyUser.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/identityProtection/riskDetections", OriginalUri: "https://graph.microsoft.com/v1.0/identityProtection/riskDetections", MatchedEndpoint: "/identityProtection/riskDetections", LeastPrivilegedPermissions: { Permission: "IdentityRiskEvent.Read.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "POST", Version: "v1.0", Path: "/identityProtection/riskyUsers/dismiss", OriginalUri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss", MatchedEndpoint: "/identityProtection/riskyUsers/dismiss", LeastPrivilegedPermissions: { Permission: "IdentityRiskyUser.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/identityProtection/{unknownEndpoint}", OriginalUri: "https://graph.microsoft.com/v1.0/identityProtection/{unknownEndpoint}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }], OptimalPermissions: [{ Permission: "IdentityRiskyUser.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical", ActivitiesCovered: 2, Activities: [{ Method: "GET", Version: "v1.0", Path: "/identityProtection/riskyUsers", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers" }, { Method: "POST", Version: "v1.0", Path: "/identityProtection/riskyUsers/dismiss", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss" }] }, { Permission: "IdentityRiskEvent.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High", ActivitiesCovered: 1, Activities: [{ Method: "GET", Version: "v1.0", Path: "/identityProtection/riskDetections", Uri: "https://graph.microsoft.com/v1.0/identityProtection/riskDetections" }] }], UnmatchedActivities: [{ Method: "GET", Version: "v1.0", Path: "/identityProtection/{unknownEndpoint}", OriginalUri: "https://graph.microsoft.com/v1.0/identityProtection/{unknownEndpoint}", MatchedEndpoint: null, LeastPrivilegedPermissions: [], IsMatched: !1 }], CurrentPermissions: [{ Permission: "IdentityRiskEvent.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "IdentityRiskyUser.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "IdentityRiskyUser.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read.All", ScopeType: "Application", PrivilegeLevel: 4, RiskLabel: "Critical" }, { Permission: "Directory.Read.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "IdentityRiskyUser.ReadWrite.All", ScopeType: "Application" }], MatchedAllActivity: !1 }, { PrincipalId: "bbbbbbbb-0038-0038-0038-bbbbbbbbbbbb", PrincipalName: "Contoso HR Photo Sync", AppRoleCount: 3, AppRoles: [{ appRoleId: "9e3f62cf-ca93-4989-b6ce-bf83047a90c6", FriendlyName: "User.ReadWrite.All", PermissionType: "Application", resourceDisplayName: "Microsoft Graph", consentType: null }, { appRoleId: "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", FriendlyName: "offline_access", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "e1fe6dd8-ba31-4d61-89e7-88639da4683d", FriendlyName: "User.Read", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: [{ Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users", Scheme: "Application" }, { Method: "GET", Uri: "https://graph.microsoft.com/v1.0/users/{id}", Scheme: "Application" }, { Method: "PUT", Uri: "https://graph.microsoft.com/v1.0/users/{id}/photo", Scheme: "Application" }], ThrottlingStats: { TotalRequests: 612, SuccessfulRequests: 588, Total429Errors: 24, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 3.92, ErrorRate: 3.92, SuccessRate: 96.08, ThrottlingSeverity: 2, ThrottlingStatus: "Low", FirstOccurrence: "2026-04-28T22:04:08Z", LastOccurrence: "2026-05-03T10:01:26Z" }, ActivityPermissions: [{ Method: "GET", Version: "v1.0", Path: "/users", OriginalUri: "https://graph.microsoft.com/v1.0/users", MatchedEndpoint: "/users", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "GET", Version: "v1.0", Path: "/users/{id}", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}", MatchedEndpoint: "/users/{id}", LeastPrivilegedPermissions: { Permission: "User.ReadBasic.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }, { Method: "PUT", Version: "v1.0", Path: "/users/{id}/photo", OriginalUri: "https://graph.microsoft.com/v1.0/users/{id}/photo", MatchedEndpoint: "/users/{id}/photo", LeastPrivilegedPermissions: { Permission: "ProfilePhoto.ReadWrite.All", ScopeType: "Application", IsLeastPrivilege: !0 }, IsMatched: !0 }], OptimalPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 2, Activities: [{ Method: "GET", Version: "v1.0", Path: "/users", Uri: "https://graph.microsoft.com/v1.0/users" }, { Method: "GET", Version: "v1.0", Path: "/users/{id}", Uri: "https://graph.microsoft.com/v1.0/users/{id}" }] }, { Permission: "ProfilePhoto.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 2, RiskLabel: "Medium", ActivitiesCovered: 1, Activities: [{ Method: "PUT", Version: "v1.0", Path: "/users/{id}/photo", Uri: "https://graph.microsoft.com/v1.0/users/{id}/photo" }] }], UnmatchedActivities: null, CurrentPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], ExcessPermissions: [{ Permission: "User.ReadWrite.All", ScopeType: "Application", PrivilegeLevel: 3, RiskLabel: "High" }, { Permission: "offline_access", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "User.Read", ScopeType: "Delegated", PrivilegeLevel: 2, RiskLabel: "Medium" }], RequiredPermissions: [{ Permission: "User.ReadBasic.All", ScopeType: "Application" }, { Permission: "ProfilePhoto.ReadWrite.All", ScopeType: "Application" }], MatchedAllActivity: !0 }, { PrincipalId: "bbbbbbbb-0039-0039-0039-bbbbbbbbbbbb", PrincipalName: "Contoso Vendor Portal SSO", AppRoleCount: 3, AppRoles: [{ appRoleId: "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", FriendlyName: "email", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "37f7f235-527c-4136-accd-4a02d197296e", FriendlyName: "openid", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }, { appRoleId: "14dad69e-099b-42c9-810b-d002981feec1", FriendlyName: "profile", PermissionType: "Delegated", resourceDisplayName: "Microsoft Graph", consentType: "AllPrincipals" }], Activity: null, ThrottlingStats: { TotalRequests: 0, SuccessfulRequests: 0, Total429Errors: 0, TotalClientErrors: 0, TotalServerErrors: 0, ThrottleRate: 0, ErrorRate: 0, SuccessRate: 0, ThrottlingSeverity: 0, ThrottlingStatus: "No Activity", FirstOccurrence: null, LastOccurrence: null }, ActivityPermissions: [], OptimalPermissions: [], UnmatchedActivities: [], CurrentPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], ExcessPermissions: [{ Permission: "email", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "openid", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }, { Permission: "profile", ScopeType: "Delegated", PrivilegeLevel: 1, RiskLabel: "Low" }], RequiredPermissions: [], MatchedAllActivity: !0 }]; function V(e) { return e ? Array.isArray(e) ? e : [e] : [] } function Kn(e) { return typeof e == "string" ? e : e.Permission } function ms(e) { if (!e.MatchedAllActivity) return "danger"; const t = V(e.ExcessPermissions).length, r = V(e.RequiredPermissions).length; return t > 0 && r > 0 ? "misaligned" : t > 0 ? "warning" : r > 0 ? "missing" : "good" } function Yc(e) { const t = V(e.CurrentPermissions); if (!t.length) return { maxLevel: 0, score: 0, highAssignments: 0 }; const r = t.map(n => { const i = Number((n == null ? void 0 : n.PrivilegeLevel) ?? 1); return Number.isFinite(i) && i > 0 ? i : 1 }); return { maxLevel: Math.max(...r), score: r.reduce((n, i) => n + i, 0), highAssignments: r.filter(n => n >= 3).length } } function qt(e, t) { const n = V(e.AppRoles).find(i => i.FriendlyName === t || i.Permission === t); return n ? n.PermissionType ?? "Unknown" : "Unknown" } function Gf(e) { const t = { Critical: "bg-red-100 dark:bg-red-900/50 text-red-700 dark:text-red-300 border border-red-300 dark:border-red-700", High: "bg-orange-100 dark:bg-orange-900/50 text-orange-700 dark:text-orange-300 border border-orange-300 dark:border-orange-700", Medium: "bg-yellow-100 dark:bg-yellow-900/50 text-yellow-700 dark:text-yellow-300 border border-yellow-300 dark:border-yellow-700", Low: "bg-green-100 dark:bg-green-900/50 text-green-700 dark:text-green-300 border border-green-300 dark:border-green-700" }; return t[e] ?? t.Low } function Hf(e, t) { return !e || typeof e == "string" ? { 4: "Critical", 3: "High", 2: "Medium", 1: "Low" }[t ?? 1] ?? "Low" : e.RiskLabel ? e.RiskLabel : { 4: "Critical", 3: "High", 2: "Medium", 1: "Low" }[e.PrivilegeLevel ?? 1] ?? "Low" } function Bf(e) { const t = { critical: 0, warning: 0, low: 0, minimal: 0, normal: 0 }; return e.forEach(r => { var i; const n = ((i = r.ThrottlingStats) == null ? void 0 : i.ThrottlingSeverity) ?? 0; n >= 4 ? t.critical++ : n === 3 ? t.warning++ : n === 2 ? t.low++ : n === 1 ? t.minimal++ : t.normal++ }), t } function Wf(e) { const t = { good: 0, warning: 0, missing: 0, misaligned: 0, danger: 0 }; return e.forEach(r => { const n = ms(r); t[n]++ }), t } function Jc(e) { const t = e.filter(r => { var n; return (n = r.ThrottlingStats) == null ? void 0 : n.ThrottleRate }); return { total: e.length, fullyMatched: e.filter(r => ms(r) === "good").length, withExcess: e.filter(r => V(r.ExcessPermissions).length > 0).length, withUnmatched: e.filter(r => !r.MatchedAllActivity).length, throttledApps: e.filter(r => { var n; return (((n = r.ThrottlingStats) == null ? void 0 : n.Total429Errors) ?? 0) > 0 }).length, criticalThrottling: e.filter(r => { var n; return ((n = r.ThrottlingStats) == null ? void 0 : n.ThrottlingSeverity) === 4 }).length, total429: e.reduce((r, n) => { var i; return r + (((i = n.ThrottlingStats) == null ? void 0 : i.Total429Errors) ?? 0) }, 0), avgThrottleRate: t.length > 0 ? (t.reduce((r, n) => r + (n.ThrottlingStats.ThrottleRate ?? 0), 0) / t.length).toFixed(2) : "0" } } function ed(e, t = "") { const r = {}; for (const n in e) { if (!Object.prototype.hasOwnProperty.call(e, n)) continue; const i = e[n], l = t ? `${t}.${n}` : n; i == null ? r[l] = "" : Array.isArray(i) ? (i.length === 0 ? r[l] = "" : typeof i[0] == "object" ? (r[l] = i.map(o => o.Permission ? o.Permission : o.Method && o.Uri ? `${o.Method} ${o.Uri}` : o.Method && o.Path ? `${o.Method} ${o.Path}` : JSON.stringify(o)).join(", "), i[0].Permission && i[0].ScopeType && (r[`${l}.ScopeTypes`] = i.map(o => o.ScopeType || "Unknown").join(", "))) : r[l] = i.join(", "), r[`${l}.Count`] = i.length) : typeof i == "object" ? Object.assign(r, ed(i, l)) : r[l] = i } return r } function td(e) {
if (!e.length) { alert("No data to export"); return } const t = e.map(u => ed(u)), r = new Set; t.forEach(u => Object.keys(u).forEach(g => r.add(g))); const n = { PrincipalName: 1, PrincipalId: 2, AppRoleCount: 3, MatchedAllActivity: 4 }, i = Array.from(r).sort((u, g) => { const h = n[u] ?? 999, p = n[g] ?? 999; return h !== p ? h - p : u.localeCompare(g) }), l = u => {
const g = String(u ?? ""); return g.includes(",") || g.includes(";") || g.includes(`
`) || g.includes('"') ? `"${g.replace(/"/g, '""')}"` : g
}; let o = i.map(l).join(";") + `
`; t.forEach(u => {
o += i.map(g => l(u[g])).join(";") + `
`}); const s = new Blob([o], { type: "text/csv;charset=utf-8;" }), a = document.createElement("a"); a.href = URL.createObjectURL(s), a.download = `permission_analysis_${Date.now()}.csv`, a.click()
} function Ea({ segments: e, total: t }) { const r = t || 1, n = e.filter(i => i.count > 0); return n.length === 0 ? null : c.jsx("div", { className: "mt-3", children: c.jsx("div", { className: "flex h-3.5 rounded-full overflow-hidden w-full", children: n.map(i => c.jsx("div", { style: { width: `${i.count / r * 100}%`, backgroundColor: i.color }, title: `${i.label}: ${i.count} (${Math.round(i.count / r * 100)}%)`, className: "min-w-[3px] transition-all duration-500" }, i.key)) }) }) } function ot({ bg: e, border: t, labelColor: r, valueColor: n, label: i, count: l, pct: o, onClick: s, muted: a }) { return c.jsxs("div", { className: `${e} rounded-lg p-3 sm:p-4 transition-all duration-200 ${s ? `cursor-pointer border border-transparent hover:border-slate-200 dark:hover:border-slate-700 hover:shadow-sm ${t}` : ""} ${a ? "opacity-80" : ""}`, onClick: s, title: s ? "Click to filter" : void 0, children: [c.jsx("div", { className: `${r} text-xs sm:text-sm font-semibold`, children: i }), c.jsxs("div", { className: `text-xl sm:text-2xl font-bold mt-0.5 ${n}`, children: [l, o && c.jsx("span", { className: "text-sm font-normal ml-1 opacity-60", children: o })] })] }) } function qf({ appData: e, onFilterAll: t, onFilterOptimal: r, onFilterExcess: n, onFilterUnmatched: i, onFilterThrottled: l, onFilterCriticalThrottling: o }) { const s = Jc(e), a = Wf(e), u = Bf(e), g = f => s.total > 0 ? Math.round(f / s.total * 100) : 0, h = [{ key: "good", count: a.good, color: "#22c55e", label: "Optimal" }, { key: "warning", count: a.warning, color: "#f59e0b", label: "Excess" }, { key: "missing", count: a.missing, color: "#06b6d4", label: "Under-Priv." }, { key: "misaligned", count: a.misaligned, color: "#f97316", label: "Misaligned" }, { key: "danger", count: a.danger, color: "#ef4444", label: "Unmatched" }], p = [{ key: "critical", count: u.critical, color: "#dc2626", label: "Critical" }, { key: "warning", count: u.warning, color: "#f97316", label: "Warning" }, { key: "low", count: u.low, color: "#eab308", label: "Low" }, { key: "minimal", count: u.minimal, color: "#3b82f6", label: "Minimal" }, { key: "normal", count: u.normal, color: "#22c55e", label: "Normal" }], y = g(s.fullyMatched), P = y >= 80 ? "Healthy" : y >= 60 ? "Fair" : "Critical", S = y >= 80 ? "text-green-600 dark:text-green-400" : y >= 60 ? "text-amber-600 dark:text-amber-400" : "text-red-600 dark:text-red-400", C = y >= 80 ? "#22c55e" : y >= 60 ? "#f59e0b" : "#ef4444", m = u.critical > 0 ? { color: "#ef4444", label: "Critical" } : u.warning > 0 ? { color: "#f97316", label: "Warning" } : u.low > 0 ? { color: "#eab308", label: "Low" } : { color: "#22c55e", label: "Normal" }; return c.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4", children: [c.jsxs("div", { className: "bg-white dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-3 sm:p-5 transition-colors duration-200", children: [c.jsxs("div", { className: "flex items-center justify-between mb-2", children: [c.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400", children: "Permission Posture" }), c.jsxs("div", { className: "flex items-center gap-1.5", children: [c.jsx("span", { className: "w-2 h-2 rounded-full", style: { backgroundColor: C } }), c.jsx("span", { className: `text-xs font-semibold ${S}`, children: P })] })] }), c.jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-2 sm:gap-3", children: [c.jsx(ot, { bg: "bg-gray-50 dark:bg-gray-700/40", border: "hover:border-gray-300 dark:hover:border-gray-500", labelColor: "text-gray-500 dark:text-gray-400", valueColor: "text-gray-800 dark:text-gray-200", label: "Total apps", count: s.total, pct: "", onClick: t }), c.jsx(ot, { bg: "bg-green-50 dark:bg-green-900/30", border: "hover:border-green-300 dark:hover:border-green-500", labelColor: "text-green-600 dark:text-green-400", valueColor: "text-green-800 dark:text-green-300", label: "Optimal", count: s.fullyMatched, pct: `/ ${g(s.fullyMatched)}%`, onClick: r }), c.jsx(ot, { bg: "bg-amber-50 dark:bg-amber-900/30", border: "hover:border-amber-300 dark:hover:border-amber-500", labelColor: "text-amber-600 dark:text-amber-400", valueColor: "text-amber-800 dark:text-amber-300", label: "Needs review", count: s.withExcess, pct: `/ ${g(s.withExcess)}%`, onClick: n }), c.jsx(ot, { bg: "bg-red-50 dark:bg-red-900/30", border: "hover:border-red-300 dark:hover:border-red-500", labelColor: "text-red-600 dark:text-red-400", valueColor: "text-red-800 dark:text-red-300", label: "Unmatched", count: s.withUnmatched, pct: `/ ${g(s.withUnmatched)}%`, onClick: i })] }), c.jsx(Ea, { segments: h, total: s.total })] }), c.jsxs("div", { className: "bg-white dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-3 sm:p-5 transition-colors duration-200", children: [c.jsxs("div", { className: "flex items-center justify-between mb-2", children: [c.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500", children: "API Throttling" }), c.jsxs("div", { className: "flex items-center gap-1.5", children: [c.jsx("span", { className: "w-2 h-2 rounded-full", style: { backgroundColor: m.color } }), c.jsx("span", { className: "text-xs font-semibold text-gray-500 dark:text-gray-400", children: m.label })] })] }), c.jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-2 sm:gap-3", children: [c.jsx(ot, { bg: "bg-amber-50 dark:bg-amber-900/20", border: "hover:border-amber-300 dark:hover:border-amber-600", labelColor: "text-amber-600 dark:text-amber-500", valueColor: "text-amber-800 dark:text-amber-400", label: "Apps throttled", count: s.throttledApps, pct: `/ ${g(s.throttledApps)}%`, onClick: l, muted: !0 }), c.jsx(ot, { bg: "bg-red-50 dark:bg-red-900/20", border: "hover:border-red-300 dark:hover:border-red-600", labelColor: "text-red-600 dark:text-red-500", valueColor: "text-red-800 dark:text-red-400", label: "Critical", count: s.criticalThrottling, pct: `/ ${g(s.criticalThrottling)}%`, onClick: o, muted: !0 }), c.jsx(ot, { bg: "bg-gray-50 dark:bg-gray-700/30", border: "", labelColor: "text-gray-500 dark:text-gray-400", valueColor: "text-gray-700 dark:text-gray-300", label: "429 errors", count: s.total429.toLocaleString(), pct: "", muted: !0 }), c.jsx(ot, { bg: "bg-gray-50 dark:bg-gray-700/30", border: "", labelColor: "text-gray-500 dark:text-gray-400", valueColor: "text-gray-700 dark:text-gray-300", label: "Avg rate", count: `${s.avgThrottleRate}%`, pct: "", muted: !0 })] }), c.jsx(Ea, { segments: p, total: s.total })] })] }) } const Qf = { status: "", activity: "", throttling: "", privilege: "", search: "" }, Kf = { status: { good: "Status: Optimal", warning: "Status: Excess", missing: "Status: Under-Privileged", misaligned: "Status: Misaligned", danger: "Status: Unmatched" }, activity: { yes: "Activity: Has Activity", no: "Activity: No Activity" }, throttling: { throttled: "Throttling: All Throttled", 4: "Throttling: Critical", 3: "Throttling: Warning", 2: "Throttling: Low", 1: "Throttling: Minimal", 0: "Throttling: Normal" }, privilege: { 4: "Privilege: L4 Critical", "3plus": "Privilege: L3+", "2plus": "Privilege: L2+", 1: "Privilege: L1 Low", 0: "Privilege: None" } }; function Zf({ filters: e, onChange: t, searchRef: r }) { const [n, i] = j.useState(!0); function l(h) { return p => { t({ ...e, [h]: p.target.value }) } } function o(h) { t({ ...e, [h]: "" }) } const s = Object.values(e).filter(Boolean).length, a = s > 0, u = "w-full border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200 rounded-lg p-2 focus:ring-2 focus:ring-blue-400 focus:outline-none text-sm", g = []; return Object.entries(e).forEach(([h, p]) => { var y; if (p) if (h === "search") g.push({ key: h, label: `Search: "${p}"` }); else { const P = ((y = Kf[h]) == null ? void 0 : y[p]) ?? `${h}: ${p}`; g.push({ key: h, label: P }) } }), c.jsxs("div", { className: "mb-4", children: [c.jsxs("div", { className: "flex items-center justify-between", children: [c.jsxs("div", { className: "flex items-center gap-2", children: [c.jsxs("button", { onClick: () => i(h => !h), className: "flex items-center gap-1.5 font-semibold text-slate-600 dark:text-slate-300 text-sm hover:text-blue-600 dark:hover:text-blue-400 transition-colors", "aria-expanded": n, children: [c.jsx("svg", { className: `w-4 h-4 transition-transform duration-200 ${n ? "rotate-90" : ""}`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) }), "Filters"] }), s > 0 && c.jsx("span", { className: "inline-flex items-center justify-center px-2 py-0.5 text-xs font-bold rounded-full bg-blue-500 text-white", children: s })] }), a && c.jsx("button", { onClick: () => t(Qf), className: "text-xs text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 font-semibold px-2 py-1 rounded hover:bg-red-50 dark:hover:bg-red-900/30 transition-colors", children: "✕ Clear all" })] }), g.length > 0 && c.jsx("div", { className: "flex flex-wrap gap-1.5 mt-2", children: g.map(({ key: h, label: p }) => c.jsxs("span", { className: "inline-flex items-center gap-1 pl-2.5 pr-1.5 py-0.5 text-xs rounded-full bg-blue-100 dark:bg-blue-900/40 text-blue-700 dark:text-blue-300 border border-blue-300 dark:border-blue-700", children: [p, c.jsx("button", { onClick: () => o(h), className: "hover:text-blue-900 dark:hover:text-blue-100 ml-0.5 font-bold leading-none", title: "Remove filter", children: "✕" })] }, h)) }), n && c.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-2 sm:gap-3 mt-3 pt-3 border-t dark:border-gray-700", children: [c.jsxs("div", { children: [c.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Status" }), c.jsxs("select", { value: e.status, onChange: l("status"), className: u, children: [c.jsx("option", { value: "", children: "All" }), c.jsx("option", { value: "good", children: "Optimal" }), c.jsx("option", { value: "warning", children: "Has Excess" }), c.jsx("option", { value: "missing", children: "Under-Privileged" }), c.jsx("option", { value: "misaligned", children: "Misaligned" }), c.jsx("option", { value: "danger", children: "Unmatched" })] })] }), c.jsxs("div", { children: [c.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Activity" }), c.jsxs("select", { value: e.activity, onChange: l("activity"), className: u, children: [c.jsx("option", { value: "", children: "All" }), c.jsx("option", { value: "yes", children: "Has Activity" }), c.jsx("option", { value: "no", children: "No Activity" })] })] }), c.jsxs("div", { children: [c.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Throttling" }), c.jsxs("select", { value: e.throttling, onChange: l("throttling"), className: u, children: [c.jsx("option", { value: "", children: "All" }), c.jsx("option", { value: "throttled", children: "All Throttled" }), c.jsx("option", { value: "4", children: "Critical" }), c.jsx("option", { value: "3", children: "Warning" }), c.jsx("option", { value: "2", children: "Low" }), c.jsx("option", { value: "1", children: "Minimal" }), c.jsx("option", { value: "0", children: "Normal" })] })] }), c.jsxs("div", { children: [c.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Privilege" }), c.jsxs("select", { value: e.privilege, onChange: l("privilege"), className: u, children: [c.jsx("option", { value: "", children: "All" }), c.jsx("option", { value: "4", children: "Level 4 (Critical)" }), c.jsx("option", { value: "3plus", children: "Level 3+ (High/Critical)" }), c.jsx("option", { value: "2plus", children: "Level 2+ (Medium+)" }), c.jsx("option", { value: "1", children: "Level 1 (Low only)" }), c.jsx("option", { value: "0", children: "No Permissions" })] })] }), c.jsxs("div", { children: [c.jsx("label", { className: "block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Search" }), c.jsx("input", { ref: r, type: "text", value: e.search, onChange: l("search"), className: u, placeholder: "Apps, permissions, endpoints..." })] })] })] }) }/**
* table-core
*
* Copyright (c) TanStack
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/function ft(e, t) { return typeof e == "function" ? e(t) : e } function ke(e, t) { return r => { t.setState(n => ({ ...n, [e]: ft(r, n[e]) })) } } function Fi(e) { return e instanceof Function } function Xf(e) { return Array.isArray(e) && e.every(t => typeof t == "number") } function Yf(e, t) { const r = [], n = i => { i.forEach(l => { r.push(l); const o = t(l); o != null && o.length && n(o) }) }; return n(e), r } function E(e, t, r) {
let n = [], i; return l => {
let o; r.key && r.debug && (o = Date.now()); const s = e(l); if (!(s.length !== n.length || s.some((g, h) => n[h] !== g))) return i; n = s; let u; if (r.key && r.debug && (u = Date.now()), i = t(...s), r == null || r.onChange == null || r.onChange(i), r.key && r.debug && r != null && r.debug()) {
const g = Math.round((Date.now() - o) * 100) / 100, h = Math.round((Date.now() - u) * 100) / 100, p = h / 16, y = (P, S) => { for (P = String(P); P.length < S;)P = " " + P; return P }; console.info(`%c⏱ ${y(h, 5)} /${y(g, 5)} ms`, `
font-size: .6rem;
font-weight: bold;
color: hsl(${Math.max(0, Math.min(120 - 120 * p, 120))}deg 100% 31%);`, r == null ? void 0 : r.key)
} return i
}
} function M(e, t, r, n) { return { debug: () => { var i; return (i = e == null ? void 0 : e.debugAll) != null ? i : e[t] }, key: !1, onChange: n } } function Jf(e, t, r, n) { const i = () => { var o; return (o = l.getValue()) != null ? o : e.options.renderFallbackValue }, l = { id: `${t.id}_${r.id}`, row: t, column: r, getValue: () => t.getValue(n), renderValue: i, getContext: E(() => [e, r, t, l], (o, s, a, u) => ({ table: o, column: s, row: a, cell: u, getValue: u.getValue, renderValue: u.renderValue }), M(e.options, "debugCells")) }; return e._features.forEach(o => { o.createCell == null || o.createCell(l, r, t, e) }, {}), l } function eg(e, t, r, n) { var i, l; const s = { ...e._getDefaultColumnDef(), ...t }, a = s.accessorKey; let u = (i = (l = s.id) != null ? l : a ? typeof String.prototype.replaceAll == "function" ? a.replaceAll(".", "_") : a.replace(/\./g, "_") : void 0) != null ? i : typeof s.header == "string" ? s.header : void 0, g; if (s.accessorFn ? g = s.accessorFn : a && (a.includes(".") ? g = p => { let y = p; for (const S of a.split(".")) { var P; y = (P = y) == null ? void 0 : P[S] } return y } : g = p => p[s.accessorKey]), !u) throw new Error; let h = { id: `${String(u)}`, accessorFn: g, parent: n, depth: r, columnDef: s, columns: [], getFlatColumns: E(() => [!0], () => { var p; return [h, ...(p = h.columns) == null ? void 0 : p.flatMap(y => y.getFlatColumns())] }, M(e.options, "debugColumns")), getLeafColumns: E(() => [e._getOrderColumnsFn()], p => { var y; if ((y = h.columns) != null && y.length) { let P = h.columns.flatMap(S => S.getLeafColumns()); return p(P) } return [h] }, M(e.options, "debugColumns")) }; for (const p of e._features) p.createColumn == null || p.createColumn(h, e); return h } const ae = "debugHeaders"; function Ma(e, t, r) { var n; let l = { id: (n = r.id) != null ? n : t.id, column: t, index: r.index, isPlaceholder: !!r.isPlaceholder, placeholderId: r.placeholderId, depth: r.depth, subHeaders: [], colSpan: 0, rowSpan: 0, headerGroup: null, getLeafHeaders: () => { const o = [], s = a => { a.subHeaders && a.subHeaders.length && a.subHeaders.map(s), o.push(a) }; return s(l), o }, getContext: () => ({ table: e, header: l, column: t }) }; return e._features.forEach(o => { o.createHeader == null || o.createHeader(l, e) }), l } const tg = { createTable: e => { e.getHeaderGroups = E(() => [e.getAllColumns(), e.getVisibleLeafColumns(), e.getState().columnPinning.left, e.getState().columnPinning.right], (t, r, n, i) => { var l, o; const s = (l = n == null ? void 0 : n.map(h => r.find(p => p.id === h)).filter(Boolean)) != null ? l : [], a = (o = i == null ? void 0 : i.map(h => r.find(p => p.id === h)).filter(Boolean)) != null ? o : [], u = r.filter(h => !(n != null && n.includes(h.id)) && !(i != null && i.includes(h.id))); return _n(t, [...s, ...u, ...a], e) }, M(e.options, ae)), e.getCenterHeaderGroups = E(() => [e.getAllColumns(), e.getVisibleLeafColumns(), e.getState().columnPinning.left, e.getState().columnPinning.right], (t, r, n, i) => (r = r.filter(l => !(n != null && n.includes(l.id)) && !(i != null && i.includes(l.id))), _n(t, r, e, "center")), M(e.options, ae)), e.getLeftHeaderGroups = E(() => [e.getAllColumns(), e.getVisibleLeafColumns(), e.getState().columnPinning.left], (t, r, n) => { var i; const l = (i = n == null ? void 0 : n.map(o => r.find(s => s.id === o)).filter(Boolean)) != null ? i : []; return _n(t, l, e, "left") }, M(e.options, ae)), e.getRightHeaderGroups = E(() => [e.getAllColumns(), e.getVisibleLeafColumns(), e.getState().columnPinning.right], (t, r, n) => { var i; const l = (i = n == null ? void 0 : n.map(o => r.find(s => s.id === o)).filter(Boolean)) != null ? i : []; return _n(t, l, e, "right") }, M(e.options, ae)), e.getFooterGroups = E(() => [e.getHeaderGroups()], t => [...t].reverse(), M(e.options, ae)), e.getLeftFooterGroups = E(() => [e.getLeftHeaderGroups()], t => [...t].reverse(), M(e.options, ae)), e.getCenterFooterGroups = E(() => [e.getCenterHeaderGroups()], t => [...t].reverse(), M(e.options, ae)), e.getRightFooterGroups = E(() => [e.getRightHeaderGroups()], t => [...t].reverse(), M(e.options, ae)), e.getFlatHeaders = E(() => [e.getHeaderGroups()], t => t.map(r => r.headers).flat(), M(e.options, ae)), e.getLeftFlatHeaders = E(() => [e.getLeftHeaderGroups()], t => t.map(r => r.headers).flat(), M(e.options, ae)), e.getCenterFlatHeaders = E(() => [e.getCenterHeaderGroups()], t => t.map(r => r.headers).flat(), M(e.options, ae)), e.getRightFlatHeaders = E(() => [e.getRightHeaderGroups()], t => t.map(r => r.headers).flat(), M(e.options, ae)), e.getCenterLeafHeaders = E(() => [e.getCenterFlatHeaders()], t => t.filter(r => { var n; return !((n = r.subHeaders) != null && n.length) }), M(e.options, ae)), e.getLeftLeafHeaders = E(() => [e.getLeftFlatHeaders()], t => t.filter(r => { var n; return !((n = r.subHeaders) != null && n.length) }), M(e.options, ae)), e.getRightLeafHeaders = E(() => [e.getRightFlatHeaders()], t => t.filter(r => { var n; return !((n = r.subHeaders) != null && n.length) }), M(e.options, ae)), e.getLeafHeaders = E(() => [e.getLeftHeaderGroups(), e.getCenterHeaderGroups(), e.getRightHeaderGroups()], (t, r, n) => { var i, l, o, s, a, u; return [...(i = (l = t[0]) == null ? void 0 : l.headers) != null ? i : [], ...(o = (s = r[0]) == null ? void 0 : s.headers) != null ? o : [], ...(a = (u = n[0]) == null ? void 0 : u.headers) != null ? a : []].map(g => g.getLeafHeaders()).flat() }, M(e.options, ae)) } }; function _n(e, t, r, n) { var i, l; let o = 0; const s = function (p, y) { y === void 0 && (y = 1), o = Math.max(o, y), p.filter(P => P.getIsVisible()).forEach(P => { var S; (S = P.columns) != null && S.length && s(P.columns, y + 1) }, 0) }; s(e); let a = []; const u = (p, y) => { const P = { depth: y, id: [n, `${y}`].filter(Boolean).join("_"), headers: [] }, S = []; p.forEach(C => { const m = [...S].reverse()[0], f = C.column.depth === P.depth; let d, x = !1; if (f && C.column.parent ? d = C.column.parent : (d = C.column, x = !0), m && (m == null ? void 0 : m.column) === d) m.subHeaders.push(C); else { const v = Ma(r, d, { id: [n, y, d.id, C == null ? void 0 : C.id].filter(Boolean).join("_"), isPlaceholder: x, placeholderId: x ? `${S.filter(R => R.column === d).length}` : void 0, depth: y, index: S.length }); v.subHeaders.push(C), S.push(v) } P.headers.push(C), C.headerGroup = P }), a.push(P), y > 0 && u(S, y - 1) }, g = t.map((p, y) => Ma(r, p, { depth: o, index: y })); u(g, o - 1), a.reverse(); const h = p => p.filter(P => P.column.getIsVisible()).map(P => { let S = 0, C = 0, m = [0]; P.subHeaders && P.subHeaders.length ? (m = [], h(P.subHeaders).forEach(d => { let { colSpan: x, rowSpan: v } = d; S += x, m.push(v) })) : S = 1; const f = Math.min(...m); return C = C + f, P.colSpan = S, P.rowSpan = C, { colSpan: S, rowSpan: C } }); return h((i = (l = a[0]) == null ? void 0 : l.headers) != null ? i : []), a } const rg = (e, t, r, n, i, l, o) => { let s = { id: t, index: n, original: r, depth: i, parentId: o, _valuesCache: {}, _uniqueValuesCache: {}, getValue: a => { if (s._valuesCache.hasOwnProperty(a)) return s._valuesCache[a]; const u = e.getColumn(a); if (u != null && u.accessorFn) return s._valuesCache[a] = u.accessorFn(s.original, n), s._valuesCache[a] }, getUniqueValues: a => { if (s._uniqueValuesCache.hasOwnProperty(a)) return s._uniqueValuesCache[a]; const u = e.getColumn(a); if (u != null && u.accessorFn) return u.columnDef.getUniqueValues ? (s._uniqueValuesCache[a] = u.columnDef.getUniqueValues(s.original, n), s._uniqueValuesCache[a]) : (s._uniqueValuesCache[a] = [s.getValue(a)], s._uniqueValuesCache[a]) }, renderValue: a => { var u; return (u = s.getValue(a)) != null ? u : e.options.renderFallbackValue }, subRows: [], getLeafRows: () => Yf(s.subRows, a => a.subRows), getParentRow: () => s.parentId ? e.getRow(s.parentId, !0) : void 0, getParentRows: () => { let a = [], u = s; for (; ;) { const g = u.getParentRow(); if (!g) break; a.push(g), u = g } return a.reverse() }, getAllCells: E(() => [e.getAllLeafColumns()], a => a.map(u => Jf(e, s, u, u.id)), M(e.options, "debugRows")), _getAllCellsByColumnId: E(() => [s.getAllCells()], a => a.reduce((u, g) => (u[g.column.id] = g, u), {}), M(e.options, "debugRows")) }; for (let a = 0; a < e._features.length; a++) { const u = e._features[a]; u == null || u.createRow == null || u.createRow(s, e) } return s }, ng = { createColumn: (e, t) => { e._getFacetedRowModel = t.options.getFacetedRowModel && t.options.getFacetedRowModel(t, e.id), e.getFacetedRowModel = () => e._getFacetedRowModel ? e._getFacetedRowModel() : t.getPreFilteredRowModel(), e._getFacetedUniqueValues = t.options.getFacetedUniqueValues && t.options.getFacetedUniqueValues(t, e.id), e.getFacetedUniqueValues = () => e._getFacetedUniqueValues ? e._getFacetedUniqueValues() : new Map, e._getFacetedMinMaxValues = t.options.getFacetedMinMaxValues && t.options.getFacetedMinMaxValues(t, e.id), e.getFacetedMinMaxValues = () => { if (e._getFacetedMinMaxValues) return e._getFacetedMinMaxValues() } } }, rd = (e, t, r) => { var n, i; const l = r == null || (n = r.toString()) == null ? void 0 : n.toLowerCase(); return !!(!((i = e.getValue(t)) == null || (i = i.toString()) == null || (i = i.toLowerCase()) == null) && i.includes(l)) }; rd.autoRemove = e => Oe(e); const nd = (e, t, r) => { var n; return !!(!((n = e.getValue(t)) == null || (n = n.toString()) == null) && n.includes(r)) }; nd.autoRemove = e => Oe(e); const id = (e, t, r) => { var n; return ((n = e.getValue(t)) == null || (n = n.toString()) == null ? void 0 : n.toLowerCase()) === (r == null ? void 0 : r.toLowerCase()) }; id.autoRemove = e => Oe(e); const ld = (e, t, r) => { var n; return (n = e.getValue(t)) == null ? void 0 : n.includes(r) }; ld.autoRemove = e => Oe(e); const od = (e, t, r) => !r.some(n => { var i; return !((i = e.getValue(t)) != null && i.includes(n)) }); od.autoRemove = e => Oe(e) || !(e != null && e.length); const sd = (e, t, r) => r.some(n => { var i; return (i = e.getValue(t)) == null ? void 0 : i.includes(n) }); sd.autoRemove = e => Oe(e) || !(e != null && e.length); const ad = (e, t, r) => e.getValue(t) === r; ad.autoRemove = e => Oe(e); const ud = (e, t, r) => e.getValue(t) == r; ud.autoRemove = e => Oe(e); const hs = (e, t, r) => { let [n, i] = r; const l = e.getValue(t); return l >= n && l <= i }; hs.resolveFilterValue = e => { let [t, r] = e, n = typeof t != "number" ? parseFloat(t) : t, i = typeof r != "number" ? parseFloat(r) : r, l = t === null || Number.isNaN(n) ? -1 / 0 : n, o = r === null || Number.isNaN(i) ? 1 / 0 : i; if (l > o) { const s = l; l = o, o = s } return [l, o] }; hs.autoRemove = e => Oe(e) || Oe(e[0]) && Oe(e[1]); const qe = { includesString: rd, includesStringSensitive: nd, equalsString: id, arrIncludes: ld, arrIncludesAll: od, arrIncludesSome: sd, equals: ad, weakEquals: ud, inNumberRange: hs }; function Oe(e) { return e == null || e === "" } const ig = { getDefaultColumnDef: () => ({ filterFn: "auto" }), getInitialState: e => ({ columnFilters: [], ...e }), getDefaultOptions: e => ({ onColumnFiltersChange: ke("columnFilters", e), filterFromLeafRows: !1, maxLeafRowFilterDepth: 100 }), createColumn: (e, t) => { e.getAutoFilterFn = () => { const r = t.getCoreRowModel().flatRows[0], n = r == null ? void 0 : r.getValue(e.id); return typeof n == "string" ? qe.includesString : typeof n == "number" ? qe.inNumberRange : typeof n == "boolean" || n !== null && typeof n == "object" ? qe.equals : Array.isArray(n) ? qe.arrIncludes : qe.weakEquals }, e.getFilterFn = () => { var r, n; return Fi(e.columnDef.filterFn) ? e.columnDef.filterFn : e.columnDef.filterFn === "auto" ? e.getAutoFilterFn() : (r = (n = t.options.filterFns) == null ? void 0 : n[e.columnDef.filterFn]) != null ? r : qe[e.columnDef.filterFn] }, e.getCanFilter = () => { var r, n, i; return ((r = e.columnDef.enableColumnFilter) != null ? r : !0) && ((n = t.options.enableColumnFilters) != null ? n : !0) && ((i = t.options.enableFilters) != null ? i : !0) && !!e.accessorFn }, e.getIsFiltered = () => e.getFilterIndex() > -1, e.getFilterValue = () => { var r; return (r = t.getState().columnFilters) == null || (r = r.find(n => n.id === e.id)) == null ? void 0 : r.value }, e.getFilterIndex = () => { var r, n; return (r = (n = t.getState().columnFilters) == null ? void 0 : n.findIndex(i => i.id === e.id)) != null ? r : -1 }, e.setFilterValue = r => { t.setColumnFilters(n => { const i = e.getFilterFn(), l = n == null ? void 0 : n.find(g => g.id === e.id), o = ft(r, l ? l.value : void 0); if (ba(i, o, e)) { var s; return (s = n == null ? void 0 : n.filter(g => g.id !== e.id)) != null ? s : [] } const a = { id: e.id, value: o }; if (l) { var u; return (u = n == null ? void 0 : n.map(g => g.id === e.id ? a : g)) != null ? u : [] } return n != null && n.length ? [...n, a] : [a] }) } }, createRow: (e, t) => { e.columnFilters = {}, e.columnFiltersMeta = {} }, createTable: e => { e.setColumnFilters = t => { const r = e.getAllLeafColumns(), n = i => { var l; return (l = ft(t, i)) == null ? void 0 : l.filter(o => { const s = r.find(a => a.id === o.id); if (s) { const a = s.getFilterFn(); if (ba(a, o.value, s)) return !1 } return !0 }) }; e.options.onColumnFiltersChange == null || e.options.onColumnFiltersChange(n) }, e.resetColumnFilters = t => { var r, n; e.setColumnFilters(t ? [] : (r = (n = e.initialState) == null ? void 0 : n.columnFilters) != null ? r : []) }, e.getPreFilteredRowModel = () => e.getCoreRowModel(), e.getFilteredRowModel = () => (!e._getFilteredRowModel && e.options.getFilteredRowModel && (e._getFilteredRowModel = e.options.getFilteredRowModel(e)), e.options.manualFiltering || !e._getFilteredRowModel ? e.getPreFilteredRowModel() : e._getFilteredRowModel()) } }; function ba(e, t, r) { return (e && e.autoRemove ? e.autoRemove(t, r) : !1) || typeof t > "u" || typeof t == "string" && !t } const lg = (e, t, r) => r.reduce((n, i) => { const l = i.getValue(e); return n + (typeof l == "number" ? l : 0) }, 0), og = (e, t, r) => { let n; return r.forEach(i => { const l = i.getValue(e); l != null && (n > l || n === void 0 && l >= l) && (n = l) }), n }, sg = (e, t, r) => { let n; return r.forEach(i => { const l = i.getValue(e); l != null && (n < l || n === void 0 && l >= l) && (n = l) }), n }, ag = (e, t, r) => { let n, i; return r.forEach(l => { const o = l.getValue(e); o != null && (n === void 0 ? o >= o && (n = i = o) : (n > o && (n = o), i < o && (i = o))) }), [n, i] }, ug = (e, t) => { let r = 0, n = 0; if (t.forEach(i => { let l = i.getValue(e); l != null && (l = +l) >= l && (++r, n += l) }), r) return n / r }, cg = (e, t) => { if (!t.length) return; const r = t.map(l => l.getValue(e)); if (!Xf(r)) return; if (r.length === 1) return r[0]; const n = Math.floor(r.length / 2), i = r.sort((l, o) => l - o); return r.length % 2 !== 0 ? i[n] : (i[n - 1] + i[n]) / 2 }, dg = (e, t) => Array.from(new Set(t.map(r => r.getValue(e))).values()), pg = (e, t) => new Set(t.map(r => r.getValue(e))).size, fg = (e, t) => t.length, pl = { sum: lg, min: og, max: sg, extent: ag, mean: ug, median: cg, unique: dg, uniqueCount: pg, count: fg }, gg = { getDefaultColumnDef: () => ({ aggregatedCell: e => { var t, r; return (t = (r = e.getValue()) == null || r.toString == null ? void 0 : r.toString()) != null ? t : null }, aggregationFn: "auto" }), getInitialState: e => ({ grouping: [], ...e }), getDefaultOptions: e => ({ onGroupingChange: ke("grouping", e), groupedColumnMode: "reorder" }), createColumn: (e, t) => { e.toggleGrouping = () => { t.setGrouping(r => r != null && r.includes(e.id) ? r.filter(n => n !== e.id) : [...r ?? [], e.id]) }, e.getCanGroup = () => { var r, n; return ((r = e.columnDef.enableGrouping) != null ? r : !0) && ((n = t.options.enableGrouping) != null ? n : !0) && (!!e.accessorFn || !!e.columnDef.getGroupingValue) }, e.getIsGrouped = () => { var r; return (r = t.getState().grouping) == null ? void 0 : r.includes(e.id) }, e.getGroupedIndex = () => { var r; return (r = t.getState().grouping) == null ? void 0 : r.indexOf(e.id) }, e.getToggleGroupingHandler = () => { const r = e.getCanGroup(); return () => { r && e.toggleGrouping() } }, e.getAutoAggregationFn = () => { const r = t.getCoreRowModel().flatRows[0], n = r == null ? void 0 : r.getValue(e.id); if (typeof n == "number") return pl.sum; if (Object.prototype.toString.call(n) === "[object Date]") return pl.extent }, e.getAggregationFn = () => { var r, n; if (!e) throw new Error; return Fi(e.columnDef.aggregationFn) ? e.columnDef.aggregationFn : e.columnDef.aggregationFn === "auto" ? e.getAutoAggregationFn() : (r = (n = t.options.aggregationFns) == null ? void 0 : n[e.columnDef.aggregationFn]) != null ? r : pl[e.columnDef.aggregationFn] } }, createTable: e => { e.setGrouping = t => e.options.onGroupingChange == null ? void 0 : e.options.onGroupingChange(t), e.resetGrouping = t => { var r, n; e.setGrouping(t ? [] : (r = (n = e.initialState) == null ? void 0 : n.grouping) != null ? r : []) }, e.getPreGroupedRowModel = () => e.getFilteredRowModel(), e.getGroupedRowModel = () => (!e._getGroupedRowModel && e.options.getGroupedRowModel && (e._getGroupedRowModel = e.options.getGroupedRowModel(e)), e.options.manualGrouping || !e._getGroupedRowModel ? e.getPreGroupedRowModel() : e._getGroupedRowModel()) }, createRow: (e, t) => { e.getIsGrouped = () => !!e.groupingColumnId, e.getGroupingValue = r => { if (e._groupingValuesCache.hasOwnProperty(r)) return e._groupingValuesCache[r]; const n = t.getColumn(r); return n != null && n.columnDef.getGroupingValue ? (e._groupingValuesCache[r] = n.columnDef.getGroupingValue(e.original), e._groupingValuesCache[r]) : e.getValue(r) }, e._groupingValuesCache = {} }, createCell: (e, t, r, n) => { e.getIsGrouped = () => t.getIsGrouped() && t.id === r.groupingColumnId, e.getIsPlaceholder = () => !e.getIsGrouped() && t.getIsGrouped(), e.getIsAggregated = () => { var i; return !e.getIsGrouped() && !e.getIsPlaceholder() && !!((i = r.subRows) != null && i.length) } } }; function mg(e, t, r) { if (!(t != null && t.length) || !r) return e; const n = e.filter(l => !t.includes(l.id)); return r === "remove" ? n : [...t.map(l => e.find(o => o.id === l)).filter(Boolean), ...n] } const hg = { getInitialState: e => ({ columnOrder: [], ...e }), getDefaultOptions: e => ({ onColumnOrderChange: ke("columnOrder", e) }), createColumn: (e, t) => { e.getIndex = E(r => [Hr(t, r)], r => r.findIndex(n => n.id === e.id), M(t.options, "debugColumns")), e.getIsFirstColumn = r => { var n; return ((n = Hr(t, r)[0]) == null ? void 0 : n.id) === e.id }, e.getIsLastColumn = r => { var n; const i = Hr(t, r); return ((n = i[i.length - 1]) == null ? void 0 : n.id) === e.id } }, createTable: e => { e.setColumnOrder = t => e.options.onColumnOrderChange == null ? void 0 : e.options.onColumnOrderChange(t), e.resetColumnOrder = t => { var r; e.setColumnOrder(t ? [] : (r = e.initialState.columnOrder) != null ? r : []) }, e._getOrderColumnsFn = E(() => [e.getState().columnOrder, e.getState().grouping, e.options.groupedColumnMode], (t, r, n) => i => { let l = []; if (!(t != null && t.length)) l = i; else { const o = [...t], s = [...i]; for (; s.length && o.length;) { const a = o.shift(), u = s.findIndex(g => g.id === a); u > -1 && l.push(s.splice(u, 1)[0]) } l = [...l, ...s] } return mg(l, r, n) }, M(e.options, "debugTable")) } }, fl = () => ({ left: [], right: [] }), vg = { getInitialState: e => ({ columnPinning: fl(), ...e }), getDefaultOptions: e => ({ onColumnPinningChange: ke("columnPinning", e) }), createColumn: (e, t) => { e.pin = r => { const n = e.getLeafColumns().map(i => i.id).filter(Boolean); t.setColumnPinning(i => { var l, o; if (r === "right") { var s, a; return { left: ((s = i == null ? void 0 : i.left) != null ? s : []).filter(h => !(n != null && n.includes(h))), right: [...((a = i == null ? void 0 : i.right) != null ? a : []).filter(h => !(n != null && n.includes(h))), ...n] } } if (r === "left") { var u, g; return { left: [...((u = i == null ? void 0 : i.left) != null ? u : []).filter(h => !(n != null && n.includes(h))), ...n], right: ((g = i == null ? void 0 : i.right) != null ? g : []).filter(h => !(n != null && n.includes(h))) } } return { left: ((l = i == null ? void 0 : i.left) != null ? l : []).filter(h => !(n != null && n.includes(h))), right: ((o = i == null ? void 0 : i.right) != null ? o : []).filter(h => !(n != null && n.includes(h))) } }) }, e.getCanPin = () => e.getLeafColumns().some(n => { var i, l, o; return ((i = n.columnDef.enablePinning) != null ? i : !0) && ((l = (o = t.options.enableColumnPinning) != null ? o : t.options.enablePinning) != null ? l : !0) }), e.getIsPinned = () => { const r = e.getLeafColumns().map(s => s.id), { left: n, right: i } = t.getState().columnPinning, l = r.some(s => n == null ? void 0 : n.includes(s)), o = r.some(s => i == null ? void 0 : i.includes(s)); return l ? "left" : o ? "right" : !1 }, e.getPinnedIndex = () => { var r, n; const i = e.getIsPinned(); return i ? (r = (n = t.getState().columnPinning) == null || (n = n[i]) == null ? void 0 : n.indexOf(e.id)) != null ? r : -1 : 0 } }, createRow: (e, t) => { e.getCenterVisibleCells = E(() => [e._getAllVisibleCells(), t.getState().columnPinning.left, t.getState().columnPinning.right], (r, n, i) => { const l = [...n ?? [], ...i ?? []]; return r.filter(o => !l.includes(o.column.id)) }, M(t.options, "debugRows")), e.getLeftVisibleCells = E(() => [e._getAllVisibleCells(), t.getState().columnPinning.left], (r, n) => (n ?? []).map(l => r.find(o => o.column.id === l)).filter(Boolean).map(l => ({ ...l, position: "left" })), M(t.options, "debugRows")), e.getRightVisibleCells = E(() => [e._getAllVisibleCells(), t.getState().columnPinning.right], (r, n) => (n ?? []).map(l => r.find(o => o.column.id === l)).filter(Boolean).map(l => ({ ...l, position: "right" })), M(t.options, "debugRows")) }, createTable: e => { e.setColumnPinning = t => e.options.onColumnPinningChange == null ? void 0 : e.options.onColumnPinningChange(t), e.resetColumnPinning = t => { var r, n; return e.setColumnPinning(t ? fl() : (r = (n = e.initialState) == null ? void 0 : n.columnPinning) != null ? r : fl()) }, e.getIsSomeColumnsPinned = t => { var r; const n = e.getState().columnPinning; if (!t) { var i, l; return !!((i = n.left) != null && i.length || (l = n.right) != null && l.length) } return !!((r = n[t]) != null && r.length) }, e.getLeftLeafColumns = E(() => [e.getAllLeafColumns(), e.getState().columnPinning.left], (t, r) => (r ?? []).map(n => t.find(i => i.id === n)).filter(Boolean), M(e.options, "debugColumns")), e.getRightLeafColumns = E(() => [e.getAllLeafColumns(), e.getState().columnPinning.right], (t, r) => (r ?? []).map(n => t.find(i => i.id === n)).filter(Boolean), M(e.options, "debugColumns")), e.getCenterLeafColumns = E(() => [e.getAllLeafColumns(), e.getState().columnPinning.left, e.getState().columnPinning.right], (t, r, n) => { const i = [...r ?? [], ...n ?? []]; return t.filter(l => !i.includes(l.id)) }, M(e.options, "debugColumns")) } }; function yg(e) { return e || (typeof document < "u" ? document : null) } const Dn = { size: 150, minSize: 20, maxSize: Number.MAX_SAFE_INTEGER }, gl = () => ({ startOffset: null, startSize: null, deltaOffset: null, deltaPercentage: null, isResizingColumn: !1, columnSizingStart: [] }), Pg = { getDefaultColumnDef: () => Dn, getInitialState: e => ({ columnSizing: {}, columnSizingInfo: gl(), ...e }), getDefaultOptions: e => ({ columnResizeMode: "onEnd", columnResizeDirection: "ltr", onColumnSizingChange: ke("columnSizing", e), onColumnSizingInfoChange: ke("columnSizingInfo", e) }), createColumn: (e, t) => { e.getSize = () => { var r, n, i; const l = t.getState().columnSizing[e.id]; return Math.min(Math.max((r = e.columnDef.minSize) != null ? r : Dn.minSize, (n = l ?? e.columnDef.size) != null ? n : Dn.size), (i = e.columnDef.maxSize) != null ? i : Dn.maxSize) }, e.getStart = E(r => [r, Hr(t, r), t.getState().columnSizing], (r, n) => n.slice(0, e.getIndex(r)).reduce((i, l) => i + l.getSize(), 0), M(t.options, "debugColumns")), e.getAfter = E(r => [r, Hr(t, r), t.getState().columnSizing], (r, n) => n.slice(e.getIndex(r) + 1).reduce((i, l) => i + l.getSize(), 0), M(t.options, "debugColumns")), e.resetSize = () => { t.setColumnSizing(r => { let { [e.id]: n, ...i } = r; return i }) }, e.getCanResize = () => { var r, n; return ((r = e.columnDef.enableResizing) != null ? r : !0) && ((n = t.options.enableColumnResizing) != null ? n : !0) }, e.getIsResizing = () => t.getState().columnSizingInfo.isResizingColumn === e.id }, createHeader: (e, t) => { e.getSize = () => { let r = 0; const n = i => { if (i.subHeaders.length) i.subHeaders.forEach(n); else { var l; r += (l = i.column.getSize()) != null ? l : 0 } }; return n(e), r }, e.getStart = () => { if (e.index > 0) { const r = e.headerGroup.headers[e.index - 1]; return r.getStart() + r.getSize() } return 0 }, e.getResizeHandler = r => { const n = t.getColumn(e.column.id), i = n == null ? void 0 : n.getCanResize(); return l => { if (!n || !i || (l.persist == null || l.persist(), ml(l) && l.touches && l.touches.length > 1)) return; const o = e.getSize(), s = e ? e.getLeafHeaders().map(m => [m.column.id, m.column.getSize()]) : [[n.id, n.getSize()]], a = ml(l) ? Math.round(l.touches[0].clientX) : l.clientX, u = {}, g = (m, f) => { typeof f == "number" && (t.setColumnSizingInfo(d => { var x, v; const R = t.options.columnResizeDirection === "rtl" ? -1 : 1, w = (f - ((x = d == null ? void 0 : d.startOffset) != null ? x : 0)) * R, k = Math.max(w / ((v = d == null ? void 0 : d.startSize) != null ? v : 0), -.999999); return d.columnSizingStart.forEach(_ => { let [N, re] = _; u[N] = Math.round(Math.max(re + re * k, 0) * 100) / 100 }), { ...d, deltaOffset: w, deltaPercentage: k } }), (t.options.columnResizeMode === "onChange" || m === "end") && t.setColumnSizing(d => ({ ...d, ...u }))) }, h = m => g("move", m), p = m => { g("end", m), t.setColumnSizingInfo(f => ({ ...f, isResizingColumn: !1, startOffset: null, startSize: null, deltaOffset: null, deltaPercentage: null, columnSizingStart: [] })) }, y = yg(r), P = { moveHandler: m => h(m.clientX), upHandler: m => { y == null || y.removeEventListener("mousemove", P.moveHandler), y == null || y.removeEventListener("mouseup", P.upHandler), p(m.clientX) } }, S = { moveHandler: m => (m.cancelable && (m.preventDefault(), m.stopPropagation()), h(m.touches[0].clientX), !1), upHandler: m => { var f; y == null || y.removeEventListener("touchmove", S.moveHandler), y == null || y.removeEventListener("touchend", S.upHandler), m.cancelable && (m.preventDefault(), m.stopPropagation()), p((f = m.touches[0]) == null ? void 0 : f.clientX) } }, C = Sg() ? { passive: !1 } : !1; ml(l) ? (y == null || y.addEventListener("touchmove", S.moveHandler, C), y == null || y.addEventListener("touchend", S.upHandler, C)) : (y == null || y.addEventListener("mousemove", P.moveHandler, C), y == null || y.addEventListener("mouseup", P.upHandler, C)), t.setColumnSizingInfo(m => ({ ...m, startOffset: a, startSize: o, deltaOffset: 0, deltaPercentage: 0, columnSizingStart: s, isResizingColumn: n.id })) } } }, createTable: e => { e.setColumnSizing = t => e.options.onColumnSizingChange == null ? void 0 : e.options.onColumnSizingChange(t), e.setColumnSizingInfo = t => e.options.onColumnSizingInfoChange == null ? void 0 : e.options.onColumnSizingInfoChange(t), e.resetColumnSizing = t => { var r; e.setColumnSizing(t ? {} : (r = e.initialState.columnSizing) != null ? r : {}) }, e.resetHeaderSizeInfo = t => { var r; e.setColumnSizingInfo(t ? gl() : (r = e.initialState.columnSizingInfo) != null ? r : gl()) }, e.getTotalSize = () => { var t, r; return (t = (r = e.getHeaderGroups()[0]) == null ? void 0 : r.headers.reduce((n, i) => n + i.getSize(), 0)) != null ? t : 0 }, e.getLeftTotalSize = () => { var t, r; return (t = (r = e.getLeftHeaderGroups()[0]) == null ? void 0 : r.headers.reduce((n, i) => n + i.getSize(), 0)) != null ? t : 0 }, e.getCenterTotalSize = () => { var t, r; return (t = (r = e.getCenterHeaderGroups()[0]) == null ? void 0 : r.headers.reduce((n, i) => n + i.getSize(), 0)) != null ? t : 0 }, e.getRightTotalSize = () => { var t, r; return (t = (r = e.getRightHeaderGroups()[0]) == null ? void 0 : r.headers.reduce((n, i) => n + i.getSize(), 0)) != null ? t : 0 } } }; let In = null; function Sg() { if (typeof In == "boolean") return In; let e = !1; try { const t = { get passive() { return e = !0, !1 } }, r = () => { }; window.addEventListener("test", r, t), window.removeEventListener("test", r) } catch { e = !1 } return In = e, In } function ml(e) { return e.type === "touchstart" } const Rg = { getInitialState: e => ({ columnVisibility: {}, ...e }), getDefaultOptions: e => ({ onColumnVisibilityChange: ke("columnVisibility", e) }), createColumn: (e, t) => { e.toggleVisibility = r => { e.getCanHide() && t.setColumnVisibility(n => ({ ...n, [e.id]: r ?? !e.getIsVisible() })) }, e.getIsVisible = () => { var r, n; const i = e.columns; return (r = i.length ? i.some(l => l.getIsVisible()) : (n = t.getState().columnVisibility) == null ? void 0 : n[e.id]) != null ? r : !0 }, e.getCanHide = () => { var r, n; return ((r = e.columnDef.enableHiding) != null ? r : !0) && ((n = t.options.enableHiding) != null ? n : !0) }, e.getToggleVisibilityHandler = () => r => { e.toggleVisibility == null || e.toggleVisibility(r.target.checked) } }, createRow: (e, t) => { e._getAllVisibleCells = E(() => [e.getAllCells(), t.getState().columnVisibility], r => r.filter(n => n.column.getIsVisible()), M(t.options, "debugRows")), e.getVisibleCells = E(() => [e.getLeftVisibleCells(), e.getCenterVisibleCells(), e.getRightVisibleCells()], (r, n, i) => [...r, ...n, ...i], M(t.options, "debugRows")) }, createTable: e => { const t = (r, n) => E(() => [n(), n().filter(i => i.getIsVisible()).map(i => i.id).join("_")], i => i.filter(l => l.getIsVisible == null ? void 0 : l.getIsVisible()), M(e.options, "debugColumns")); e.getVisibleFlatColumns = t("getVisibleFlatColumns", () => e.getAllFlatColumns()), e.getVisibleLeafColumns = t("getVisibleLeafColumns", () => e.getAllLeafColumns()), e.getLeftVisibleLeafColumns = t("getLeftVisibleLeafColumns", () => e.getLeftLeafColumns()), e.getRightVisibleLeafColumns = t("getRightVisibleLeafColumns", () => e.getRightLeafColumns()), e.getCenterVisibleLeafColumns = t("getCenterVisibleLeafColumns", () => e.getCenterLeafColumns()), e.setColumnVisibility = r => e.options.onColumnVisibilityChange == null ? void 0 : e.options.onColumnVisibilityChange(r), e.resetColumnVisibility = r => { var n; e.setColumnVisibility(r ? {} : (n = e.initialState.columnVisibility) != null ? n : {}) }, e.toggleAllColumnsVisible = r => { var n; r = (n = r) != null ? n : !e.getIsAllColumnsVisible(), e.setColumnVisibility(e.getAllLeafColumns().reduce((i, l) => ({ ...i, [l.id]: r || !(l.getCanHide != null && l.getCanHide()) }), {})) }, e.getIsAllColumnsVisible = () => !e.getAllLeafColumns().some(r => !(r.getIsVisible != null && r.getIsVisible())), e.getIsSomeColumnsVisible = () => e.getAllLeafColumns().some(r => r.getIsVisible == null ? void 0 : r.getIsVisible()), e.getToggleAllColumnsVisibilityHandler = () => r => { var n; e.toggleAllColumnsVisible((n = r.target) == null ? void 0 : n.checked) } } }; function Hr(e, t) { return t ? t === "center" ? e.getCenterVisibleLeafColumns() : t === "left" ? e.getLeftVisibleLeafColumns() : e.getRightVisibleLeafColumns() : e.getVisibleLeafColumns() } const xg = { createTable: e => { e._getGlobalFacetedRowModel = e.options.getFacetedRowModel && e.options.getFacetedRowModel(e, "__global__"), e.getGlobalFacetedRowModel = () => e.options.manualFiltering || !e._getGlobalFacetedRowModel ? e.getPreFilteredRowModel() : e._getGlobalFacetedRowModel(), e._getGlobalFacetedUniqueValues = e.options.getFacetedUniqueValues && e.options.getFacetedUniqueValues(e, "__global__"), e.getGlobalFacetedUniqueValues = () => e._getGlobalFacetedUniqueValues ? e._getGlobalFacetedUniqueValues() : new Map, e._getGlobalFacetedMinMaxValues = e.options.getFacetedMinMaxValues && e.options.getFacetedMinMaxValues(e, "__global__"), e.getGlobalFacetedMinMaxValues = () => { if (e._getGlobalFacetedMinMaxValues) return e._getGlobalFacetedMinMaxValues() } } }, Tg = { getInitialState: e => ({ globalFilter: void 0, ...e }), getDefaultOptions: e => ({ onGlobalFilterChange: ke("globalFilter", e), globalFilterFn: "auto", getColumnCanGlobalFilter: t => { var r; const n = (r = e.getCoreRowModel().flatRows[0]) == null || (r = r._getAllCellsByColumnId()[t.id]) == null ? void 0 : r.getValue(); return typeof n == "string" || typeof n == "number" } }), createColumn: (e, t) => { e.getCanGlobalFilter = () => { var r, n, i, l; return ((r = e.columnDef.enableGlobalFilter) != null ? r : !0) && ((n = t.options.enableGlobalFilter) != null ? n : !0) && ((i = t.options.enableFilters) != null ? i : !0) && ((l = t.options.getColumnCanGlobalFilter == null ? void 0 : t.options.getColumnCanGlobalFilter(e)) != null ? l : !0) && !!e.accessorFn } }, createTable: e => { e.getGlobalAutoFilterFn = () => qe.includesString, e.getGlobalFilterFn = () => { var t, r; const { globalFilterFn: n } = e.options; return Fi(n) ? n : n === "auto" ? e.getGlobalAutoFilterFn() : (t = (r = e.options.filterFns) == null ? void 0 : r[n]) != null ? t : qe[n] }, e.setGlobalFilter = t => { e.options.onGlobalFilterChange == null || e.options.onGlobalFilterChange(t) }, e.resetGlobalFilter = t => { e.setGlobalFilter(t ? void 0 : e.initialState.globalFilter) } } }, kg = { getInitialState: e => ({ expanded: {}, ...e }), getDefaultOptions: e => ({ onExpandedChange: ke("expanded", e), paginateExpandedRows: !0 }), createTable: e => { let t = !1, r = !1; e._autoResetExpanded = () => { var n, i; if (!t) { e._queue(() => { t = !0 }); return } if ((n = (i = e.options.autoResetAll) != null ? i : e.options.autoResetExpanded) != null ? n : !e.options.manualExpanding) { if (r) return; r = !0, e._queue(() => { e.resetExpanded(), r = !1 }) } }, e.setExpanded = n => e.options.onExpandedChange == null ? void 0 : e.options.onExpandedChange(n), e.toggleAllRowsExpanded = n => { n ?? !e.getIsAllRowsExpanded() ? e.setExpanded(!0) : e.setExpanded({}) }, e.resetExpanded = n => { var i, l; e.setExpanded(n ? {} : (i = (l = e.initialState) == null ? void 0 : l.expanded) != null ? i : {}) }, e.getCanSomeRowsExpand = () => e.getPrePaginationRowModel().flatRows.some(n => n.getCanExpand()), e.getToggleAllRowsExpandedHandler = () => n => { n.persist == null || n.persist(), e.toggleAllRowsExpanded() }, e.getIsSomeRowsExpanded = () => { const n = e.getState().expanded; return n === !0 || Object.values(n).some(Boolean) }, e.getIsAllRowsExpanded = () => { const n = e.getState().expanded; return typeof n == "boolean" ? n === !0 : !(!Object.keys(n).length || e.getRowModel().flatRows.some(i => !i.getIsExpanded())) }, e.getExpandedDepth = () => { let n = 0; return (e.getState().expanded === !0 ? Object.keys(e.getRowModel().rowsById) : Object.keys(e.getState().expanded)).forEach(l => { const o = l.split("."); n = Math.max(n, o.length) }), n }, e.getPreExpandedRowModel = () => e.getSortedRowModel(), e.getExpandedRowModel = () => (!e._getExpandedRowModel && e.options.getExpandedRowModel && (e._getExpandedRowModel = e.options.getExpandedRowModel(e)), e.options.manualExpanding || !e._getExpandedRowModel ? e.getPreExpandedRowModel() : e._getExpandedRowModel()) }, createRow: (e, t) => { e.toggleExpanded = r => { t.setExpanded(n => { var i; const l = n === !0 ? !0 : !!(n != null && n[e.id]); let o = {}; if (n === !0 ? Object.keys(t.getRowModel().rowsById).forEach(s => { o[s] = !0 }) : o = n, r = (i = r) != null ? i : !l, !l && r) return { ...o, [e.id]: !0 }; if (l && !r) { const { [e.id]: s, ...a } = o; return a } return n }) }, e.getIsExpanded = () => { var r; const n = t.getState().expanded; return !!((r = t.options.getIsRowExpanded == null ? void 0 : t.options.getIsRowExpanded(e)) != null ? r : n === !0 || n != null && n[e.id]) }, e.getCanExpand = () => { var r, n, i; return (r = t.options.getRowCanExpand == null ? void 0 : t.options.getRowCanExpand(e)) != null ? r : ((n = t.options.enableExpanding) != null ? n : !0) && !!((i = e.subRows) != null && i.length) }, e.getIsAllParentsExpanded = () => { let r = !0, n = e; for (; r && n.parentId;)n = t.getRow(n.parentId, !0), r = n.getIsExpanded(); return r }, e.getToggleExpandedHandler = () => { const r = e.getCanExpand(); return () => { r && e.toggleExpanded() } } } }, mo = 0, ho = 10, hl = () => ({ pageIndex: mo, pageSize: ho }), wg = { getInitialState: e => ({ ...e, pagination: { ...hl(), ...e == null ? void 0 : e.pagination } }), getDefaultOptions: e => ({ onPaginationChange: ke("pagination", e) }), createTable: e => { let t = !1, r = !1; e._autoResetPageIndex = () => { var n, i; if (!t) { e._queue(() => { t = !0 }); return } if ((n = (i = e.options.autoResetAll) != null ? i : e.options.autoResetPageIndex) != null ? n : !e.options.manualPagination) { if (r) return; r = !0, e._queue(() => { e.resetPageIndex(), r = !1 }) } }, e.setPagination = n => { const i = l => ft(n, l); return e.options.onPaginationChange == null ? void 0 : e.options.onPaginationChange(i) }, e.resetPagination = n => { var i; e.setPagination(n ? hl() : (i = e.initialState.pagination) != null ? i : hl()) }, e.setPageIndex = n => { e.setPagination(i => { let l = ft(n, i.pageIndex); const o = typeof e.options.pageCount > "u" || e.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : e.options.pageCount - 1; return l = Math.max(0, Math.min(l, o)), { ...i, pageIndex: l } }) }, e.resetPageIndex = n => { var i, l; e.setPageIndex(n ? mo : (i = (l = e.initialState) == null || (l = l.pagination) == null ? void 0 : l.pageIndex) != null ? i : mo) }, e.resetPageSize = n => { var i, l; e.setPageSize(n ? ho : (i = (l = e.initialState) == null || (l = l.pagination) == null ? void 0 : l.pageSize) != null ? i : ho) }, e.setPageSize = n => { e.setPagination(i => { const l = Math.max(1, ft(n, i.pageSize)), o = i.pageSize * i.pageIndex, s = Math.floor(o / l); return { ...i, pageIndex: s, pageSize: l } }) }, e.setPageCount = n => e.setPagination(i => { var l; let o = ft(n, (l = e.options.pageCount) != null ? l : -1); return typeof o == "number" && (o = Math.max(-1, o)), { ...i, pageCount: o } }), e.getPageOptions = E(() => [e.getPageCount()], n => { let i = []; return n && n > 0 && (i = [...new Array(n)].fill(null).map((l, o) => o)), i }, M(e.options, "debugTable")), e.getCanPreviousPage = () => e.getState().pagination.pageIndex > 0, e.getCanNextPage = () => { const { pageIndex: n } = e.getState().pagination, i = e.getPageCount(); return i === -1 ? !0 : i === 0 ? !1 : n < i - 1 }, e.previousPage = () => e.setPageIndex(n => n - 1), e.nextPage = () => e.setPageIndex(n => n + 1), e.firstPage = () => e.setPageIndex(0), e.lastPage = () => e.setPageIndex(e.getPageCount() - 1), e.getPrePaginationRowModel = () => e.getExpandedRowModel(), e.getPaginationRowModel = () => (!e._getPaginationRowModel && e.options.getPaginationRowModel && (e._getPaginationRowModel = e.options.getPaginationRowModel(e)), e.options.manualPagination || !e._getPaginationRowModel ? e.getPrePaginationRowModel() : e._getPaginationRowModel()), e.getPageCount = () => { var n; return (n = e.options.pageCount) != null ? n : Math.ceil(e.getRowCount() / e.getState().pagination.pageSize) }, e.getRowCount = () => { var n; return (n = e.options.rowCount) != null ? n : e.getPrePaginationRowModel().rows.length } } }, vl = () => ({ top: [], bottom: [] }), Cg = { getInitialState: e => ({ rowPinning: vl(), ...e }), getDefaultOptions: e => ({ onRowPinningChange: ke("rowPinning", e) }), createRow: (e, t) => { e.pin = (r, n, i) => { const l = n ? e.getLeafRows().map(a => { let { id: u } = a; return u }) : [], o = i ? e.getParentRows().map(a => { let { id: u } = a; return u }) : [], s = new Set([...o, e.id, ...l]); t.setRowPinning(a => { var u, g; if (r === "bottom") { var h, p; return { top: ((h = a == null ? void 0 : a.top) != null ? h : []).filter(S => !(s != null && s.has(S))), bottom: [...((p = a == null ? void 0 : a.bottom) != null ? p : []).filter(S => !(s != null && s.has(S))), ...Array.from(s)] } } if (r === "top") { var y, P; return { top: [...((y = a == null ? void 0 : a.top) != null ? y : []).filter(S => !(s != null && s.has(S))), ...Array.from(s)], bottom: ((P = a == null ? void 0 : a.bottom) != null ? P : []).filter(S => !(s != null && s.has(S))) } } return { top: ((u = a == null ? void 0 : a.top) != null ? u : []).filter(S => !(s != null && s.has(S))), bottom: ((g = a == null ? void 0 : a.bottom) != null ? g : []).filter(S => !(s != null && s.has(S))) } }) }, e.getCanPin = () => { var r; const { enableRowPinning: n, enablePinning: i } = t.options; return typeof n == "function" ? n(e) : (r = n ?? i) != null ? r : !0 }, e.getIsPinned = () => { const r = [e.id], { top: n, bottom: i } = t.getState().rowPinning, l = r.some(s => n == null ? void 0 : n.includes(s)), o = r.some(s => i == null ? void 0 : i.includes(s)); return l ? "top" : o ? "bottom" : !1 }, e.getPinnedIndex = () => { var r, n; const i = e.getIsPinned(); if (!i) return -1; const l = (r = i === "top" ? t.getTopRows() : t.getBottomRows()) == null ? void 0 : r.map(o => { let { id: s } = o; return s }); return (n = l == null ? void 0 : l.indexOf(e.id)) != null ? n : -1 } }, createTable: e => { e.setRowPinning = t => e.options.onRowPinningChange == null ? void 0 : e.options.onRowPinningChange(t), e.resetRowPinning = t => { var r, n; return e.setRowPinning(t ? vl() : (r = (n = e.initialState) == null ? void 0 : n.rowPinning) != null ? r : vl()) }, e.getIsSomeRowsPinned = t => { var r; const n = e.getState().rowPinning; if (!t) { var i, l; return !!((i = n.top) != null && i.length || (l = n.bottom) != null && l.length) } return !!((r = n[t]) != null && r.length) }, e._getPinnedRows = (t, r, n) => { var i; return ((i = e.options.keepPinnedRows) == null || i ? (r ?? []).map(o => { const s = e.getRow(o, !0); return s.getIsAllParentsExpanded() ? s : null }) : (r ?? []).map(o => t.find(s => s.id === o))).filter(Boolean).map(o => ({ ...o, position: n })) }, e.getTopRows = E(() => [e.getRowModel().rows, e.getState().rowPinning.top], (t, r) => e._getPinnedRows(t, r, "top"), M(e.options, "debugRows")), e.getBottomRows = E(() => [e.getRowModel().rows, e.getState().rowPinning.bottom], (t, r) => e._getPinnedRows(t, r, "bottom"), M(e.options, "debugRows")), e.getCenterRows = E(() => [e.getRowModel().rows, e.getState().rowPinning.top, e.getState().rowPinning.bottom], (t, r, n) => { const i = new Set([...r ?? [], ...n ?? []]); return t.filter(l => !i.has(l.id)) }, M(e.options, "debugRows")) } }, Ag = { getInitialState: e => ({ rowSelection: {}, ...e }), getDefaultOptions: e => ({ onRowSelectionChange: ke("rowSelection", e), enableRowSelection: !0, enableMultiRowSelection: !0, enableSubRowSelection: !0 }), createTable: e => { e.setRowSelection = t => e.options.onRowSelectionChange == null ? void 0 : e.options.onRowSelectionChange(t), e.resetRowSelection = t => { var r; return e.setRowSelection(t ? {} : (r = e.initialState.rowSelection) != null ? r : {}) }, e.toggleAllRowsSelected = t => { e.setRowSelection(r => { t = typeof t < "u" ? t : !e.getIsAllRowsSelected(); const n = { ...r }, i = e.getPreGroupedRowModel().flatRows; return t ? i.forEach(l => { l.getCanSelect() && (n[l.id] = !0) }) : i.forEach(l => { delete n[l.id] }), n }) }, e.toggleAllPageRowsSelected = t => e.setRowSelection(r => { const n = typeof t < "u" ? t : !e.getIsAllPageRowsSelected(), i = { ...r }; return e.getRowModel().rows.forEach(l => { vo(i, l.id, n, !0, e) }), i }), e.getPreSelectedRowModel = () => e.getCoreRowModel(), e.getSelectedRowModel = E(() => [e.getState().rowSelection, e.getCoreRowModel()], (t, r) => Object.keys(t).length ? yl(e, r) : { rows: [], flatRows: [], rowsById: {} }, M(e.options, "debugTable")), e.getFilteredSelectedRowModel = E(() => [e.getState().rowSelection, e.getFilteredRowModel()], (t, r) => Object.keys(t).length ? yl(e, r) : { rows: [], flatRows: [], rowsById: {} }, M(e.options, "debugTable")), e.getGroupedSelectedRowModel = E(() => [e.getState().rowSelection, e.getSortedRowModel()], (t, r) => Object.keys(t).length ? yl(e, r) : { rows: [], flatRows: [], rowsById: {} }, M(e.options, "debugTable")), e.getIsAllRowsSelected = () => { const t = e.getFilteredRowModel().flatRows, { rowSelection: r } = e.getState(); let n = !!(t.length && Object.keys(r).length); return n && t.some(i => i.getCanSelect() && !r[i.id]) && (n = !1), n }, e.getIsAllPageRowsSelected = () => { const t = e.getPaginationRowModel().flatRows.filter(i => i.getCanSelect()), { rowSelection: r } = e.getState(); let n = !!t.length; return n && t.some(i => !r[i.id]) && (n = !1), n }, e.getIsSomeRowsSelected = () => { var t; const r = Object.keys((t = e.getState().rowSelection) != null ? t : {}).length; return r > 0 && r < e.getFilteredRowModel().flatRows.length }, e.getIsSomePageRowsSelected = () => { const t = e.getPaginationRowModel().flatRows; return e.getIsAllPageRowsSelected() ? !1 : t.filter(r => r.getCanSelect()).some(r => r.getIsSelected() || r.getIsSomeSelected()) }, e.getToggleAllRowsSelectedHandler = () => t => { e.toggleAllRowsSelected(t.target.checked) }, e.getToggleAllPageRowsSelectedHandler = () => t => { e.toggleAllPageRowsSelected(t.target.checked) } }, createRow: (e, t) => { e.toggleSelected = (r, n) => { const i = e.getIsSelected(); t.setRowSelection(l => { var o; if (r = typeof r < "u" ? r : !i, e.getCanSelect() && i === r) return l; const s = { ...l }; return vo(s, e.id, r, (o = n == null ? void 0 : n.selectChildren) != null ? o : !0, t), s }) }, e.getIsSelected = () => { const { rowSelection: r } = t.getState(); return vs(e, r) }, e.getIsSomeSelected = () => { const { rowSelection: r } = t.getState(); return yo(e, r) === "some" }, e.getIsAllSubRowsSelected = () => { const { rowSelection: r } = t.getState(); return yo(e, r) === "all" }, e.getCanSelect = () => { var r; return typeof t.options.enableRowSelection == "function" ? t.options.enableRowSelection(e) : (r = t.options.enableRowSelection) != null ? r : !0 }, e.getCanSelectSubRows = () => { var r; return typeof t.options.enableSubRowSelection == "function" ? t.options.enableSubRowSelection(e) : (r = t.options.enableSubRowSelection) != null ? r : !0 }, e.getCanMultiSelect = () => { var r; return typeof t.options.enableMultiRowSelection == "function" ? t.options.enableMultiRowSelection(e) : (r = t.options.enableMultiRowSelection) != null ? r : !0 }, e.getToggleSelectedHandler = () => { const r = e.getCanSelect(); return n => { var i; r && e.toggleSelected((i = n.target) == null ? void 0 : i.checked) } } } }, vo = (e, t, r, n, i) => { var l; const o = i.getRow(t, !0); r ? (o.getCanMultiSelect() || Object.keys(e).forEach(s => delete e[s]), o.getCanSelect() && (e[t] = !0)) : delete e[t], n && (l = o.subRows) != null && l.length && o.getCanSelectSubRows() && o.subRows.forEach(s => vo(e, s.id, r, n, i)) }; function yl(e, t) { const r = e.getState().rowSelection, n = [], i = {}, l = function (o, s) { return o.map(a => { var u; const g = vs(a, r); if (g && (n.push(a), i[a.id] = a), (u = a.subRows) != null && u.length && (a = { ...a, subRows: l(a.subRows) }), g) return a }).filter(Boolean) }; return { rows: l(t.rows), flatRows: n, rowsById: i } } function vs(e, t) { var r; return (r = t[e.id]) != null ? r : !1 } function yo(e, t, r) { var n; if (!((n = e.subRows) != null && n.length)) return !1; let i = !0, l = !1; return e.subRows.forEach(o => { if (!(l && !i) && (o.getCanSelect() && (vs(o, t) ? l = !0 : i = !1), o.subRows && o.subRows.length)) { const s = yo(o, t); s === "all" ? l = !0 : (s === "some" && (l = !0), i = !1) } }), i ? "all" : l ? "some" : !1 } const Po = /([0-9]+)/gm, Lg = (e, t, r) => cd(kt(e.getValue(r)).toLowerCase(), kt(t.getValue(r)).toLowerCase()), Eg = (e, t, r) => cd(kt(e.getValue(r)), kt(t.getValue(r))), Mg = (e, t, r) => ys(kt(e.getValue(r)).toLowerCase(), kt(t.getValue(r)).toLowerCase()), bg = (e, t, r) => ys(kt(e.getValue(r)), kt(t.getValue(r))), Ng = (e, t, r) => { const n = e.getValue(r), i = t.getValue(r); return n > i ? 1 : n < i ? -1 : 0 }, _g = (e, t, r) => ys(e.getValue(r), t.getValue(r)); function ys(e, t) { return e === t ? 0 : e > t ? 1 : -1 } function kt(e) { return typeof e == "number" ? isNaN(e) || e === 1 / 0 || e === -1 / 0 ? "" : String(e) : typeof e == "string" ? e : "" } function cd(e, t) { const r = e.split(Po).filter(Boolean), n = t.split(Po).filter(Boolean); for (; r.length && n.length;) { const i = r.shift(), l = n.shift(), o = parseInt(i, 10), s = parseInt(l, 10), a = [o, s].sort(); if (isNaN(a[0])) { if (i > l) return 1; if (l > i) return -1; continue } if (isNaN(a[1])) return isNaN(o) ? -1 : 1; if (o > s) return 1; if (s > o) return -1 } return r.length - n.length } const Mr = { alphanumeric: Lg, alphanumericCaseSensitive: Eg, text: Mg, textCaseSensitive: bg, datetime: Ng, basic: _g }, Dg = { getInitialState: e => ({ sorting: [], ...e }), getDefaultColumnDef: () => ({ sortingFn: "auto", sortUndefined: 1 }), getDefaultOptions: e => ({ onSortingChange: ke("sorting", e), isMultiSortEvent: t => t.shiftKey }), createColumn: (e, t) => { e.getAutoSortingFn = () => { const r = t.getFilteredRowModel().flatRows.slice(10); let n = !1; for (const i of r) { const l = i == null ? void 0 : i.getValue(e.id); if (Object.prototype.toString.call(l) === "[object Date]") return Mr.datetime; if (typeof l == "string" && (n = !0, l.split(Po).length > 1)) return Mr.alphanumeric } return n ? Mr.text : Mr.basic }, e.getAutoSortDir = () => { const r = t.getFilteredRowModel().flatRows[0]; return typeof (r == null ? void 0 : r.getValue(e.id)) == "string" ? "asc" : "desc" }, e.getSortingFn = () => { var r, n; if (!e) throw new Error; return Fi(e.columnDef.sortingFn) ? e.columnDef.sortingFn : e.columnDef.sortingFn === "auto" ? e.getAutoSortingFn() : (r = (n = t.options.sortingFns) == null ? void 0 : n[e.columnDef.sortingFn]) != null ? r : Mr[e.columnDef.sortingFn] }, e.toggleSorting = (r, n) => { const i = e.getNextSortingOrder(), l = typeof r < "u" && r !== null; t.setSorting(o => { const s = o == null ? void 0 : o.find(y => y.id === e.id), a = o == null ? void 0 : o.findIndex(y => y.id === e.id); let u = [], g, h = l ? r : i === "desc"; if (o != null && o.length && e.getCanMultiSort() && n ? s ? g = "toggle" : g = "add" : o != null && o.length && a !== o.length - 1 ? g = "replace" : s ? g = "toggle" : g = "replace", g === "toggle" && (l || i || (g = "remove")), g === "add") { var p; u = [...o, { id: e.id, desc: h }], u.splice(0, u.length - ((p = t.options.maxMultiSortColCount) != null ? p : Number.MAX_SAFE_INTEGER)) } else g === "toggle" ? u = o.map(y => y.id === e.id ? { ...y, desc: h } : y) : g === "remove" ? u = o.filter(y => y.id !== e.id) : u = [{ id: e.id, desc: h }]; return u }) }, e.getFirstSortDir = () => { var r, n; return ((r = (n = e.columnDef.sortDescFirst) != null ? n : t.options.sortDescFirst) != null ? r : e.getAutoSortDir() === "desc") ? "desc" : "asc" }, e.getNextSortingOrder = r => { var n, i; const l = e.getFirstSortDir(), o = e.getIsSorted(); return o ? o !== l && ((n = t.options.enableSortingRemoval) == null || n) && (!(r && (i = t.options.enableMultiRemove) != null) || i) ? !1 : o === "desc" ? "asc" : "desc" : l }, e.getCanSort = () => { var r, n; return ((r = e.columnDef.enableSorting) != null ? r : !0) && ((n = t.options.enableSorting) != null ? n : !0) && !!e.accessorFn }, e.getCanMultiSort = () => { var r, n; return (r = (n = e.columnDef.enableMultiSort) != null ? n : t.options.enableMultiSort) != null ? r : !!e.accessorFn }, e.getIsSorted = () => { var r; const n = (r = t.getState().sorting) == null ? void 0 : r.find(i => i.id === e.id); return n ? n.desc ? "desc" : "asc" : !1 }, e.getSortIndex = () => { var r, n; return (r = (n = t.getState().sorting) == null ? void 0 : n.findIndex(i => i.id === e.id)) != null ? r : -1 }, e.clearSorting = () => { t.setSorting(r => r != null && r.length ? r.filter(n => n.id !== e.id) : []) }, e.getToggleSortingHandler = () => { const r = e.getCanSort(); return n => { r && (n.persist == null || n.persist(), e.toggleSorting == null || e.toggleSorting(void 0, e.getCanMultiSort() ? t.options.isMultiSortEvent == null ? void 0 : t.options.isMultiSortEvent(n) : !1)) } } }, createTable: e => { e.setSorting = t => e.options.onSortingChange == null ? void 0 : e.options.onSortingChange(t), e.resetSorting = t => { var r, n; e.setSorting(t ? [] : (r = (n = e.initialState) == null ? void 0 : n.sorting) != null ? r : []) }, e.getPreSortedRowModel = () => e.getGroupedRowModel(), e.getSortedRowModel = () => (!e._getSortedRowModel && e.options.getSortedRowModel && (e._getSortedRowModel = e.options.getSortedRowModel(e)), e.options.manualSorting || !e._getSortedRowModel ? e.getPreSortedRowModel() : e._getSortedRowModel()) } }, Ig = [tg, Rg, hg, vg, ng, ig, xg, Tg, Dg, gg, kg, wg, Cg, Ag, Pg]; function Fg(e) { var t, r; const n = [...Ig, ...(t = e._features) != null ? t : []]; let i = { _features: n }; const l = i._features.reduce((p, y) => Object.assign(p, y.getDefaultOptions == null ? void 0 : y.getDefaultOptions(i)), {}), o = p => i.options.mergeOptions ? i.options.mergeOptions(l, p) : { ...l, ...p }; let a = { ...{}, ...(r = e.initialState) != null ? r : {} }; i._features.forEach(p => { var y; a = (y = p.getInitialState == null ? void 0 : p.getInitialState(a)) != null ? y : a }); const u = []; let g = !1; const h = { _features: n, options: { ...l, ...e }, initialState: a, _queue: p => { u.push(p), g || (g = !0, Promise.resolve().then(() => { for (; u.length;)u.shift()(); g = !1 }).catch(y => setTimeout(() => { throw y }))) }, reset: () => { i.setState(i.initialState) }, setOptions: p => { const y = ft(p, i.options); i.options = o(y) }, getState: () => i.options.state, setState: p => { i.options.onStateChange == null || i.options.onStateChange(p) }, _getRowId: (p, y, P) => { var S; return (S = i.options.getRowId == null ? void 0 : i.options.getRowId(p, y, P)) != null ? S : `${P ? [P.id, y].join(".") : y}` }, getCoreRowModel: () => (i._getCoreRowModel || (i._getCoreRowModel = i.options.getCoreRowModel(i)), i._getCoreRowModel()), getRowModel: () => i.getPaginationRowModel(), getRow: (p, y) => { let P = (y ? i.getPrePaginationRowModel() : i.getRowModel()).rowsById[p]; if (!P && (P = i.getCoreRowModel().rowsById[p], !P)) throw new Error; return P }, _getDefaultColumnDef: E(() => [i.options.defaultColumn], p => { var y; return p = (y = p) != null ? y : {}, { header: P => { const S = P.header.column.columnDef; return S.accessorKey ? S.accessorKey : S.accessorFn ? S.id : null }, cell: P => { var S, C; return (S = (C = P.renderValue()) == null || C.toString == null ? void 0 : C.toString()) != null ? S : null }, ...i._features.reduce((P, S) => Object.assign(P, S.getDefaultColumnDef == null ? void 0 : S.getDefaultColumnDef()), {}), ...p } }, M(e, "debugColumns")), _getColumnDefs: () => i.options.columns, getAllColumns: E(() => [i._getColumnDefs()], p => { const y = function (P, S, C) { return C === void 0 && (C = 0), P.map(m => { const f = eg(i, m, C, S), d = m; return f.columns = d.columns ? y(d.columns, f, C + 1) : [], f }) }; return y(p) }, M(e, "debugColumns")), getAllFlatColumns: E(() => [i.getAllColumns()], p => p.flatMap(y => y.getFlatColumns()), M(e, "debugColumns")), _getAllFlatColumnsById: E(() => [i.getAllFlatColumns()], p => p.reduce((y, P) => (y[P.id] = P, y), {}), M(e, "debugColumns")), getAllLeafColumns: E(() => [i.getAllColumns(), i._getOrderColumnsFn()], (p, y) => { let P = p.flatMap(S => S.getLeafColumns()); return y(P) }, M(e, "debugColumns")), getColumn: p => i._getAllFlatColumnsById()[p] }; Object.assign(i, h); for (let p = 0; p < i._features.length; p++) { const y = i._features[p]; y == null || y.createTable == null || y.createTable(i) } return i } function Ug() { return e => E(() => [e.options.data], t => { const r = { rows: [], flatRows: [], rowsById: {} }, n = function (i, l, o) { l === void 0 && (l = 0); const s = []; for (let u = 0; u < i.length; u++) { const g = rg(e, e._getRowId(i[u], u, o), i[u], u, l, void 0, o == null ? void 0 : o.id); if (r.flatRows.push(g), r.rowsById[g.id] = g, s.push(g), e.options.getSubRows) { var a; g.originalSubRows = e.options.getSubRows(i[u], u), (a = g.originalSubRows) != null && a.length && (g.subRows = n(g.originalSubRows, l + 1, g)) } } return s }; return r.rows = n(t), r }, M(e.options, "debugTable", "getRowModel", () => e._autoResetPageIndex())) } function jg(e) { const t = [], r = n => { var i; t.push(n), (i = n.subRows) != null && i.length && n.getIsExpanded() && n.subRows.forEach(r) }; return e.rows.forEach(r), { rows: t, flatRows: e.flatRows, rowsById: e.rowsById } } function Og(e) { return t => E(() => [t.getState().pagination, t.getPrePaginationRowModel(), t.options.paginateExpandedRows ? void 0 : t.getState().expanded], (r, n) => { if (!n.rows.length) return n; const { pageSize: i, pageIndex: l } = r; let { rows: o, flatRows: s, rowsById: a } = n; const u = i * l, g = u + i; o = o.slice(u, g); let h; t.options.paginateExpandedRows ? h = { rows: o, flatRows: s, rowsById: a } : h = jg({ rows: o, flatRows: s, rowsById: a }), h.flatRows = []; const p = y => { h.flatRows.push(y), y.subRows.length && y.subRows.forEach(p) }; return h.rows.forEach(p), h }, M(t.options, "debugTable")) } function zg() { return e => E(() => [e.getState().sorting, e.getPreSortedRowModel()], (t, r) => { if (!r.rows.length || !(t != null && t.length)) return r; const n = e.getState().sorting, i = [], l = n.filter(a => { var u; return (u = e.getColumn(a.id)) == null ? void 0 : u.getCanSort() }), o = {}; l.forEach(a => { const u = e.getColumn(a.id); u && (o[a.id] = { sortUndefined: u.columnDef.sortUndefined, invertSorting: u.columnDef.invertSorting, sortingFn: u.getSortingFn() }) }); const s = a => { const u = a.map(g => ({ ...g })); return u.sort((g, h) => { for (let y = 0; y < l.length; y += 1) { var p; const P = l[y], S = o[P.id], C = S.sortUndefined, m = (p = P == null ? void 0 : P.desc) != null ? p : !1; let f = 0; if (C) { const d = g.getValue(P.id), x = h.getValue(P.id), v = d === void 0, R = x === void 0; if (v || R) { if (C === "first") return v ? -1 : 1; if (C === "last") return v ? 1 : -1; f = v && R ? 0 : v ? C : -C } } if (f === 0 && (f = S.sortingFn(g, h, P.id)), f !== 0) return m && (f *= -1), S.invertSorting && (f *= -1), f } return g.index - h.index }), u.forEach(g => { var h; i.push(g), (h = g.subRows) != null && h.length && (g.subRows = s(g.subRows)) }), u }; return { rows: s(r.rows), flatRows: i, rowsById: r.rowsById } }, M(e.options, "debugTable", "getSortedRowModel", () => e._autoResetPageIndex())) }/**
* react-table
*
* Copyright (c) TanStack
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/function Na(e, t) { return e ? Vg(e) ? j.createElement(e, t) : e : null } function Vg(e) { return $g(e) || typeof e == "function" || Gg(e) } function $g(e) { return typeof e == "function" && (() => { const t = Object.getPrototypeOf(e); return t.prototype && t.prototype.isReactComponent })() } function Gg(e) { return typeof e == "object" && typeof e.$$typeof == "symbol" && ["react.memo", "react.forward_ref"].includes(e.$$typeof.description) } function Hg(e) { const t = { state: {}, onStateChange: () => { }, renderFallbackValue: null, ...e }, [r] = j.useState(() => ({ current: Fg(t) })), [n, i] = j.useState(() => r.current.initialState); return r.current.setOptions(l => ({ ...l, ...e, state: { ...n, ...e.state }, onStateChange: o => { i(o), e.onStateChange == null || e.onStateChange(o) } })), r.current } const Bg = { critical: { dot: "bg-red-500", text: "text-red-700 dark:text-red-300", ring: "bg-red-50 dark:bg-red-950/50 ring-1 ring-inset ring-red-300 dark:ring-red-800" }, high: { dot: "bg-orange-500", text: "text-orange-700 dark:text-orange-300", ring: "bg-orange-50 dark:bg-orange-950/50 ring-1 ring-inset ring-orange-300 dark:ring-orange-800" }, medium: { dot: "bg-amber-500", text: "text-amber-700 dark:text-amber-300", ring: "bg-amber-50 dark:bg-amber-950/50 ring-1 ring-inset ring-amber-300 dark:ring-amber-800" }, low: { dot: "bg-sky-500", text: "text-sky-700 dark:text-sky-300", ring: "bg-sky-50 dark:bg-sky-950/50 ring-1 ring-inset ring-sky-300 dark:ring-sky-800" }, none: { dot: "bg-emerald-500", text: "text-emerald-700 dark:text-emerald-300", ring: "bg-emerald-50 dark:bg-emerald-950/50 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-800" }, info: { dot: "bg-slate-400", text: "text-slate-600 dark:text-slate-400", ring: "bg-slate-100 dark:bg-slate-800/80 ring-1 ring-inset ring-slate-300 dark:ring-slate-700" } }; function Pl({ severity: e, label: t, className: r = "" }) { const n = Bg[e]; return c.jsxs("span", { className: `inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] font-semibold uppercase tracking-wide ${n.ring} ${n.text} ${r}`, children: [c.jsx("span", { className: `w-1.5 h-1.5 rounded-full flex-shrink-0 ${n.dot}` }), t] }) } const Wg = { critical: "#ef4444", high: "#f97316", medium: "#f59e0b", low: "#0ea5e9", none: "#10b981", info: "#94a3b8" }; function _a(e) { return { good: "none", warning: "medium", missing: "low", misaligned: "high", danger: "critical" }[e] ?? "info" } function qg(e) { return { 4: "critical", 3: "high", 2: "medium", 1: "low", 0: "none" }[e] ?? "none" } function Qg(e) { return { 4: "critical", 3: "high", 2: "medium", 1: "low", 0: "none" }[e] ?? "none" } function Kg({ text: e }) { const [t, r] = j.useState(!1); return c.jsx("button", { onClick: n => { n.stopPropagation(), navigator.clipboard.writeText(e).then(() => { r(!0), setTimeout(() => r(!1), 2e3) }) }, className: "ml-1 text-gray-300 hover:text-gray-600 dark:hover:text-gray-200 transition-colors", title: "Copy to clipboard", children: t ? c.jsx("svg", { className: "inline w-3.5 h-3.5 text-green-500", fill: "currentColor", viewBox: "0 0 20 20", children: c.jsx("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" }) }) : c.jsx("svg", { className: "inline w-3.5 h-3.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" }) }) }) } const Da = { good: "Optimal", warning: "Excess", missing: "Under-Privileged", misaligned: "Misaligned", danger: "Unmatched" }, Zg = { good: "No action needed", warning: "Remove excess permissions", missing: "Add required permissions", misaligned: "Review permission alignment", danger: "Investigate unmatched activities" }, Xg = { 4: "Critical", 3: "High", 2: "Medium", 1: "Low", 0: "None" }, Yg = { 4: "Critical", 3: "Warning", 2: "Low", 1: "Minimal", 0: "Normal" }, Sl = "inline-flex items-center px-1.5 py-0.5 text-[10px] font-medium rounded bg-slate-100 dark:bg-slate-800 text-slate-500 dark:text-slate-400 ring-1 ring-inset ring-slate-200 dark:ring-slate-700"; function Jg(e, t) { return e === "danger" ? "bg-red-50/60 dark:bg-red-950/15 hover:bg-red-100/70 dark:hover:bg-red-900/25" : e === "warning" ? "bg-amber-50/50 dark:bg-amber-950/15 hover:bg-amber-100/60 dark:hover:bg-amber-900/20" : e === "missing" ? "bg-sky-50/50 dark:bg-sky-950/15 hover:bg-sky-100/60 dark:hover:bg-sky-900/20" : e === "misaligned" ? "bg-orange-50/40 dark:bg-orange-950/10 hover:bg-orange-100/50 dark:hover:bg-orange-900/15" : t % 2 === 0 ? "bg-white dark:bg-slate-900 hover:bg-slate-50 dark:hover:bg-slate-800" : "bg-slate-50/50 dark:bg-slate-800/40 hover:bg-slate-100/60 dark:hover:bg-slate-700/50" } function Fn(e, t, r) {
const n = r ?? ""; if (!e.length) return c.jsx("span", { className: `font-semibold ${n}`, children: "0" }); const i = e.map(Kn), l = i.slice(0, 2), o = i.length - 2; return c.jsxs("div", {
children: [c.jsx("span", { className: `font-semibold ${n}`, children: e.length }), c.jsxs("div", {
className: `text-xs mt-1 text-right ${t}`, children: [l.map(s => c.jsx("div", { className: "truncate text-right", title: s, children: s }, s)), o > 0 && c.jsxs("div", {
className: "cursor-help text-right", title: i.slice(2).join(`
`), children: ["+", o, " more..."]
})]
})]
})
} function e0({ appData: e, filters: t, onShowDetails: r, onClearFilters: n }) { const [i, l] = j.useState([{ id: "maxPrivilegeLevel", desc: !0 }, { id: "throttlingSeverity", desc: !0 }]), [o, s] = j.useState(25), [a, u] = j.useState(0), [g, h] = j.useState({ missingPerms: !1, currentPerms: !1, optimalPerms: !1 }), [p, y] = j.useState(!1), P = j.useRef(null); j.useEffect(() => { function v(R) { P.current && !P.current.contains(R.target) && y(!1) } return p && document.addEventListener("mousedown", v), () => document.removeEventListener("mousedown", v) }, [p]); const S = { appName: "App Name", status: "Status", maxPrivilegeLevel: "Max Privilege", activityCount: "Activities", throttlingSeverity: "Throttling", excessPerms: "Excess Perms", missingPerms: "Missing Perms", currentPerms: "Current Perms", optimalPerms: "Optimal Perms" }, C = j.useMemo(() => e.map((v, R) => { const w = Yc(v), k = ms(v), _ = v.ThrottlingStats; return { index: R, appName: v.PrincipalName ?? "N/A", appId: v.PrincipalId ?? "N/A", status: k, maxPrivilegeLevel: w.maxLevel, maxPrivilegeScore: w.score, highAssignments: w.highAssignments, activityCount: V(v.Activity).length, throttlingSeverity: (_ == null ? void 0 : _.ThrottlingSeverity) ?? 0, throttlingStatus: (_ == null ? void 0 : _.ThrottlingStatus) ?? "Normal", total429: (_ == null ? void 0 : _.Total429Errors) ?? 0, throttleRate: (_ == null ? void 0 : _.ThrottleRate) ?? 0, excessPerms: V(v.ExcessPermissions), missingPerms: V(v.RequiredPermissions), currentPerms: V(v.CurrentPermissions), optimalPerms: V(v.OptimalPermissions) } }), [e]), m = j.useMemo(() => C.filter(v => { if (t.status && v.status !== t.status || t.activity === "yes" && v.activityCount === 0 || t.activity === "no" && v.activityCount > 0) return !1; if (t.throttling) { if (t.throttling === "throttled" && v.throttlingSeverity === 0) return !1; if (t.throttling !== "throttled" && v.throttlingSeverity !== Number(t.throttling)) return !1 } if (t.privilege) { if (t.privilege === "4" && v.maxPrivilegeLevel !== 4) return !1; if (t.privilege === "3plus" && v.maxPrivilegeLevel < 3) return !1; if (t.privilege === "2plus" && v.maxPrivilegeLevel < 2) return !1; if (t.privilege === "1" && v.maxPrivilegeLevel !== 1) return !1; if (t.privilege === "0" && v.maxPrivilegeLevel !== 0) return !1 } if (t.search) { const R = t.search.toLowerCase(), w = e[v.index]; return !!(v.appName.toLowerCase().includes(R) || v.appId.toLowerCase().includes(R) || v.currentPerms.some(k => Kn(k).toLowerCase().includes(R)) || v.optimalPerms.some(k => k.Permission.toLowerCase().includes(R)) || v.excessPerms.some(k => Kn(k).toLowerCase().includes(R)) || v.missingPerms.some(k => Kn(k).toLowerCase().includes(R)) || v.throttlingStatus.toLowerCase().includes(R) || V(w.Activity).some(k => (k.Uri ?? "").toLowerCase().includes(R) || (k.Method ?? "").toLowerCase().includes(R)) || V(w.UnmatchedActivities).some(k => (k.Path ?? k.Uri ?? "").toLowerCase().includes(R))) } return !0 }), [C, t, e]), f = j.useMemo(() => [{ id: "appName", accessorKey: "appName", header: "Application Name", cell: ({ row: v }) => { const R = e[v.original.index], w = R && V(R.UnmatchedActivities).length > 0, k = v.original.status, _ = Wg[_a(k)], N = V(R == null ? void 0 : R.AppRoles), re = N.some(Ht => Ht.PermissionType === "Application"), nt = N.some(Ht => Ht.PermissionType === "Delegated"), it = v.original.activityCount === 0; return c.jsxs("div", { className: "flex items-start gap-2", children: [c.jsx("span", { className: "mt-1.5 w-2 h-2 rounded-full flex-shrink-0", style: { backgroundColor: _ }, title: `Status: ${Da[k] ?? k}` }), c.jsxs("div", { className: "min-w-0", children: [c.jsxs("div", { className: "flex items-center gap-1 font-medium text-slate-900 dark:text-slate-100", children: [c.jsx("span", { children: v.original.appName }), w && c.jsx("svg", { className: "w-3.5 h-3.5 text-red-500 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" }) })] }), c.jsxs("div", { className: "text-xs text-slate-500 dark:text-slate-400 flex items-center", children: [c.jsx("span", { className: "font-mono truncate max-w-[140px]", title: v.original.appId, children: v.original.appId }), c.jsx(Kg, { text: v.original.appId })] }), (re || nt || it) && c.jsxs("div", { className: "flex flex-wrap gap-1 mt-1", children: [re && c.jsx("span", { className: Sl, children: "App" }), nt && c.jsx("span", { className: Sl, children: "Delegated" }), it && c.jsx("span", { className: Sl, children: "No activity" })] })] })] }) } }, { id: "status", accessorKey: "status", header: "Status", cell: ({ getValue: v }) => { const R = v(); return c.jsxs("div", { children: [c.jsx(Pl, { severity: _a(R), label: Da[R] ?? R }), c.jsx("div", { className: "text-xs text-slate-400 dark:text-slate-500 mt-1 leading-tight", children: Zg[R] })] }) } }, { id: "maxPrivilegeLevel", accessorKey: "maxPrivilegeLevel", header: "Max Privilege", sortingFn: (v, R) => { const w = v.original.maxPrivilegeLevel * 1e3 + v.original.maxPrivilegeScore, k = R.original.maxPrivilegeLevel * 1e3 + R.original.maxPrivilegeScore; return w - k }, cell: ({ row: v }) => { const R = v.original.maxPrivilegeLevel, w = `Score: ${v.original.maxPrivilegeScore} | High-risk perms: ${v.original.highAssignments}`; return c.jsx("div", { title: w, children: c.jsx(Pl, { severity: qg(R), label: Xg[R] ?? "None" }) }) } }, { id: "activityCount", accessorKey: "activityCount", header: "Activities", cell: ({ getValue: v }) => { const R = v(); return c.jsxs("div", { children: [c.jsx("span", { className: "font-semibold text-slate-800 dark:text-slate-200", children: R }), R > 0 ? c.jsxs("span", { className: "text-xs text-slate-500 dark:text-slate-400", children: [c.jsx("br", {}), "endpoints"] }) : c.jsxs("span", { className: "text-xs text-slate-400 dark:text-slate-500", children: [c.jsx("br", {}), "No activity"] })] }) } }, { id: "throttlingSeverity", accessorKey: "throttlingSeverity", header: "Throttling", cell: ({ row: v }) => { const R = v.original.throttlingSeverity; if (!v.original.total429 && R === 0) return c.jsx("span", { className: "text-xs text-slate-400 dark:text-slate-500", children: "—" }); const w = Yg[R] ?? "Normal"; return c.jsxs("div", { children: [c.jsx(Pl, { severity: Qg(R), label: w }), v.original.total429 > 0 && c.jsxs("div", { className: "text-xs text-slate-500 dark:text-slate-400 mt-1", children: [v.original.total429.toLocaleString(), " errors (", v.original.throttleRate, "%)"] })] }) } }, { id: "excessPerms", accessorKey: "excessPerms", header: "Excess Permissions", sortingFn: (v, R) => v.original.excessPerms.length - R.original.excessPerms.length, cell: ({ row: v }) => Fn(v.original.excessPerms, "text-red-500 dark:text-red-400", v.original.excessPerms.length > 0 ? "text-red-600 dark:text-red-400" : "text-green-600 dark:text-green-400") }, { id: "missingPerms", accessorKey: "missingPerms", header: "Missing Permissions", sortingFn: (v, R) => v.original.missingPerms.length - R.original.missingPerms.length, cell: ({ row: v }) => Fn(v.original.missingPerms, "text-yellow-600 dark:text-yellow-400", v.original.missingPerms.length > 0 ? "text-yellow-600 dark:text-yellow-400" : "text-green-600 dark:text-green-400") }, { id: "currentPerms", accessorKey: "currentPerms", header: "Current Permissions", sortingFn: (v, R) => v.original.currentPerms.length - R.original.currentPerms.length, cell: ({ row: v }) => Fn(v.original.currentPerms, "text-gray-500 dark:text-gray-400") }, { id: "optimalPerms", accessorKey: "optimalPerms", header: "Optimal Permissions", sortingFn: (v, R) => v.original.optimalPerms.length - R.original.optimalPerms.length, cell: ({ row: v }) => Fn(v.original.optimalPerms, "text-green-600 dark:text-green-400", "text-green-600 dark:text-green-400") }], [r]), d = Hg({ data: m, columns: f, state: { sorting: i, pagination: { pageIndex: a, pageSize: o }, columnVisibility: g }, onSortingChange: l, onColumnVisibilityChange: h, onPaginationChange: v => { if (typeof v == "function") { const R = v({ pageIndex: a, pageSize: o }); u(R.pageIndex), s(R.pageSize) } }, getCoreRowModel: Ug(), getSortedRowModel: zg(), getPaginationRowModel: Og(), manualPagination: !1 }), x = "px-4 py-3 text-left text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider cursor-pointer select-none hover:bg-slate-100 dark:hover:bg-slate-700/50 bg-slate-50 dark:bg-slate-800/60 transition-colors"; return c.jsxs("div", { className: "bg-white dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 p-3 sm:p-5 transition-colors duration-200", children: [c.jsxs("div", { className: "flex flex-wrap justify-between items-center mb-4 gap-2", children: [c.jsx("h2", { className: "text-lg sm:text-xl font-bold text-gray-800 dark:text-gray-100", children: "Application Permission Analysis" }), c.jsxs("div", { className: "flex flex-wrap items-center gap-2 ml-auto", children: [c.jsxs("div", { className: "flex items-center gap-1", children: [c.jsx("select", { value: o, onChange: v => { s(Number(v.target.value)), u(0) }, className: "cursor-pointer border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200 rounded p-1 text-sm", children: [10, 25, 50, 100].map(v => c.jsx("option", { value: v, children: v }, v)) }), c.jsx("label", { className: "text-sm text-gray-700 dark:text-gray-300", children: "/ page" })] }), c.jsxs("div", { className: "relative", ref: P, children: [c.jsxs("button", { onClick: () => y(v => !v), className: "flex items-center gap-1.5 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200 text-gray-700 rounded px-2.5 py-1 text-sm hover:bg-gray-50 dark:hover:bg-gray-600 transition-colors", children: [c.jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 10h18M3 14h18M10 6h4M10 18h4" }) }), "Columns"] }), p && c.jsx("div", { className: "absolute right-0 top-full mt-1 z-30 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-xl p-3 min-w-[170px]", children: d.getAllLeafColumns().map(v => c.jsxs("label", { className: "flex items-center gap-2 py-1 text-sm cursor-pointer hover:text-blue-600 dark:hover:text-blue-400", children: [c.jsx("input", { type: "checkbox", checked: v.getIsVisible(), onChange: v.getToggleVisibilityHandler(), className: "rounded" }), S[v.id] ?? v.id] }, v.id)) })] }), c.jsx("button", { onClick: () => td(e), className: "bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700 text-white font-semibold py-1.5 px-3 rounded-lg transition-colors duration-200 text-sm", children: "Export CSV" })] })] }), c.jsx("div", { className: "overflow-x-auto", children: c.jsxs("table", { className: "min-w-full", children: [c.jsx("thead", { className: "bg-gray-50 dark:bg-gray-700 sticky top-0 z-10", children: d.getHeaderGroups().map(v => c.jsx("tr", { children: v.headers.map(R => c.jsxs("th", { className: x, onClick: R.column.getToggleSortingHandler(), children: [Na(R.column.columnDef.header, R.getContext()), R.column.getIsSorted() === "asc" ? " ↑" : R.column.getIsSorted() === "desc" ? " ↓" : ""] }, R.id)) }, v.id)) }), c.jsxs("tbody", { children: [d.getRowModel().rows.map((v, R) => c.jsx("tr", { onClick: () => r(v.original.index), className: `border-b dark:border-gray-600 cursor-pointer transition-colors duration-100 ${Jg(v.original.status, R)}`, children: v.getVisibleCells().map(w => c.jsx("td", { className: "px-4 py-3 text-sm text-gray-700 dark:text-gray-300", children: Na(w.column.columnDef.cell, w.getContext()) }, w.id)) }, v.id)), m.length === 0 && c.jsx("tr", { children: c.jsx("td", { colSpan: f.length, className: "px-4 py-12 text-center", children: c.jsxs("div", { className: "flex flex-col items-center gap-3", children: [c.jsx("svg", { className: "w-10 h-10 text-gray-300 dark:text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), c.jsx("p", { className: "text-gray-500 dark:text-gray-400 font-medium", children: "No applications match the current filters." }), c.jsx("button", { onClick: n, className: "text-sm text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300 underline", children: "Clear all filters" })] }) }) })] })] }) }), c.jsxs("div", { className: "flex items-center justify-between mt-4 text-sm text-gray-700 dark:text-gray-300", children: [c.jsxs("span", { children: ["Showing ", m.length === 0 ? 0 : a * o + 1, "–", Math.min((a + 1) * o, m.length), " of ", m.length, " entries", d.getPageCount() > 1 && c.jsxs("span", { className: "ml-2 text-gray-400 dark:text-gray-500", children: ["(Page ", a + 1, " of ", d.getPageCount(), ")"] })] }), c.jsxs("div", { className: "flex gap-1", children: [c.jsx("button", { onClick: () => u(0), disabled: !d.getCanPreviousPage(), className: "px-2 py-1 rounded border dark:border-gray-600 disabled:opacity-40", children: "«" }), c.jsx("button", { onClick: () => u(v => v - 1), disabled: !d.getCanPreviousPage(), className: "px-2 py-1 rounded border dark:border-gray-600 disabled:opacity-40", children: "‹" }), Array.from({ length: Math.min(5, d.getPageCount()) }, (v, R) => { const k = Math.max(0, Math.min(a - 2, d.getPageCount() - 5)) + R; return c.jsx("button", { onClick: () => u(k), className: `px-2 py-1 rounded border dark:border-gray-600 ${k === a ? "bg-blue-500 text-white border-blue-500" : ""}`, children: k + 1 }, k) }), c.jsx("button", { onClick: () => u(v => v + 1), disabled: !d.getCanNextPage(), className: "px-2 py-1 rounded border dark:border-gray-600 disabled:opacity-40", children: "›" }), c.jsx("button", { onClick: () => u(d.getPageCount() - 1), disabled: !d.getCanNextPage(), className: "px-2 py-1 rounded border dark:border-gray-600 disabled:opacity-40", children: "»" })] })] })] }) } function dd({ type: e }) { const t = { Delegated: "bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200", Application: "bg-purple-100 dark:bg-purple-900 text-purple-800 dark:text-purple-200", Unknown: "bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400" }; return c.jsx("span", { className: `inline-block ml-2 px-2 py-0.5 text-xs font-semibold rounded ${t[e] ?? t.Unknown}`, children: e }) } function pd({ permission: e, level: t }) { const r = Hf(e, t); return c.jsx("span", { className: `inline-block ml-1 px-1.5 py-0.5 text-xs font-bold rounded ${Gf(r)}`, children: r }) } const t0 = { GET: "bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-300", POST: "bg-blue-100 dark:bg-blue-900/50 text-blue-800 dark:text-blue-300", PATCH: "bg-yellow-100 dark:bg-yellow-900/50 text-yellow-800 dark:text-yellow-300", PUT: "bg-orange-100 dark:bg-orange-900/50 text-orange-800 dark:text-orange-300", DELETE: "bg-red-100 dark:bg-red-900/50 text-red-800 dark:text-red-300" }; function So({ method: e }) { return c.jsx("span", { className: `inline-block px-1.5 py-0.5 text-xs font-bold rounded font-mono ${t0[e] ?? "bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300"}`, children: e }) } function r0({ app: e }) { var o; const t = V(e.ExcessPermissions).length, r = V(e.RequiredPermissions).length, n = V(e.UnmatchedActivities).length, i = ((o = e.ThrottlingStats) == null ? void 0 : o.ThrottlingSeverity) ?? 0, l = []; return t > 0 ? l.push({ label: `${t} excess permission${t > 1 ? "s" : ""}`, color: "bg-red-100 dark:bg-red-900/40 text-red-700 dark:text-red-300 border border-red-300 dark:border-red-700" }) : l.push({ label: "No excess permissions", color: "bg-green-100 dark:bg-green-900/40 text-green-700 dark:text-green-300 border border-green-300 dark:border-green-700" }), r > 0 && l.push({ label: `${r} missing permission${r > 1 ? "s" : ""}`, color: "bg-yellow-100 dark:bg-yellow-900/40 text-yellow-700 dark:text-yellow-300 border border-yellow-300 dark:border-yellow-700" }), n > 0 && l.push({ label: `${n} unmatched activit${n > 1 ? "ies" : "y"}`, color: "bg-red-100 dark:bg-red-900/40 text-red-700 dark:text-red-300 border border-red-300 dark:border-red-700" }), i >= 4 ? l.push({ label: "Throttling: Critical", color: "bg-red-600 text-white border border-red-700" }) : i === 3 ? l.push({ label: "Throttling: Warning", color: "bg-orange-100 dark:bg-orange-900/40 text-orange-700 dark:text-orange-300 border border-orange-300 dark:border-orange-700" }) : i === 2 && l.push({ label: "Throttling: Low", color: "bg-yellow-100 dark:bg-yellow-900/40 text-yellow-700 dark:text-yellow-300 border border-yellow-300 dark:border-yellow-700" }), e.MatchedAllActivity || l.push({ label: "Unresolved API calls", color: "bg-orange-100 dark:bg-orange-900/40 text-orange-700 dark:text-orange-300 border border-orange-300 dark:border-orange-700" }), c.jsx("div", { className: "flex flex-wrap gap-2 py-3 border-b dark:border-gray-600", children: l.map((s, a) => c.jsx("span", { className: `px-2.5 py-1 rounded-full text-xs font-semibold ${s.color}`, children: s.label }, a)) }) } function n0({ app: e }) { const t = Yc(e), r = { 4: "Critical", 3: "High", 2: "Medium", 1: "Low", 0: "None" }, n = { 4: "text-red-600 dark:text-red-400", 3: "text-orange-600 dark:text-orange-400", 2: "text-yellow-600 dark:text-yellow-500", 1: "text-blue-500 dark:text-blue-400", 0: "text-green-600 dark:text-green-400" }, i = [{ label: "App Roles", value: e.AppRoleCount ?? 0, color: "text-gray-800 dark:text-gray-100" }, { label: "Max Privilege", value: r[t.maxLevel] ?? String(t.maxLevel), color: n[t.maxLevel] ?? "text-gray-800 dark:text-gray-100" }, { label: "Privilege Score", value: t.score, color: "text-gray-800 dark:text-gray-100" }, { label: "Activities Matched", value: e.MatchedAllActivity ? "All" : "Partial", color: e.MatchedAllActivity ? "text-green-600 dark:text-green-400" : "text-orange-600 dark:text-orange-400" }]; return c.jsxs("div", { className: "border-b dark:border-gray-600 pb-4", children: [c.jsx("h4", { className: "font-bold text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400 mb-3", children: "Application Overview" }), c.jsx("div", { className: "grid grid-cols-2 sm:grid-cols-4 gap-3 mb-3", children: i.map(l => c.jsxs("div", { className: "bg-gray-50 dark:bg-gray-700/50 rounded-lg p-3 text-center", children: [c.jsx("div", { className: `text-xl font-bold ${l.color}`, children: l.value }), c.jsx("div", { className: "text-xs text-gray-500 dark:text-gray-400 mt-0.5", children: l.label })] }, l.label)) })] }) } function i0({ ts: e }) { const [t, r] = j.useState(!1), n = { 4: c.jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold rounded bg-red-600 text-white", children: "Critical" }), 3: c.jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold rounded bg-orange-500 text-white", children: "Warning" }), 2: c.jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold rounded bg-yellow-500 text-gray-800", children: "Low" }), 1: c.jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold rounded bg-blue-500 text-white", children: "Minimal" }), 0: c.jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold rounded bg-green-500 text-white", children: "Normal" }) }, i = { Critical: "text-red-600 dark:text-red-400 font-bold", Warning: "text-orange-600 dark:text-orange-400 font-semibold", Low: "text-yellow-600 dark:text-yellow-400", Minimal: "text-blue-500 dark:text-blue-400" }, l = [["Status", c.jsx("span", { className: i[e.ThrottlingStatus ?? ""] ?? "text-green-600 dark:text-green-400", children: e.ThrottlingStatus })], ["Severity", `${e.ThrottlingSeverity ?? 0}/4`], ["Total Requests", (e.TotalRequests ?? 0).toLocaleString()], ["Successful Requests", (e.SuccessfulRequests ?? 0).toLocaleString()], ["429 Errors", c.jsx("span", { className: "text-red-600 dark:text-red-400 font-bold", children: (e.Total429Errors ?? 0).toLocaleString() })], ["Throttle Rate", c.jsxs("span", { className: "text-red-600 dark:text-red-400 font-bold", children: [e.ThrottleRate ?? 0, "%"] })], ["Client Errors (4xx)", (e.TotalClientErrors ?? 0).toLocaleString()], ["Server Errors (5xx)", (e.TotalServerErrors ?? 0).toLocaleString()], ["Success Rate", c.jsxs("span", { className: "text-green-600 dark:text-green-400", children: [e.SuccessRate ?? 0, "%"] })], ["Error Rate", `${e.ErrorRate ?? 0}%`]]; return e.FirstOccurrence && l.push(["First Seen", new Date(e.FirstOccurrence).toLocaleString()]), e.LastOccurrence && l.push(["Last Seen", new Date(e.LastOccurrence).toLocaleString()]), c.jsxs("div", { className: "border-b dark:border-gray-600 pb-4 bg-purple-50 dark:bg-purple-900/30 p-4 rounded-lg", children: [c.jsxs("button", { onClick: () => r(!t), className: "flex items-center gap-2 w-full text-left", children: [c.jsx("span", { className: `inline-block transition-transform text-purple-400 dark:text-purple-300 ${t ? "rotate-90" : ""}`, children: "▶" }), c.jsx("span", { className: "font-bold text-xs uppercase tracking-wider text-purple-600 dark:text-purple-300", children: "Throttling Statistics" }), c.jsx("span", { className: "ml-1", children: n[e.ThrottlingSeverity ?? 0] })] }), t && c.jsx("div", { className: "grid grid-cols-2 gap-2 text-sm dark:text-gray-300 mt-3", children: l.map(([o, s]) => c.jsxs("div", { children: [c.jsxs("span", { className: "font-semibold", children: [o, ":"] }), " ", s] }, o)) })] }) } function l0({ app: e }) { const t = V(e.CurrentPermissions), r = V(e.ExcessPermissions), n = V(e.RequiredPermissions), i = V(e.OptimalPermissions); if (t.length === 0 && r.length === 0 && n.length === 0 && i.length === 0) return null; const l = d => typeof d == "string" ? d : d.Permission, o = d => typeof d == "string" ? void 0 : d, s = (d, x) => `${d.toLowerCase()}|${x.toLowerCase()}`, a = new Set(r.map(l)), u = new Set(t.map(d => { var R; const x = l(d), v = ((R = o(d)) == null ? void 0 : R.ScopeType) ?? qt(e, x); return s(x, v) })), g = new Set(n.map(d => { var R; const x = l(d), v = ((R = o(d)) == null ? void 0 : R.ScopeType) ?? qt(e, x); return s(x, v) })), h = []; t.forEach(d => { const x = l(d), v = o(d), R = (v == null ? void 0 : v.ScopeType) ?? qt(e, x); h.push({ name: x, tag: a.has(x) ? "remove" : "keep", scopeType: R, perm: v }) }), n.forEach(d => { const x = l(d), v = o(d), R = (v == null ? void 0 : v.ScopeType) ?? qt(e, x); h.push({ name: x, tag: "add", scopeType: R, perm: v }) }), i.forEach(d => { const x = d.Permission, v = d.ScopeType ?? qt(e, x); !u.has(s(x, v)) && !g.has(s(x, v)) && h.push({ name: x, tag: "add", scopeType: v, perm: d }) }); const p = { remove: 0, keep: 1, add: 2 }; h.sort((d, x) => p[d.tag] - p[x.tag]); const y = { remove: "bg-red-100 dark:bg-red-900/40 text-red-700 dark:text-red-300 border border-red-300 dark:border-red-700", keep: "bg-gray-100 dark:bg-gray-700/60 text-gray-600 dark:text-gray-300 border border-gray-300 dark:border-gray-600", add: "bg-yellow-100 dark:bg-yellow-900/40 text-yellow-700 dark:text-yellow-300 border border-yellow-300 dark:border-yellow-700" }, P = { remove: "− remove", keep: "✓ keep", add: "+ add" }, S = { remove: "bg-red-50 dark:bg-red-900/10", keep: "", add: "bg-yellow-50 dark:bg-yellow-900/10" }, C = h.filter(d => d.tag === "remove").length, m = h.filter(d => d.tag === "add").length, f = h.filter(d => d.tag === "keep").length; return c.jsxs("div", { className: "border-b dark:border-gray-600 pb-4", children: [c.jsx("h4", { className: "font-bold text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400 mb-1", children: "Permission Changes" }), c.jsxs("p", { className: "text-xs text-gray-400 dark:text-gray-500 mb-3", children: [C, " to remove · ", m, " to add · ", f, " to keep"] }), c.jsx("div", { className: "rounded-lg border dark:border-gray-600 overflow-hidden text-sm", children: h.map((d, x) => { var v; return c.jsxs("div", { className: `flex items-center gap-2 px-3 py-2 border-b last:border-b-0 dark:border-gray-600 ${S[d.tag]}`, children: [c.jsx("span", { className: `shrink-0 px-1.5 py-0.5 rounded text-xs font-semibold ${y[d.tag]}`, children: P[d.tag] }), c.jsx("span", { className: "font-mono text-xs flex-1 dark:text-gray-200", children: d.name }), c.jsx(dd, { type: d.scopeType }), c.jsx(pd, { permission: d.perm, level: (v = d.perm) == null ? void 0 : v.PrivilegeLevel })] }, x) }) })] }) } function o0({ perm: e, scopeType: t, activities: r }) { const [n, i] = j.useState(!1); return c.jsxs("div", { className: "mb-3 bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800", children: [c.jsxs("div", { className: "font-medium text-green-700 dark:text-green-300 text-sm", children: [e.Permission, c.jsx(dd, { type: t }), c.jsx(pd, { permission: e, level: e.PrivilegeLevel }), c.jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400 ml-1", children: ["(covers ", e.ActivitiesCovered, " activit", e.ActivitiesCovered === 1 ? "y" : "ies", ")"] })] }), r.length > 0 && c.jsxs("div", { className: "mt-2 ml-2", children: [c.jsxs("button", { onClick: () => i(!n), className: "flex items-center gap-1 text-xs font-semibold text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200", children: [c.jsx("span", { className: `inline-block transition-transform ${n ? "rotate-90" : ""}`, children: "▶" }), "Covered Endpoints (", r.length, ")"] }), n && c.jsx("ul", { className: "text-xs space-y-1 text-gray-600 dark:text-gray-300 mt-2 ml-3", children: r.map((l, o) => { const s = l.Method ?? "GET", a = l.Path ?? l.Endpoint ?? l.Uri ?? "", u = l.Version ?? "", g = u ? `https://graph.microsoft.com/${u}${a}` : a; return c.jsxs("li", { className: "font-mono flex items-center gap-1.5", children: [c.jsx(So, { method: s }), c.jsx("span", { children: g })] }, o) }) })] })] }) } function s0({ perms: e, app: t }) { return e.length ? c.jsxs("div", { className: "border-b dark:border-gray-600 pb-4", children: [c.jsxs("h4", { className: "font-bold text-xs uppercase tracking-wider text-green-600 dark:text-green-400 mb-3", children: ["Optimal Permissions ", c.jsxs("span", { className: "text-gray-400 dark:text-gray-500 font-normal normal-case", children: ["(", e.length, ")"] })] }), e.map((r, n) => c.jsx(o0, { perm: r, scopeType: r.ScopeType ?? qt(t, r.Permission), activities: V(r.Activities) }, n))] }) : null } function a0({ activities: e, unmatched: t }) { const r = new Set(t.map(n => n.Path ?? n.Uri ?? "")); return c.jsxs("div", { className: "space-y-4", children: [e.length > 0 && c.jsxs("div", { children: [c.jsxs("h4", { className: "font-bold text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400 mb-3", children: ["API Activities ", c.jsxs("span", { className: "font-normal normal-case", children: ["(", e.length, ")"] })] }), c.jsx("div", { className: "rounded-lg border dark:border-gray-600 overflow-hidden", children: c.jsxs("table", { className: "min-w-full text-sm dark:text-gray-300", children: [c.jsx("thead", { className: "bg-gray-50 dark:bg-gray-700 sticky top-0", children: c.jsxs("tr", { children: [c.jsx("th", { className: "px-3 py-2 text-left text-xs font-semibold uppercase tracking-wider w-24", children: "Method" }), c.jsx("th", { className: "px-3 py-2 text-left text-xs font-semibold uppercase tracking-wider", children: "Endpoint" })] }) }), c.jsx("tbody", { children: e.map((n, i) => { const l = r.has(n.Path ?? n.Uri ?? ""); return c.jsxs("tr", { className: `border-b dark:border-gray-600 last:border-b-0 ${l ? "bg-red-50 dark:bg-red-900/20" : i % 2 !== 0 ? "bg-gray-50/50 dark:bg-gray-700/20" : ""}`, children: [c.jsx("td", { className: "px-3 py-2", children: c.jsx(So, { method: n.Method ?? "GET" }) }), c.jsxs("td", { className: "px-3 py-2 font-mono text-xs break-all", children: [n.Uri, l && c.jsx("span", { className: "ml-2 text-red-500 font-semibold text-xs", children: "⚠ unmatched" })] })] }, i) }) })] }) })] }), t.length > 0 && c.jsxs("div", { className: "bg-red-50 dark:bg-red-900/30 p-4 rounded-lg border border-red-200 dark:border-red-800", children: [c.jsxs("h4", { className: "font-bold text-xs uppercase tracking-wider text-red-600 dark:text-red-400 mb-2", children: ["Unmatched Activities ", c.jsxs("span", { className: "font-normal normal-case", children: ["(", t.length, ")"] })] }), c.jsx("p", { className: "text-xs text-red-500 dark:text-red-400 mb-3", children: "These endpoints could not be mapped to known Graph API paths — the least-privilege permissions cannot be determined." }), c.jsx("ul", { className: "space-y-1.5", children: t.map((n, i) => c.jsxs("li", { className: "flex items-center gap-2 text-sm text-red-700 dark:text-red-400", children: [c.jsx(So, { method: n.Method ?? "GET" }), c.jsx("span", { className: "font-mono text-xs break-all", children: n.Path ?? n.Uri })] }, i)) })] }), e.length === 0 && t.length === 0 && c.jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: "No activity recorded in the analysis period." })] }) } function u0({ app: e, onClose: t }) { if (j.useEffect(() => { document.body.style.overflow = "hidden"; function l(o) { o.key === "Escape" && t() } return document.addEventListener("keydown", l), () => { document.body.style.overflow = "", document.removeEventListener("keydown", l) } }, [t]), !e) return null; const r = V(e.Activity), n = V(e.UnmatchedActivities), i = V(e.OptimalPermissions); return c.jsx("div", { className: "fixed inset-0 bg-gray-600 dark:bg-gray-900 bg-opacity-50 dark:bg-opacity-70 overflow-y-auto h-full w-full z-50 transition-colors duration-200", onClick: l => { l.target === l.currentTarget && t() }, children: c.jsxs("div", { className: "relative top-4 mx-auto p-5 border border-gray-300 dark:border-gray-600 w-11/12 max-w-[90%] shadow-lg rounded-lg bg-white dark:bg-gray-800 transition-colors duration-200", style: { maxHeight: "92vh" }, children: [c.jsxs("div", { className: "flex justify-between items-start mb-2", children: [c.jsxs("div", { children: [c.jsx("h3", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: e.PrincipalName }), c.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-0.5", children: e.PrincipalId })] }), c.jsx("button", { onClick: t, className: "text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-3xl font-bold leading-none ml-4 shrink-0", title: "Close (Esc)", children: "×" })] }), c.jsx(r0, { app: e }), c.jsxs("div", { className: "overflow-y-auto dark:text-gray-200 space-y-5 pt-4", style: { maxHeight: "calc(92vh - 140px)" }, children: [c.jsx(n0, { app: e }), e.ThrottlingStats && c.jsx(i0, { ts: e.ThrottlingStats }), c.jsx(l0, { app: e }), c.jsx(s0, { perms: i, app: e }), (r.length > 0 || n.length > 0) && c.jsx(a0, { activities: r, unmatched: n })] })] }) }) } const Ia = "Sample Report - Contoso Tenant", Fa = "aaaaaaaa-demo-demo-demo-aaaaaaaaaaaa", Ua = "Contoso (Sample)", ja = "2026-05-04 12:00:00", Oa = "[{\"PrincipalId\":\"aaaaaaaa-0001-0001-0001-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso SSO App\",\"AppRoleCount\":3,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0002-0002-0002-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Directory Sync\",\"AppRoleCount\":4,\"AppRoles\":[{\"appRoleId\":\"7ab1d382-f21e-4acd-a863-ba3e13f7da61\",\"FriendlyName\":\"Directory.Read.All\",\"PermissionType\":\"Application\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":null},{\"appRoleId\":\"df021288-bdef-4463-88db-98f22de89214\",\"FriendlyName\":\"User.Read.All\",\"PermissionType\":\"Application\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":null},{\"appRoleId\":\"a154be20-db9c-4678-8ab7-66f6cc099a59\",\"FriendlyName\":\"User.Read.All\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"}],\"Activity\":[{\"Method\":\"GET\",\"Uri\":\"https://graph.microsoft.com/v1.0/applications/{id}\",\"Scheme\":\"Application\"},{\"Method\":\"GET\",\"Uri\":\"https://graph.microsoft.com/v1.0/servicePrincipals/{id}\",\"Scheme\":\"Application\"},{\"Method\":\"GET\",\"Uri\":\"https://graph.microsoft.com/v1.0/users\",\"Scheme\":\"Application\"}],\"ThrottlingStats\":{\"TotalRequests\":445,\"SuccessfulRequests\":183,\"Total429Errors\":0,\"TotalClientErrors\":262,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":58.88,\"SuccessRate\":41.12,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"Normal\",\"FirstOccurrence\":\"2026-04-28T19:57:32Z\",\"LastOccurrence\":\"2026-05-03T18:56:45Z\"},\"ActivityPermissions\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/applications/{id}\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/applications/{id}\",\"MatchedEndpoint\":\"/applications/{id}\",\"LeastPrivilegedPermissions\":{\"Permission\":\"Application.Read.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true},{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/servicePrincipals/{id}\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/servicePrincipals/{id}\",\"MatchedEndpoint\":\"/servicePrincipals/{id}\",\"LeastPrivilegedPermissions\":{\"Permission\":\"Application.Read.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true},{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/users\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/users\",\"MatchedEndpoint\":\"/users\",\"LeastPrivilegedPermissions\":{\"Permission\":\"User.ReadBasic.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true}],\"OptimalPermissions\":[{\"Permission\":\"User.ReadBasic.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\",\"ActivitiesCovered\":1,\"Activities\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/users\",\"Uri\":\"https://graph.microsoft.com/v1.0/users\"}]},{\"Permission\":\"Application.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\",\"ActivitiesCovered\":2,\"Activities\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/applications/{id}\",\"Uri\":\"https://graph.microsoft.com/v1.0/applications/{id}\"},{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/servicePrincipals/{id}\",\"Uri\":\"https://graph.microsoft.com/v1.0/servicePrincipals/{id}\"}]}],\"UnmatchedActivities\":null,\"CurrentPermissions\":[{\"Permission\":\"Directory.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"},{\"Permission\":\"User.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":4,\"RiskLabel\":\"Critical\"},{\"Permission\":\"User.Read.All\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"ExcessPermissions\":[{\"Permission\":\"Directory.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"},{\"Permission\":\"User.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":4,\"RiskLabel\":\"Critical\"},{\"Permission\":\"User.Read.All\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"RequiredPermissions\":[{\"Permission\":\"Application.Read.All\",\"ScopeType\":\"Application\"}],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0003-0003-0003-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Identity Provider\",\"AppRoleCount\":4,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0004-0004-0004-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso HR Portal\",\"AppRoleCount\":5,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"7427e0e9-2fba-42fe-b0c0-848c9e6a8182\",\"FriendlyName\":\"offline_access\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0005-0005-0005-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso BI Connector\",\"AppRoleCount\":5,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"7427e0e9-2fba-42fe-b0c0-848c9e6a8182\",\"FriendlyName\":\"offline_access\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0006-0006-0006-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso SharePoint Archiver\",\"AppRoleCount\":6,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"7427e0e9-2fba-42fe-b0c0-848c9e6a8182\",\"FriendlyName\":\"offline_access\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"883ea226-0bf2-4a8f-9f9d-92c9162a727d\",\"FriendlyName\":\"Sites.Selected\",\"PermissionType\":\"Application\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":null},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"}],\"Activity\":[{\"Method\":\"GET\",\"Uri\":\"https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items\",\"Scheme\":\"Application\"}],\"ThrottlingStats\":{\"TotalRequests\":5,\"SuccessfulRequests\":5,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":100,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"Normal\",\"FirstOccurrence\":\"2026-04-29T08:51:04Z\",\"LastOccurrence\":\"2026-04-30T10:12:21Z\"},\"ActivityPermissions\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/sites/{id}/lists/{id}/items\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items\",\"MatchedEndpoint\":\"/sites/{id}/lists/{id}/items\",\"LeastPrivilegedPermissions\":{\"Permission\":\"Sites.Read.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true}],\"OptimalPermissions\":[{\"Permission\":\"Sites.Read.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\",\"ActivitiesCovered\":1,\"Activities\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/sites/{id}/lists/{id}/items\",\"Uri\":\"https://graph.microsoft.com/v1.0/sites/{id}/lists/{id}/items\"}]}],\"UnmatchedActivities\":null,\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"Sites.Selected\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":4,\"RiskLabel\":\"Critical\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"Sites.Selected\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":4,\"RiskLabel\":\"Critical\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"}],\"RequiredPermissions\":[{\"Permission\":\"Sites.Read.All\",\"ScopeType\":\"Application\"}],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0007-0007-0007-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso User Automation\",\"AppRoleCount\":6,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"7427e0e9-2fba-42fe-b0c0-848c9e6a8182\",\"FriendlyName\":\"offline_access\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"37f7f235-527c-4136-accd-4a02d197296e\",\"FriendlyName\":\"openid\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"14dad69e-099b-42c9-810b-d002981feec1\",\"FriendlyName\":\"profile\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"e1fe6dd8-ba31-4d61-89e7-88639da4683d\",\"FriendlyName\":\"User.Read\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"},{\"appRoleId\":\"741f803b-c850-494e-b5df-cde7c675a1ca\",\"FriendlyName\":\"User.ReadWrite.All\",\"PermissionType\":\"Application\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":null}],\"Activity\":[{\"Method\":\"GET\",\"Uri\":\"https://graph.microsoft.com/v1.0/users\",\"Scheme\":\"Application\"},{\"Method\":\"PUT\",\"Uri\":\"https://graph.microsoft.com/v1.0/users/{id}/photo\",\"Scheme\":\"Application\"}],\"ThrottlingStats\":{\"TotalRequests\":101,\"SuccessfulRequests\":87,\"Total429Errors\":0,\"TotalClientErrors\":1,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0.99,\"SuccessRate\":86.14,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"Normal\",\"FirstOccurrence\":\"2026-04-28T21:03:52Z\",\"LastOccurrence\":\"2026-05-03T10:01:46Z\"},\"ActivityPermissions\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/users\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/users\",\"MatchedEndpoint\":\"/users\",\"LeastPrivilegedPermissions\":{\"Permission\":\"User.ReadBasic.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true},{\"Method\":\"PUT\",\"Version\":\"v1.0\",\"Path\":\"/users/{id}/photo\",\"OriginalUri\":\"https://graph.microsoft.com/v1.0/users/{id}/photo\",\"MatchedEndpoint\":\"/users/{id}/photo\",\"LeastPrivilegedPermissions\":{\"Permission\":\"ProfilePhoto.ReadWrite.All\",\"ScopeType\":\"Application\",\"IsLeastPrivilege\":true},\"IsMatched\":true}],\"OptimalPermissions\":[{\"Permission\":\"ProfilePhoto.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\",\"ActivitiesCovered\":1,\"Activities\":[{\"Method\":\"PUT\",\"Version\":\"v1.0\",\"Path\":\"/users/{id}/photo\",\"Uri\":\"https://graph.microsoft.com/v1.0/users/{id}/photo\"}]},{\"Permission\":\"User.ReadBasic.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\",\"ActivitiesCovered\":1,\"Activities\":[{\"Method\":\"GET\",\"Version\":\"v1.0\",\"Path\":\"/users\",\"Uri\":\"https://graph.microsoft.com/v1.0/users\"}]}],\"UnmatchedActivities\":null,\"CurrentPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.Read\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":2,\"RiskLabel\":\"Medium\"},{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"ExcessPermissions\":[{\"Permission\":\"email\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"offline_access\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"openid\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"profile\",\"ScopeType\":\"Delegated\",\"PrivilegeLevel\":1,\"RiskLabel\":\"Low\"},{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"RequiredPermissions\":[{\"Permission\":\"User.Read\",\"ScopeType\":\"Application\"}],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0008-0008-0008-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Governance Scanner\",\"AppRoleCount\":2,\"AppRoles\":[],\"Activity\":[],\"ThrottlingStats\":{\"TotalRequests\":312,\"SuccessfulRequests\":298,\"Total429Errors\":14,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":4.49,\"ErrorRate\":4.49,\"SuccessRate\":95.51,\"ThrottlingSeverity\":2,\"ThrottlingStatus\":\"Low\",\"FirstOccurrence\":\"2026-04-28T07:12:00Z\",\"LastOccurrence\":\"2026-05-03T03:19:04Z\"},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":null,\"CurrentPermissions\":[],\"ExcessPermissions\":[{\"Permission\":\"RoleManagement.ReadWrite.Directory\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":4,\"RiskLabel\":\"Critical\"}],\"RequiredPermissions\":[{\"Permission\":\"Directory.Read.All\",\"ScopeType\":\"Application\"}],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0009-0009-0009-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Mail Service\",\"AppRoleCount\":2,\"AppRoles\":[],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[],\"ExcessPermissions\":[],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0010-0010-0010-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Azure Gov Viz\",\"AppRoleCount\":3,\"AppRoles\":[],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[],\"ExcessPermissions\":[],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0011-0011-0011-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso PIT API Client\",\"AppRoleCount\":1,\"AppRoles\":[{\"appRoleId\":\"9e3f62cf-ca93-4989-b6ce-bf83047a90c6\",\"FriendlyName\":\"User.ReadWrite.All\",\"PermissionType\":\"Application\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"AllPrincipals\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"ExcessPermissions\":[{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true},{\"PrincipalId\":\"aaaaaaaa-0014-0014-0014-aaaaaaaaaaaa\",\"PrincipalName\":\"Contoso Foundspot Integration\",\"AppRoleCount\":1,\"AppRoles\":[{\"appRoleId\":\"64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0\",\"FriendlyName\":\"email\",\"PermissionType\":\"Delegated\",\"resourceDisplayName\":\"Microsoft Graph\",\"consentType\":\"Principal\"}],\"Activity\":null,\"ThrottlingStats\":{\"TotalRequests\":0,\"SuccessfulRequests\":0,\"Total429Errors\":0,\"TotalClientErrors\":0,\"TotalServerErrors\":0,\"ThrottleRate\":0,\"ErrorRate\":0,\"SuccessRate\":0,\"ThrottlingSeverity\":0,\"ThrottlingStatus\":\"No Activity\",\"FirstOccurrence\":null,\"LastOccurrence\":null},\"ActivityPermissions\":[],\"OptimalPermissions\":[],\"UnmatchedActivities\":[],\"CurrentPermissions\":[{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"ExcessPermissions\":[{\"Permission\":\"User.ReadWrite.All\",\"ScopeType\":\"Application\",\"PrivilegeLevel\":3,\"RiskLabel\":\"High\"}],\"RequiredPermissions\":[],\"MatchedAllActivity\":true}]"; function c0() { try { if (Oa.startsWith("{%")) return La; const e = JSON.parse(Oa); return Array.isArray(e) ? e : [e] } catch { return La } } const Wt = { status: "", activity: "", throttling: "", privilege: "", search: "" }; function d0({ appData: e }) { const t = Jc(e), r = []; return t.withUnmatched > 0 && r.push(`${t.withUnmatched} app${t.withUnmatched !== 1 ? "s" : ""} with unmatched activity`), t.withExcess > 0 && r.push(`${t.withExcess} app${t.withExcess !== 1 ? "s" : ""} with excess permissions`), t.criticalThrottling > 0 && r.push(`${t.criticalThrottling} app${t.criticalThrottling !== 1 ? "s" : ""} with critical throttling`), r.length === 0 ? c.jsxs("div", { className: "mb-4 flex items-center gap-2 px-4 py-3 bg-emerald-50 dark:bg-emerald-950/30 border border-emerald-200 dark:border-emerald-800 rounded-lg", children: [c.jsx("svg", { className: "w-4 h-4 text-emerald-500 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z" }) }), c.jsxs("p", { className: "text-sm font-medium text-emerald-700 dark:text-emerald-300", children: ["All ", t.total, " applications are optimally configured."] })] }) : c.jsxs("div", { className: "mb-4 px-4 py-3 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg flex items-start gap-2", children: [c.jsx("svg", { className: "w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" }) }), c.jsxs("p", { className: "text-sm text-amber-800 dark:text-amber-200", children: [c.jsxs("strong", { children: [r.length, " finding type", r.length !== 1 ? "s" : ""] }), " — ", r.join(", "), "."] })] }) } function p0() { const [e] = j.useState(c0), [t, r] = j.useState(Wt), [n, i] = j.useState(null), l = j.useRef(null), o = Ia.startsWith("{%") ? "Microsoft Graph Permission Analysis" : Ia, s = Ua.startsWith("{%") ? "Development Tenant" : Ua, a = Fa.startsWith("{%") ? "dev-tenant-id" : Fa, u = ja.startsWith("{%") ? new Date().toLocaleString() : ja; document.title = o, j.useEffect(() => { function p(y) { if (y.key === "Escape") { i(null); return } const P = y.target.tagName; y.key === "/" && P !== "INPUT" && P !== "TEXTAREA" && P !== "SELECT" && (y.preventDefault(), setTimeout(() => { var S; return (S = l.current) == null ? void 0 : S.focus() }, 30)) } return document.addEventListener("keydown", p), () => document.removeEventListener("keydown", p) }, []); function g() { const p = document.documentElement.classList.toggle("dark"); localStorage.theme = p ? "dark" : "light" } function h(p) { r({ ...Wt, status: p }) } return c.jsxs("div", { className: "min-h-screen bg-slate-50 dark:bg-slate-950 transition-colors duration-200", children: [c.jsxs("header", { className: "sticky top-0 z-20 flex items-center gap-3 px-4 py-2.5 bg-white/95 dark:bg-slate-900/95 backdrop-blur border-b border-slate-200 dark:border-slate-800", children: [c.jsxs("div", { className: "flex-1 min-w-0", children: [c.jsx("h1", { className: "text-sm font-semibold text-slate-800 dark:text-slate-100 truncate", children: o }), c.jsxs("p", { className: "text-xs text-slate-400 dark:text-slate-500 truncate", children: [s, " · ", c.jsx("span", { className: "font-mono", children: a }), " · ", u] })] }), c.jsxs("div", { className: "flex items-center gap-1", children: [c.jsx("button", { onClick: () => setTimeout(() => { var p; return (p = l.current) == null ? void 0 : p.focus() }, 30), className: "p-2 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors", title: "Search (press /)", children: c.jsx("svg", { className: "w-4 h-4 text-slate-500 dark:text-slate-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) }) }), c.jsx("button", { onClick: () => td(e), className: "p-2 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors", title: "Export CSV", children: c.jsx("svg", { className: "w-4 h-4 text-slate-500 dark:text-slate-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: c.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" }) }) }), c.jsxs("button", { onClick: g, className: "p-2 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors", title: "Toggle dark mode", children: [c.jsx("svg", { className: "w-4 h-4 hidden dark:block text-yellow-400", fill: "currentColor", viewBox: "0 0 20 20", children: c.jsx("path", { d: "M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" }) }), c.jsx("svg", { className: "w-4 h-4 block dark:hidden text-slate-500", fill: "currentColor", viewBox: "0 0 20 20", children: c.jsx("path", { d: "M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" }) })] })] })] }), c.jsxs("main", { className: "p-4 sm:p-6", children: [c.jsx(d0, { appData: e }), c.jsx(qf, { appData: e, onFilterAll: () => r(Wt), onFilterOptimal: () => h("good"), onFilterExcess: () => h("warning"), onFilterUnmatched: () => h("danger"), onFilterThrottled: () => r({ ...Wt, throttling: "throttled" }), onFilterCriticalThrottling: () => r({ ...Wt, throttling: "4" }) }), c.jsx(Zf, { filters: t, onChange: r, searchRef: l }), c.jsx(e0, { appData: e, filters: t, onShowDetails: p => i(e[p]), onClearFilters: () => r(Wt) })] }), n && c.jsx(u0, { app: n, onClose: () => i(null) })] }) } Rl.createRoot(document.getElementById("root")).render(c.jsx(Md.StrictMode, { children: c.jsx(p0, {}) }));</script>
<style rel="stylesheet" crossorigin>
*,
:before,
:after {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / .5);
--tw-ring-offset-shadow: 0 0 #0000;
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
--tw-contain-size: ;
--tw-contain-layout: ;
--tw-contain-paint: ;
--tw-contain-style:
}
::backdrop {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / .5);
--tw-ring-offset-shadow: 0 0 #0000;
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
--tw-contain-size: ;
--tw-contain-layout: ;
--tw-contain-paint: ;
--tw-contain-style:
}
*,
:before,
:after {
box-sizing: border-box;
border-width: 0;
border-style: solid;
border-color: #e5e7eb
}
:before,
:after {
--tw-content: ""
}
html,
:host {
line-height: 1.5;
-webkit-text-size-adjust: 100%;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji";
font-feature-settings: normal;
font-variation-settings: normal;
-webkit-tap-highlight-color: transparent
}
body {
margin: 0;
line-height: inherit
}
hr {
height: 0;
color: inherit;
border-top-width: 1px
}
abbr:where([title]) {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: inherit;
font-weight: inherit
}
a {
color: inherit;
text-decoration: inherit
}
b,
strong {
font-weight: bolder
}
code,
kbd,
samp,
pre {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
font-feature-settings: normal;
font-variation-settings: normal;
font-size: 1em
}
small {
font-size: 80%
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline
}
sub {
bottom: -.25em
}
sup {
top: -.5em
}
table {
text-indent: 0;
border-color: inherit;
border-collapse: collapse
}
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-feature-settings: inherit;
font-variation-settings: inherit;
font-size: 100%;
font-weight: inherit;
line-height: inherit;
letter-spacing: inherit;
color: inherit;
margin: 0;
padding: 0
}
button,
select {
text-transform: none
}
button,
input:where([type=button]),
input:where([type=reset]),
input:where([type=submit]) {
-webkit-appearance: button;
background-color: transparent;
background-image: none
}
:-moz-focusring {
outline: auto
}
:-moz-ui-invalid {
box-shadow: none
}
progress {
vertical-align: baseline
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
height: auto
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px
}
::-webkit-search-decoration {
-webkit-appearance: none
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit
}
summary {
display: list-item
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
margin: 0
}
fieldset {
margin: 0;
padding: 0
}
legend {
padding: 0
}
ol,
ul,
menu {
list-style: none;
margin: 0;
padding: 0
}
dialog {
padding: 0
}
textarea {
resize: vertical
}
input::-moz-placeholder,
textarea::-moz-placeholder {
opacity: 1;
color: #9ca3af
}
input::placeholder,
textarea::placeholder {
opacity: 1;
color: #9ca3af
}
button,
[role=button] {
cursor: pointer
}
:disabled {
cursor: default
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
display: block;
vertical-align: middle
}
img,
video {
max-width: 100%;
height: auto
}
[hidden]:where(:not([hidden=until-found])) {
display: none
}
.visible {
visibility: visible
}
.fixed {
position: fixed
}
.absolute {
position: absolute
}
.relative {
position: relative
}
.sticky {
position: sticky
}
.inset-0 {
top: 0;
right: 0;
bottom: 0;
left: 0
}
.left-0 {
left: 0
}
.right-0 {
right: 0
}
.top-0 {
top: 0
}
.top-4 {
top: 1rem
}
.top-full {
top: 100%
}
.z-10 {
z-index: 10
}
.z-20 {
z-index: 20
}
.z-30 {
z-index: 30
}
.z-50 {
z-index: 50
}
.mx-auto {
margin-left: auto;
margin-right: auto
}
.mb-1 {
margin-bottom: .25rem
}
.mb-2 {
margin-bottom: .5rem
}
.mb-3 {
margin-bottom: .75rem
}
.mb-4 {
margin-bottom: 1rem
}
.ml-0\.5 {
margin-left: .125rem
}
.ml-1 {
margin-left: .25rem
}
.ml-1\.5 {
margin-left: .375rem
}
.ml-2 {
margin-left: .5rem
}
.ml-3 {
margin-left: .75rem
}
.ml-4 {
margin-left: 1rem
}
.ml-auto {
margin-left: auto
}
.mt-0\.5 {
margin-top: .125rem
}
.mt-1 {
margin-top: .25rem
}
.mt-1\.5 {
margin-top: .375rem
}
.mt-2 {
margin-top: .5rem
}
.mt-3 {
margin-top: .75rem
}
.mt-4 {
margin-top: 1rem
}
.block {
display: block
}
.inline-block {
display: inline-block
}
.inline {
display: inline
}
.flex {
display: flex
}
.inline-flex {
display: inline-flex
}
.\!table {
display: table !important
}
.table {
display: table
}
.grid {
display: grid
}
.hidden {
display: none
}
.h-1\.5 {
height: .375rem
}
.h-10 {
height: 2.5rem
}
.h-12 {
height: 3rem
}
.h-2 {
height: .5rem
}
.h-3 {
height: .75rem
}
.h-3\.5 {
height: .875rem
}
.h-4 {
height: 1rem
}
.h-5 {
height: 1.25rem
}
.h-7 {
height: 1.75rem
}
.h-full {
height: 100%
}
.h-screen {
height: 100vh
}
.min-h-screen {
min-height: 100vh
}
.w-1\.5 {
width: .375rem
}
.w-10 {
width: 2.5rem
}
.w-11\/12 {
width: 91.666667%
}
.w-12 {
width: 3rem
}
.w-2 {
width: .5rem
}
.w-24 {
width: 6rem
}
.w-3 {
width: .75rem
}
.w-3\.5 {
width: .875rem
}
.w-4 {
width: 1rem
}
.w-5 {
width: 1.25rem
}
.w-7 {
width: 1.75rem
}
.w-\[220px\] {
width: 220px
}
.w-full {
width: 100%
}
.min-w-0 {
min-width: 0px
}
.min-w-\[170px\] {
min-width: 170px
}
.min-w-\[3px\] {
min-width: 3px
}
.min-w-full {
min-width: 100%
}
.max-w-\[140px\] {
max-width: 140px
}
.max-w-\[90\%\] {
max-width: 90%
}
.flex-1 {
flex: 1 1 0%
}
.flex-shrink-0,
.shrink-0 {
flex-shrink: 0
}
.rotate-90 {
--tw-rotate: 90deg;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.cursor-help {
cursor: help
}
.cursor-pointer {
cursor: pointer
}
.select-none {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none
}
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr))
}
.grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr))
}
.flex-col {
flex-direction: column
}
.flex-wrap {
flex-wrap: wrap
}
.items-start {
align-items: flex-start
}
.items-center {
align-items: center
}
.justify-center {
justify-content: center
}
.justify-between {
justify-content: space-between
}
.gap-1 {
gap: .25rem
}
.gap-1\.5 {
gap: .375rem
}
.gap-2 {
gap: .5rem
}
.gap-2\.5 {
gap: .625rem
}
.gap-3 {
gap: .75rem
}
.gap-4 {
gap: 1rem
}
.space-y-0\.5>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(.125rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(.125rem * var(--tw-space-y-reverse))
}
.space-y-1>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(.25rem * var(--tw-space-y-reverse))
}
.space-y-1\.5>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(.375rem * var(--tw-space-y-reverse))
}
.space-y-2>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(.5rem * var(--tw-space-y-reverse))
}
.space-y-4>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1rem * var(--tw-space-y-reverse))
}
.space-y-5>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1.25rem * var(--tw-space-y-reverse))
}
.space-y-6>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse))
}
.overflow-hidden {
overflow: hidden
}
.overflow-x-auto {
overflow-x: auto
}
.overflow-y-auto {
overflow-y: auto
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap
}
.whitespace-nowrap {
white-space: nowrap
}
.break-all {
word-break: break-all
}
.rounded {
border-radius: .25rem
}
.rounded-full {
border-radius: 9999px
}
.rounded-lg {
border-radius: .5rem
}
.border {
border-width: 1px
}
.border-b {
border-bottom-width: 1px
}
.border-t {
border-top-width: 1px
}
.border-amber-200 {
--tw-border-opacity: 1;
border-color: rgb(253 230 138 / var(--tw-border-opacity, 1))
}
.border-blue-300 {
--tw-border-opacity: 1;
border-color: rgb(147 197 253 / var(--tw-border-opacity, 1))
}
.border-blue-500 {
--tw-border-opacity: 1;
border-color: rgb(59 130 246 / var(--tw-border-opacity, 1))
}
.border-emerald-200 {
--tw-border-opacity: 1;
border-color: rgb(167 243 208 / var(--tw-border-opacity, 1))
}
.border-gray-200 {
--tw-border-opacity: 1;
border-color: rgb(229 231 235 / var(--tw-border-opacity, 1))
}
.border-gray-300 {
--tw-border-opacity: 1;
border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
}
.border-green-200 {
--tw-border-opacity: 1;
border-color: rgb(187 247 208 / var(--tw-border-opacity, 1))
}
.border-green-300 {
--tw-border-opacity: 1;
border-color: rgb(134 239 172 / var(--tw-border-opacity, 1))
}
.border-orange-300 {
--tw-border-opacity: 1;
border-color: rgb(253 186 116 / var(--tw-border-opacity, 1))
}
.border-red-200 {
--tw-border-opacity: 1;
border-color: rgb(254 202 202 / var(--tw-border-opacity, 1))
}