diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..ab1f4164
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/Brain.iml b/.idea/Brain.iml
new file mode 100644
index 00000000..6f533baa
--- /dev/null
+++ b/.idea/Brain.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 00000000..105ce2da
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..177adf54
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Project status/profect status 1/december-report.pdf b/Project status/profect status 1/december-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 1/progress-video-december.txt b/Project status/profect status 1/progress-video-december.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 2/january-report.pdf b/Project status/profect status 2/january-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 2/progress-video-january.txt b/Project status/profect status 2/progress-video-january.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 3/february-report.pdf b/Project status/profect status 3/february-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 3/progress-video-february.txt b/Project status/profect status 3/progress-video-february.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 4/april-report.pdf b/Project status/profect status 4/april-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 4/progress-video-april.txt b/Project status/profect status 4/progress-video-april.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 5/may-report.pdf b/Project status/profect status 5/may-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/profect status 5/progress-video-may.txt b/Project status/profect status 5/progress-video-may.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/project status 1/BFMC2026_SafeForce_ Status Report 1.pdf b/Project status/project status 1/BFMC2026_SafeForce_ Status Report 1.pdf
new file mode 100644
index 00000000..2702625e
Binary files /dev/null and b/Project status/project status 1/BFMC2026_SafeForce_ Status Report 1.pdf differ
diff --git a/Project status/project status 1/BFMC2026_SafeForce_Architecture.pdf b/Project status/project status 1/BFMC2026_SafeForce_Architecture.pdf
new file mode 100644
index 00000000..37be8d9d
Binary files /dev/null and b/Project status/project status 1/BFMC2026_SafeForce_Architecture.pdf differ
diff --git a/Project status/project status 1/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf b/Project status/project status 1/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf
new file mode 100644
index 00000000..dc45f40f
Binary files /dev/null and b/Project status/project status 1/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf differ
diff --git a/Project status/project status 1/BFMC2026_SafeForce_Video.txt b/Project status/project status 1/BFMC2026_SafeForce_Video.txt
new file mode 100644
index 00000000..f7ae386b
--- /dev/null
+++ b/Project status/project status 1/BFMC2026_SafeForce_Video.txt
@@ -0,0 +1 @@
+Video link: https://youtu.be/RK6hvE3WlHs
\ No newline at end of file
diff --git a/Project status/project status 1/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf b/Project status/project status 1/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf
new file mode 100644
index 00000000..82b642e5
Binary files /dev/null and b/Project status/project status 1/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf differ
diff --git a/Project status/qualifications/march-report.pdf b/Project status/qualifications/march-report.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/Project status/qualifications/progress-video-march.txt b/Project status/qualifications/progress-video-march.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/main.py b/main.py
index 06f4a238..fcec9812 100644
--- a/main.py
+++ b/main.py
@@ -52,7 +52,6 @@
from src.utils.bigPrintMessages import BigPrint
from src.utils.outputWriters import QueueWriter, MultiWriter
import logging
-import logging.handlers
logging.basicConfig(level=logging.INFO)
@@ -68,6 +67,7 @@
from src.utils.messages.allMessages import StateChange
from src.statemachine.stateMachine import StateMachine
from src.statemachine.systemMode import SystemMode
+from src.processing.processPerception import processPerception
# ------ New component imports starts here ------#
@@ -145,6 +145,10 @@ def manage_process_life(process_class, process_instance, process_args, enabled,
camera_ready = Event()
processCamera = processCamera(queueList, logging, camera_ready, debugging = False)
+# Initializing perception processor
+perception_ready = Event()
+processPerception = processPerception(queueList, logging, perception_ready, debugging = False)
+
# Initializing semaphores
semaphore_ready = Event()
processSemaphore = processSemaphores(queueList, logging, semaphore_ready, debugging = False)
@@ -158,8 +162,8 @@ def manage_process_life(process_class, process_instance, process_args, enabled,
processSerialHandler = processSerialHandler(queueList, logging, serial_handler_ready, dashboard_ready, debugging = False)
# Adding all processes to the list
-allProcesses.extend([processCamera, processSemaphore, processTrafficCom, processSerialHandler, processDashboard])
-allEvents.extend([camera_ready, semaphore_ready, traffic_com_ready, serial_handler_ready, dashboard_ready])
+allProcesses.extend([processCamera, processPerception, processSemaphore, processTrafficCom, processSerialHandler, processDashboard])
+allEvents.extend([camera_ready, perception_ready, semaphore_ready, traffic_com_ready, serial_handler_ready, dashboard_ready])
# ------ New component initialize starts here ------#
diff --git a/monitoring/Architecture.pdf b/monitoring/Architecture.pdf
deleted file mode 100644
index e69de29b..00000000
diff --git a/monitoring/BFMC2026_SafeForce_Architecture.pdf b/monitoring/BFMC2026_SafeForce_Architecture.pdf
new file mode 100644
index 00000000..37be8d9d
Binary files /dev/null and b/monitoring/BFMC2026_SafeForce_Architecture.pdf differ
diff --git a/monitoring/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf b/monitoring/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf
new file mode 100644
index 00000000..dc45f40f
Binary files /dev/null and b/monitoring/BFMC2026_SafeForce_ProjectPlan - Calendar view.pdf differ
diff --git a/monitoring/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf b/monitoring/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf
new file mode 100644
index 00000000..82b642e5
Binary files /dev/null and b/monitoring/BFMC_2026_SafeForce_ProjectPlan - Task view.pdf differ
diff --git a/monitoring/project-plan.md b/monitoring/project-plan.md
deleted file mode 100644
index 38c2c85b..00000000
--- a/monitoring/project-plan.md
+++ /dev/null
@@ -1 +0,0 @@
-Your plan goes here. >_<
\ No newline at end of file
diff --git a/services/angular-autostart/install.sh b/services/angular-autostart/install.sh
old mode 100644
new mode 100755
diff --git a/services/angular-autostart/uninstall.sh b/services/angular-autostart/uninstall.sh
old mode 100644
new mode 100755
diff --git a/services/brain-autostart/install.sh b/services/brain-autostart/install.sh
old mode 100644
new mode 100755
diff --git a/services/brain-autostart/uninstall.sh b/services/brain-autostart/uninstall.sh
old mode 100644
new mode 100755
diff --git a/services/rpi-wifi-fallback/add-wifi.sh b/services/rpi-wifi-fallback/add-wifi.sh
old mode 100644
new mode 100755
diff --git a/services/rpi-wifi-fallback/install.sh b/services/rpi-wifi-fallback/install.sh
old mode 100644
new mode 100755
diff --git a/services/rpi-wifi-fallback/uninstall.sh b/services/rpi-wifi-fallback/uninstall.sh
old mode 100644
new mode 100755
diff --git a/setup.sh b/setup.sh
old mode 100644
new mode 100755
diff --git a/src/dashboard/components/calibration.py b/src/dashboard/components/calibration.py
index 0877290b..dab32eb0 100644
--- a/src/dashboard/components/calibration.py
+++ b/src/dashboard/components/calibration.py
@@ -909,7 +909,8 @@ def create_source_zip(self):
try:
zip_buffer = BytesIO()
- source_path = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'source')
+ # source_path = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'source')
+ source_path = os. path.join(os.path. dirname(__file__), '..', '..', '..', 'calibration', 'source')
source_path = os.path.abspath(source_path)
with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file:
diff --git a/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/.tsbuildinfo b/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/.tsbuildinfo
index 6e60b630..c114b8bd 100644
--- a/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/.tsbuildinfo
+++ b/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/.tsbuildinfo
@@ -1 +1 @@
-{"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../src/main.ngtypecheck.ts","../../../../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/Operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/Observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/Subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/Notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNextWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../../../../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../../../../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/primitives/event-dispatch/index.d.ts","../../../../node_modules/@angular/core/primitives/signals/index.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../src/app/app.config.ngtypecheck.ts","../../../../node_modules/@angular/animations/index.d.ts","../../../../node_modules/@angular/animations/browser/index.d.ts","../../../../node_modules/@angular/platform-browser/animations/async/index.d.ts","../../../../src/app/app.config.ts","../../../../src/app/app.component.ngtypecheck.ts","../../../../src/app/cluster/cluster.component.ngtypecheck.ts","../../../../src/app/webSocket/web-socket.service.ngtypecheck.ts","../../../../node_modules/ngx-socket-io/src/config/socket-io.config.d.ts","../../../../node_modules/ngx-socket-io/src/socket-io.service.d.ts","../../../../node_modules/ngx-socket-io/src/socket-io.module.d.ts","../../../../node_modules/ngx-socket-io/index.d.ts","../../../../src/app/webSocket/web-socket.service.ts","../../../../src/app/cluster/speedometer/speedometer.component.ngtypecheck.ts","../../../../src/app/cluster/cluster.service.ngtypecheck.ts","../../../../node_modules/@angular/cdk/platform/index.d.ts","../../../../src/app/cluster/cluster.service.ts","../../../../src/app/cluster/speedometer/speedometer.component.ts","../../../../src/app/cluster/battery-level/battery-level.component.ngtypecheck.ts","../../../../src/app/cluster/battery-level/battery-level.component.ts","../../../../src/app/cluster/map/map.component.ngtypecheck.ts","../../../../src/app/cluster/map/map-cursor/map-cursor.component.ngtypecheck.ts","../../../../src/app/cluster/map/map-cursor/map-cursor.component.ts","../../../../src/app/cluster/map/map-semaphore/map-semaphore.component.ngtypecheck.ts","../../../../src/app/cluster/map/map-semaphore/map-semaphore.component.ts","../../../../src/app/cluster/map/map.component.ts","../../../../src/app/cluster/car/car.component.ngtypecheck.ts","../../../../src/app/cluster/car/car.component.ts","../../../../src/app/cluster/instant-consumption/instant-consumption.component.ngtypecheck.ts","../../../../src/app/cluster/instant-consumption/instant-consumption.component.ts","../../../../src/app/cluster/state-switch/state-switch.component.ngtypecheck.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../node_modules/@angular/cdk/coercion/index.d.ts","../../../../node_modules/@angular/cdk/observers/index.d.ts","../../../../node_modules/@angular/cdk/a11y/index.d.ts","../../../../node_modules/@angular/cdk/bidi/index.d.ts","../../../../node_modules/@angular/material/core/index.d.ts","../../../../node_modules/@angular/material/icon/index.d.ts","../../../../src/app/cluster/state-switch/state-switch.component.ts","../../../../src/app/cluster/kl-switch/kl-switch.component.ngtypecheck.ts","../../../../src/app/cluster/kl-switch/kl-switch.component.ts","../../../../src/app/cluster/steering/steering.component.ngtypecheck.ts","../../../../src/app/cluster/steering/steering.component.ts","../../../../src/app/cluster/live-camera/live-camera.component.ngtypecheck.ts","../../../../src/app/cluster/live-camera/live-camera.component.ts","../../../../src/app/cluster/warning-light/warning-light.component.ngtypecheck.ts","../../../../src/app/cluster/warning-light/warningLightDictionary.ngtypecheck.ts","../../../../src/app/cluster/warning-light/warningLightDictionary.ts","../../../../src/app/cluster/warning-light/warning-light.component.ts","../../../../src/app/cluster/hardware-data/hardware-data.component.ngtypecheck.ts","../../../../src/app/cluster/hardware-data/indicator/indicator.component.ngtypecheck.ts","../../../../src/app/cluster/hardware-data/indicator/indicator.component.ts","../../../../src/app/cluster/hardware-data/hardware-data.component.ts","../../../../src/app/cluster/record/record.component.ngtypecheck.ts","../../../../src/app/cluster/record/record.component.ts","../../../../src/app/cluster/time-speed-steer/time-speed-steer.component.ngtypecheck.ts","../../../../src/app/cluster/time-speed-steer/time-speed-steer.component.ts","../../../../src/app/cluster/side-marker/side-marker.component.ngtypecheck.ts","../../../../src/app/cluster/side-marker/side-marker.component.ts","../../../../src/app/cluster/cluster.component.ts","../../../../src/app/table/table.component.ngtypecheck.ts","../../../../src/app/table/table.component.ts","../../../../src/app/settings/settings.component.ngtypecheck.ts","../../../../src/app/settings/calibration/calibration.component.ngtypecheck.ts","../../../../src/app/settings/calibration/calibration-steps.data.ngtypecheck.ts","../../../../src/app/settings/calibration/calibration-steps.data.ts","../../../../src/app/settings/calibration/calibration.component.ts","../../../../src/app/settings/settings.component.ts","../../../../node_modules/@types/crypto-js/index.d.ts","../../../../src/app/console/console.component.ngtypecheck.ts","../../../../src/app/console/console.component.ts","../../../../src/app/app.component.ts","../../../../src/main.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"ecf5cb089ea438f2545e04b6c52828c68d0b0f4bfaa661986faf36da273e9892","95444fb6292d5e2f7050d7021383b719c0252bf5f88854973977db9e3e3d8006","241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","06540a9f3f2f88375ada0b89712de1c4310f7398d821c4c10ab5c6477dafb4bc",{"version":"de2d3120ed0989dbc776de71e6c0e8a6b4bf1935760cf468ff9d0e9986ef4c09","affectsGlobalScope":true},"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","97bdf234f5db52085d99c6842db560bca133f8a0413ff76bf830f5f38f088ce3","a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","b493ff8a5175cbbb4e6e8bcfa9506c08f5a7318b2278365cfca3b397c9710ebc","e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","303ee143a869e8f605e7b1d12be6c7269d4cab90d230caba792495be595d4f56","89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","a5eb4835ab561c140ffc4634bb039387d5d0cceebb86918f1696c7ac156d26fd","c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","4252b852dd791305da39f6e1242694c2e560d5e46f9bb26e2aca77252057c026","0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","ba13c7d46a560f3d4df8ffb1110e2bbec5801449af3b1240a718514b5576156e","6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","05c4e2a992bb83066a3a648bad1c310cecd4d0628d7e19545bb107ac9596103a","b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","dd6c3362aaaec60be028b4ba292806da8e7020eef7255c7414ce4a5c3a7138ef","8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","3114b315cd0687aad8b57cff36f9c8c51f5b1bc6254f1b1e8446ae583d8e2474","0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","af733cb878419f3012f0d4df36f918a69ba38d73f3232ba1ab46ef9ede6cb29c","cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","0a01b0b5a9e87d04737084731212106add30f63ec640169f1462ba2e44b6b3a8","06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","e07d62a8a9a3bb65433a62e9bbf400c6bfd2df4de60652af4d738303ee3670a1","bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","851e8d57d6dd17c71e9fa0319abd20ab2feb3fb674d0801611a09b7a25fd281c","c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","748e79252a7f476f8f28923612d7696b214e270cc909bc685afefaac8f052af0","9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","c3f32a185cd27ac232d3428a8d9b362c3f7b4892a58adaaa022828a7dcd13eed","3139c3e5e09251feec7a87f457084bee383717f3626a7f1459d053db2f34eb76","4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","3be870c8e17ec14f1c18fc248f5d2c4669e576404744ff5c63e6dafcf05b97ea","56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","6ab380571d87bd1d6f644fb6ab7837239d54b59f07dc84347b1341f866194214","547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","7c9ed7ffdc6f843ab69e5b2a3e7f667b050dd8d24d0052db81e35480f6d4e15d","7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","3656f0584d5a7ee0d0f2cc2b9cffbb43af92e80186b2ce160ebd4421d1506655","a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","90f690a1c5fcb4c2d19c80fea05c8ab590d8f6534c4c296d70af6293ede67366","be95e987818530082c43909be722a838315a0fc5deb6043de0a76f5221cbad24","9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","1f6058d60eaa8825f59d4b76bbf6cc0e6ad9770948be58de68587b0931da00cc","5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","50100b1a91f61d81ca3329a98e64b7f05cddc5e3cb26b3411adc137c9c631aca","11aceaee5663b4ed597544567d6e6a5a94b66857d7ebd62a9875ea061018cd2c","6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","4bb6035e906946163ecfaec982389d0247ceeac6bdee7f1d07c03d9c224db3aa","8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","c82857a876075e665bbcc78213abfe9e9b0206d502379576d7abd481ade3a569","4f71d883ed6f398ba8fe11fcd003b44bb5f220f840b3eac3c395ad91304e4620","5229c3934f58413f34f1b26c01323c93a5a65a2d9f2a565f216590dfbed1fe32","9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","4c754b03f36ff35fc539f9ebb5f024adbb73ec2d3e4bfb35b385a05abb36a50e","59507446213e73654d6979f3b82dadc4efb0ed177425ae052d96a3f5a5be0d35","a914be97ca7a5be670d1545fc0691ac3fbabd023d7d084b338f6934349798a1f","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","87437ca9dabab3a41d483441696ff9220a19e713f58e0b6a99f1731af10776d7","26c5dfa9aa4e6428f4bb7d14cbf72917ace69f738fa92480b9749eebce933370","8e94328e7ca1a7a517d1aa3c569eac0f6a44f67473f6e22c2c4aff5f9f4a9b38","d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","299f0af797897d77685d606502be72846b3d1f0dc6a2d8c964e9ea3ccbacf5bc","12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","3c97b5ea66276cf463525a6aa9d5bb086bf5e05beac70a0597cda2575503b57b","b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","a31383256374723b47d8b5497a9558bbbcf95bcecfb586a36caf7bfd3693eb0e","06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","64aa66c7458cbfd0f48f88070b08c2f66ae94aba099dac981f17c2322d147c06","11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","9814545517193cf51127d7fbdc3b7335688206ec04ee3a46bba2ee036bd0dcac","0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","0224aa9b03628dbfd90792ffc18f7291e89720e5648a3273b85925bad9cfd167","e632e8248e6ee1eb3081f57a3e8d89389f5a5228e12aa78573f278cec4e6d698","a27e450d19eeece3291d53b995f401582a98bfe84a9c19d5b1309dbfc5d84efa","95fb47603a09648fa8d80bb05eaafec8b58ce0f42e9ec45c9a732a4cfe3dc872","da14ab982515870b0042dd4bce514198c519d29e69c504eb97ef42dc7841b9d4","fa6fdba35259695468a7aa45e903d109fa1c187c701ff30ba73e6fbb391ca660",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"23b392fc2de61564ffa458d94696b6ad589fbe49b59439ca372927724aabcf22","27c0e303208d34a51ebfc338b5453d92f24c2964e00de92a1977212be031fbce","b33058289633cc77cf370c87c2bddce563f7d974b886fbfac5364a5f85289d3a",{"version":"c49872a279dbf56d357f3a9b2d7c525db062d3ee725db0fbf30f7afc2327b8dd","signature":"4705d24dce70b83f71364be0929174f8074363e7e67e2dc8d81a1b59514dc120"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"f194f2529b01d8a10dbc3ea4038328fd382bd52821cae305ae032ccffb388b95","e303b47463e488f80ecb918bcea8f84ec6606e64794dcd55c3625565c4254119","a910363beb0faed658064a88135ec3377c8093d8689cac629902738f4ca6963e","87ccee37ac7239640c5acfb1203c9f912a5f63b320fbca913f7028daf8333dae",{"version":"064d9d9c93933a20b99b3454ec45eff7ac0916285948a6db7096a65e771dcd60","signature":"cbdf610f8aedb2454aeebc4ebd25b8f9c396730936ae087dd3316202bed1d759"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"094de563b1ce96ea8593b463b1b442e340f5050f93befa1988e687fec382cb5b",{"version":"6dfc3059585a950c4cfd6b5445791328a349cbfd72dd7022e0e0114bdefd8698","signature":"862bf3ac3820dd545a6d98acd373bb9b4c88cf155af43cf36bd72991cbd46695"},{"version":"6cc4ccb5308204ff9a3a6e3317fddcb4b1394ca0f1d52efafba5c4bce2302007","signature":"37e5062d466952c3292483f4574357b4c4a0eba55b11fc7d8ee8f72ffacc1e64"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"63b48c2a2fc0d9ed0b891d3c595dc8559083f80418be6b1f0ca9911b5a139bb7","signature":"d29afee367430cdd5df7bfa389d6bfce8c7261006bf9759170fbfa40a2e44b31"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"8276032291a5952104e22f485454f297b5424946eeda6da6bbba7e075fce922c","signature":"bd088d5259ac6da13129523538ee38d2a5011e6df09ab75c57daaae599a1d8df"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"2972ce4e1197930e3f64b67649c024a58e25b674081a048e1b65f0d275dcff14","signature":"d0032b62a28a363fe4687459e221141088bb52096bf663ceacf6e391c488faae"},{"version":"100773f40f71fe5783ff0ea1e248ff61b78664c9a423885b35ad750c4998206d","signature":"305f34fcf8685489bb7823714b08604793f61cf47a9c39ba240a15649588d2c9"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"7501ec545874aea317155df64493b4ab67192c4bd6a23a377e9094433c307857","signature":"5467458676f548ef68f1936779d80d36fc5c61fb34f0c895c03209ee81830932"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"5950e064ab088f27114409659385ca5e0931f5477ce80e93db0049b0aea12663","signature":"1f205785477364d8c0496fda08cb8026f0f0020890523ac3b315038aa60922a0"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"85596fa939d17ecc333e94e9966e371b9eb641a9434a0eebce1cbd8205936ef3","ddf66648b065311cbc226d6585caa14b37f461698d525857aff60c988b66a6c9","9bee63d42b4128e7381453c9e8606bc7f74c9bf3226c31796b499c62a57bf863","727d0153197679b2f3437409d8421dac37194c92438b8ce64169a1af79efb8d9","c02f1d32ead2e71175f5c9b6205854b7aaf3b5f83a73ba3d53bedf18c6423848","9f8e1ee57c6b33f300beec0ff0b33240e13a7944abbcce400f9acd332ad4fe24","9060ea6f67c1d53d540be593e691ca07af730c0407a8a375ab2c7789f06db28b",{"version":"2ddb8d63f7bc25d57f8f09e5fb927368574026e060e8220e404cc8c8c7f358fb","signature":"db8c82f298fc012b4847c28b5458457d472a95f18f38208ccfc85e05d13d4e35"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"18e498601f95484e7e54994e675d8c3eddf084d653901d3a523811aa61a1fc00","signature":"ad09c75371778b144591163bdeee5867c70ac5a1475f91fa5dd26d1e0c0cb768"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"73b3ee09f3dd3d3956d8c9fcc1654e2cd431c0862b02622febaa3de661d16252","signature":"f18c8739c9b39687fb83a6ad71fab3699e6894df5237227f84dd6eef35a84c03"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"0de625b4c8cde1d04d14d6876072c853b0687fc5b9835d3e32a480a5add871d7","signature":"ca3a9ab9d9f4869b84bbc93fa71d9e6bf7ed875267ce7f05d807b0ccbaeb7210"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6ec08444c61567f79920ef8f19eda6a651257282c3de08d6cc73d0a8400d6673","signature":"6f7593281a43bce46681f5cb25715185c84f137616bccfa579ca76f098facee1"},{"version":"9f5c667c5c434a63477a728a80ca3db781f0d2838de2bc27d322efc7d83ff2a0","signature":"af41ed8e79748ac0d5b7da9967f05533c3250190f578c6680f378d574c02998a"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"015e7a881478810e1d76ac9e832bc2f7f4115f9a8a5fce138d42de3e248225c8","signature":"2fa13162cfb3f5862b386072293bda43d47784be7f71122dc7ea2c26420f9e02"},{"version":"f06b0df7fde0018ba605592f999f344d829cb17d54d23b2414bd6ef825257c83","signature":"7afa8275364b31922664b5ae68d2cded28863cbb9653772aed281ad844688240"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"9a30b4af43ad54d55b7883dbd557058aeeac2a4813109d4c1bb2e239f1676fbc","signature":"e169e7effad7d385438e7ac70eb5356103966eccb99b277cb7e9ce585044475f"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"fb8137b46af75f7f13ae92a84676b150afbfbaafa1b04910bc7f609fbdfe54cf","signature":"9003832abe6e76ea602d626c8032ceb692cafa300062987efa977dc1d05d7dfc"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"d8f28cc9fc9bf485a02b7a0ff5e50183ff218de09c5a6b014a946d5ff1b11f15","signature":"a11f9bbed2a9b9f47ae3423bf012bd84d1154efcd4a79511dd15637b52d9d8b2"},{"version":"ad089b64df08bb8a6854db1f094c60ca132aba1df4bef2994accc255d30dbef8","signature":"c3379369d8f0c101a797fbe939d64c65f91d201f515236d652a1b0db57b9dc86"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"22e4f2b842a5ab659a01f6f47e79810eccc7bd2b831e285bc29d2c07987bb43e","signature":"7c80fa289695b943e1ebc13af5b6a3c8a024e6a961ef1887c177c96b5a5a0fd2"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"07c6ec383efafc4d6b1bb16d438f0d1fcf702274697be7e3087022fc0265256b",{"version":"7b51d08a50f2e6f0977eacb34a47c428d1a4948e7c357e5e0b94af2f0d12d081","signature":"c95db108993d555bac89b0b33f1160e77e891754688a5e7b479ea632fe349bee"},{"version":"2d90a0290932fd4b2800be842fb6ca017d42a9655ee3e08e69da57b96e66dfbe","signature":"a3d63726835257a638767c629a879b452b22a18f74451840e1c354fe7b77b99c"},{"version":"70e345d53cc00be14d6f3024838bbff3ef0613d56b71ae3f796d7b2a0d473b07","affectsGlobalScope":true},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"13e92428c98654eb14e5f92b57b4af7c4507e85d33da1828d50198ac8dfd4d5f","signature":"1f68fc65fa3ffd697c78d0347e68a5f96d3902e6301dfcbb28c70b8a968e024f"},{"version":"ce26148282e571cf52410caf153e9272c6016f7f8682dceedc03e636fba1fa9d","signature":"09304f455a67306287ed485774f5762ce7fa7d4715ff6295e92a9b2ea833ebfa"},{"version":"98f31b67b543962dfae3f3e55e5fbd56c77d1bc6835a5c317dd92fa7d4a022c8","signature":"e36c147938d0a5abca6305660af812935129111a6e649cff83634cbdecaeba95"}],"root":[60,328],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":false,"inlineSources":false,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"fileIdsList":[[252,257],[252],[249,252,271,289],[249,252,288],[249,252,253],[249,252],[249,250,251,252],[249,252,271,287,290,291],[249,252,254,255,292],[252,258],[252,253,254],[264,265,266],[252,264,265],[249,264],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,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,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,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,180,181,182,184,193,195,196,197,198,199,200,202,203,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,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],[106],[64,65],[61,62,63,65],[62,65],[65,106],[61,65,183],[63,64,65],[61,65],[65],[64],[61,64,106],[62,64,65,222],[64,65,222],[64,230],[62,64,65],[74],[97],[118],[64,65,106],[65,113],[64,65,106,124],[64,65,124],[65,165],[61,65,184],[190,192],[61,65,183,190,191],[183,184,192],[190],[61,65,190,191,192],[206],[201],[204],[62,64,184,185,186,187],[106,184,185,186,187],[184,186],[64,185,186,188,189,193],[61,64],[65,208],[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,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,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],[194],[59],[59,249,252,253,261,268,272,287,294,315,317,323,324,326],[59,252,256,259],[59,249,252,268,272,274],[59,252,282],[59,249,252,253,255,262,268,272,273,275,281,283,285,294,296,298,300,304,308,310,312,314],[59,182,249,252,270,271],[59,249,252,268,272,305,307],[59,252,306],[59,249,252,253,268,272,284],[59,249,252,253,268,272,295],[59,249,252,253,268,299],[59,252,277],[59,252,279],[59,249,252,253,268,276,278,280],[59,252,253,268,309],[59,249,252,253,268,313],[59,249,252,268,269,272],[59,249,252,253,268,272,286,293],[59,249,252,268,297],[59,249,252,268,287,311],[59,249,252,253,257,268,301,303],[59,302],[59,249,252,253,255,268,325],[59,320,322],[59,182,249,252,253,268,272,287,319,321],[59,252,253,318,322],[59,249,252,253,268,287,316],[59,249,252,263,267],[59,60,255,260,327],[252,268,272,294,315,317],[268,272],[268,272,294,296,304],[249,271],[252,268,272],[268],[252,268],[252,255,268],[249]],"referencedMap":[[258,1],[257,2],[290,3],[291,2],[288,2],[289,4],[271,2],[254,5],[253,6],[252,7],[287,6],[292,8],[293,9],[259,10],[255,11],[267,12],[266,13],[265,14],[249,15],[200,16],[198,16],[113,17],[64,18],[63,19],[199,20],[184,21],[106,22],[62,23],[61,24],[248,19],[213,25],[212,25],[124,26],[220,17],[221,17],[223,27],[224,17],[225,24],[226,17],[197,17],[227,17],[228,28],[229,17],[230,25],[231,29],[232,17],[233,17],[234,17],[235,17],[236,25],[237,17],[238,17],[239,17],[240,17],[241,30],[242,17],[243,17],[244,17],[245,17],[246,17],[66,24],[67,24],[68,24],[69,24],[70,24],[71,24],[72,24],[73,17],[75,31],[76,24],[74,24],[77,24],[78,24],[79,24],[80,24],[81,24],[82,24],[83,17],[84,24],[85,24],[86,24],[87,24],[88,24],[89,17],[90,24],[91,24],[92,24],[93,24],[94,24],[95,24],[96,17],[98,32],[97,24],[99,24],[100,24],[101,24],[102,24],[103,30],[104,17],[105,17],[119,33],[107,34],[108,24],[109,24],[110,17],[111,24],[112,24],[114,35],[115,24],[116,24],[117,24],[118,24],[120,24],[121,24],[122,24],[123,24],[125,36],[126,24],[127,24],[128,24],[129,17],[130,24],[131,37],[132,37],[133,37],[134,17],[135,24],[136,24],[137,24],[142,24],[138,24],[139,17],[140,24],[141,17],[143,24],[144,24],[145,24],[146,24],[147,24],[148,24],[149,17],[150,24],[151,24],[152,24],[153,24],[154,24],[155,24],[156,24],[157,24],[158,24],[159,24],[160,24],[161,24],[162,24],[163,24],[164,24],[165,24],[166,38],[167,24],[168,24],[169,24],[170,24],[171,24],[172,24],[173,17],[174,17],[175,17],[176,17],[177,17],[178,24],[179,24],[180,24],[181,24],[247,17],[183,39],[206,40],[201,40],[192,41],[190,42],[204,43],[193,44],[207,45],[202,46],[203,43],[205,47],[188,48],[189,49],[187,50],[185,24],[194,51],[65,52],[211,25],[209,53],[182,54],[195,55],[261,56],[327,57],[256,56],[260,58],[274,56],[275,59],[282,56],[283,60],[262,56],[315,61],[270,56],[272,62],[305,56],[308,63],[306,56],[307,64],[284,56],[285,65],[295,56],[296,66],[299,56],[300,67],[277,56],[278,68],[279,56],[280,69],[276,56],[281,70],[309,56],[310,71],[313,56],[314,72],[269,56],[273,73],[286,56],[294,74],[297,56],[298,75],[311,56],[312,76],[301,56],[304,77],[302,56],[303,78],[325,56],[326,79],[320,56],[321,80],[319,56],[322,81],[318,56],[323,82],[316,56],[317,83],[263,56],[268,84],[60,56],[328,85]],"exportedModulesMap":[[258,1],[257,2],[290,3],[291,2],[288,2],[289,4],[271,2],[254,5],[253,6],[252,7],[287,6],[292,8],[293,9],[259,10],[255,11],[267,12],[266,13],[265,14],[249,15],[200,16],[198,16],[113,17],[64,18],[63,19],[199,20],[184,21],[106,22],[62,23],[61,24],[248,19],[213,25],[212,25],[124,26],[220,17],[221,17],[223,27],[224,17],[225,24],[226,17],[197,17],[227,17],[228,28],[229,17],[230,25],[231,29],[232,17],[233,17],[234,17],[235,17],[236,25],[237,17],[238,17],[239,17],[240,17],[241,30],[242,17],[243,17],[244,17],[245,17],[246,17],[66,24],[67,24],[68,24],[69,24],[70,24],[71,24],[72,24],[73,17],[75,31],[76,24],[74,24],[77,24],[78,24],[79,24],[80,24],[81,24],[82,24],[83,17],[84,24],[85,24],[86,24],[87,24],[88,24],[89,17],[90,24],[91,24],[92,24],[93,24],[94,24],[95,24],[96,17],[98,32],[97,24],[99,24],[100,24],[101,24],[102,24],[103,30],[104,17],[105,17],[119,33],[107,34],[108,24],[109,24],[110,17],[111,24],[112,24],[114,35],[115,24],[116,24],[117,24],[118,24],[120,24],[121,24],[122,24],[123,24],[125,36],[126,24],[127,24],[128,24],[129,17],[130,24],[131,37],[132,37],[133,37],[134,17],[135,24],[136,24],[137,24],[142,24],[138,24],[139,17],[140,24],[141,17],[143,24],[144,24],[145,24],[146,24],[147,24],[148,24],[149,17],[150,24],[151,24],[152,24],[153,24],[154,24],[155,24],[156,24],[157,24],[158,24],[159,24],[160,24],[161,24],[162,24],[163,24],[164,24],[165,24],[166,38],[167,24],[168,24],[169,24],[170,24],[171,24],[172,24],[173,17],[174,17],[175,17],[176,17],[177,17],[178,24],[179,24],[180,24],[181,24],[247,17],[183,39],[206,40],[201,40],[192,41],[190,42],[204,43],[193,44],[207,45],[202,46],[203,43],[205,47],[188,48],[189,49],[187,50],[185,24],[194,51],[65,52],[211,25],[209,53],[182,54],[195,55],[327,86],[260,2],[275,87],[283,2],[315,88],[272,89],[308,87],[307,2],[285,87],[296,90],[300,91],[278,2],[280,2],[281,92],[310,91],[314,91],[273,87],[294,90],[298,91],[312,92],[304,91],[326,93],[321,80],[322,90],[323,2],[317,92],[268,94]],"semanticDiagnosticsPerFile":[258,257,290,291,288,289,271,254,253,252,250,251,287,292,293,259,255,324,267,264,266,265,249,222,200,198,113,64,63,199,184,106,62,61,248,213,212,124,220,221,223,224,225,226,197,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,66,67,68,69,70,71,72,73,75,76,74,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,102,103,104,105,119,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,142,138,139,140,141,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,247,183,206,201,192,190,204,193,207,202,203,205,191,196,188,189,186,187,185,194,65,214,215,216,217,218,219,208,211,210,209,182,195,59,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,21,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,1,327,260,275,283,315,272,308,307,285,296,300,278,280,281,310,314,273,294,298,312,304,303,326,321,322,323,317,268,328]},"version":"5.4.5"}
\ No newline at end of file
+{"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../src/main.ngtypecheck.ts","../../../../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/Operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/Observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/Subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/Notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNextWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../../../../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../../../../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/primitives/event-dispatch/index.d.ts","../../../../node_modules/@angular/core/primitives/signals/index.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../src/app/app.config.ngtypecheck.ts","../../../../node_modules/@angular/animations/index.d.ts","../../../../node_modules/@angular/animations/browser/index.d.ts","../../../../node_modules/@angular/platform-browser/animations/async/index.d.ts","../../../../src/app/app.config.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../src/app/cluster/map/map-semaphore/map-semaphore.component.ngtypecheck.ts","../../../../src/app/cluster/map/map-semaphore/map-semaphore.component.ts","../../../../src/app/cluster/map/map-cursor/map-cursor.component.ngtypecheck.ts","../../../../src/app/cluster/map/map-cursor/map-cursor.component.ts","../../../../src/app/cluster/map/map.component.ngtypecheck.ts","../../../../src/app/webSocket/web-socket.service.ngtypecheck.ts","../../../../node_modules/ngx-socket-io/src/config/socket-io.config.d.ts","../../../../node_modules/ngx-socket-io/src/socket-io.service.d.ts","../../../../node_modules/ngx-socket-io/src/socket-io.module.d.ts","../../../../node_modules/ngx-socket-io/index.d.ts","../../../../src/app/webSocket/web-socket.service.ts","../../../../src/app/cluster/map/map.component.ts","../../../../src/app/cluster/car/car.component.ngtypecheck.ts","../../../../src/app/cluster/car/car.component.ts","../../../../src/app/cluster/cluster.component.ngtypecheck.ts","../../../../src/app/cluster/speedometer/speedometer.component.ngtypecheck.ts","../../../../src/app/cluster/cluster.service.ngtypecheck.ts","../../../../node_modules/@angular/cdk/platform/index.d.ts","../../../../src/app/cluster/cluster.service.ts","../../../../src/app/cluster/speedometer/speedometer.component.ts","../../../../src/app/cluster/battery-level/battery-level.component.ngtypecheck.ts","../../../../src/app/cluster/battery-level/battery-level.component.ts","../../../../src/app/cluster/instant-consumption/instant-consumption.component.ngtypecheck.ts","../../../../src/app/cluster/instant-consumption/instant-consumption.component.ts","../../../../src/app/cluster/state-switch/state-switch.component.ngtypecheck.ts","../../../../node_modules/@angular/cdk/coercion/index.d.ts","../../../../node_modules/@angular/cdk/observers/index.d.ts","../../../../node_modules/@angular/cdk/a11y/index.d.ts","../../../../node_modules/@angular/cdk/bidi/index.d.ts","../../../../node_modules/@angular/material/core/index.d.ts","../../../../node_modules/@angular/material/icon/index.d.ts","../../../../src/app/cluster/state-switch/state-switch.component.ts","../../../../src/app/cluster/kl-switch/kl-switch.component.ngtypecheck.ts","../../../../src/app/cluster/kl-switch/kl-switch.component.ts","../../../../src/app/cluster/steering/steering.component.ngtypecheck.ts","../../../../src/app/cluster/steering/steering.component.ts","../../../../src/app/cluster/live-camera/live-camera.component.ngtypecheck.ts","../../../../src/app/cluster/live-camera/live-camera.component.ts","../../../../src/app/cluster/warning-light/warning-light.component.ngtypecheck.ts","../../../../src/app/cluster/warning-light/warningLightDictionary.ngtypecheck.ts","../../../../src/app/cluster/warning-light/warningLightDictionary.ts","../../../../src/app/cluster/warning-light/warning-light.component.ts","../../../../src/app/cluster/hardware-data/indicator/indicator.component.ngtypecheck.ts","../../../../src/app/cluster/hardware-data/indicator/indicator.component.ts","../../../../src/app/cluster/hardware-data/hardware-data.component.ngtypecheck.ts","../../../../src/app/cluster/hardware-data/hardware-data.component.ts","../../../../src/app/cluster/record/record.component.ngtypecheck.ts","../../../../src/app/cluster/record/record.component.ts","../../../../src/app/cluster/time-speed-steer/time-speed-steer.component.ngtypecheck.ts","../../../../src/app/cluster/time-speed-steer/time-speed-steer.component.ts","../../../../src/app/cluster/side-marker/side-marker.component.ngtypecheck.ts","../../../../src/app/cluster/side-marker/side-marker.component.ts","../../../../src/app/cluster/cluster.component.ts","../../../../src/app/console/console.component.ngtypecheck.ts","../../../../src/app/console/console.component.ts","../../../../src/app/settings/calibration/calibration.component.ngtypecheck.ts","../../../../src/app/settings/calibration/calibration-steps.data.ngtypecheck.ts","../../../../src/app/settings/calibration/calibration-steps.data.ts","../../../../src/app/settings/calibration/calibration.component.ts","../../../../src/app/settings/settings.component.ngtypecheck.ts","../../../../src/app/settings/settings.component.ts","../../../../src/app/app.component.ngtypecheck.ts","../../../../src/app/table/table.component.ngtypecheck.ts","../../../../src/app/table/table.component.ts","../../../../node_modules/@types/crypto-js/index.d.ts","../../../../src/app/app.component.ts","../../../../src/main.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"ecf5cb089ea438f2545e04b6c52828c68d0b0f4bfaa661986faf36da273e9892","95444fb6292d5e2f7050d7021383b719c0252bf5f88854973977db9e3e3d8006","241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","06540a9f3f2f88375ada0b89712de1c4310f7398d821c4c10ab5c6477dafb4bc",{"version":"de2d3120ed0989dbc776de71e6c0e8a6b4bf1935760cf468ff9d0e9986ef4c09","affectsGlobalScope":true},"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","97bdf234f5db52085d99c6842db560bca133f8a0413ff76bf830f5f38f088ce3","a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","b493ff8a5175cbbb4e6e8bcfa9506c08f5a7318b2278365cfca3b397c9710ebc","e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","303ee143a869e8f605e7b1d12be6c7269d4cab90d230caba792495be595d4f56","89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","a5eb4835ab561c140ffc4634bb039387d5d0cceebb86918f1696c7ac156d26fd","c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","4252b852dd791305da39f6e1242694c2e560d5e46f9bb26e2aca77252057c026","0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","ba13c7d46a560f3d4df8ffb1110e2bbec5801449af3b1240a718514b5576156e","6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","05c4e2a992bb83066a3a648bad1c310cecd4d0628d7e19545bb107ac9596103a","b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","dd6c3362aaaec60be028b4ba292806da8e7020eef7255c7414ce4a5c3a7138ef","8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","3114b315cd0687aad8b57cff36f9c8c51f5b1bc6254f1b1e8446ae583d8e2474","0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","af733cb878419f3012f0d4df36f918a69ba38d73f3232ba1ab46ef9ede6cb29c","cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","0a01b0b5a9e87d04737084731212106add30f63ec640169f1462ba2e44b6b3a8","06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","e07d62a8a9a3bb65433a62e9bbf400c6bfd2df4de60652af4d738303ee3670a1","bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","851e8d57d6dd17c71e9fa0319abd20ab2feb3fb674d0801611a09b7a25fd281c","c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","748e79252a7f476f8f28923612d7696b214e270cc909bc685afefaac8f052af0","9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","c3f32a185cd27ac232d3428a8d9b362c3f7b4892a58adaaa022828a7dcd13eed","3139c3e5e09251feec7a87f457084bee383717f3626a7f1459d053db2f34eb76","4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","3be870c8e17ec14f1c18fc248f5d2c4669e576404744ff5c63e6dafcf05b97ea","56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","6ab380571d87bd1d6f644fb6ab7837239d54b59f07dc84347b1341f866194214","547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","7c9ed7ffdc6f843ab69e5b2a3e7f667b050dd8d24d0052db81e35480f6d4e15d","7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","3656f0584d5a7ee0d0f2cc2b9cffbb43af92e80186b2ce160ebd4421d1506655","a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","90f690a1c5fcb4c2d19c80fea05c8ab590d8f6534c4c296d70af6293ede67366","be95e987818530082c43909be722a838315a0fc5deb6043de0a76f5221cbad24","9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","1f6058d60eaa8825f59d4b76bbf6cc0e6ad9770948be58de68587b0931da00cc","5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","50100b1a91f61d81ca3329a98e64b7f05cddc5e3cb26b3411adc137c9c631aca","11aceaee5663b4ed597544567d6e6a5a94b66857d7ebd62a9875ea061018cd2c","6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","4bb6035e906946163ecfaec982389d0247ceeac6bdee7f1d07c03d9c224db3aa","8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","c82857a876075e665bbcc78213abfe9e9b0206d502379576d7abd481ade3a569","4f71d883ed6f398ba8fe11fcd003b44bb5f220f840b3eac3c395ad91304e4620","5229c3934f58413f34f1b26c01323c93a5a65a2d9f2a565f216590dfbed1fe32","9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","4c754b03f36ff35fc539f9ebb5f024adbb73ec2d3e4bfb35b385a05abb36a50e","59507446213e73654d6979f3b82dadc4efb0ed177425ae052d96a3f5a5be0d35","a914be97ca7a5be670d1545fc0691ac3fbabd023d7d084b338f6934349798a1f","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","87437ca9dabab3a41d483441696ff9220a19e713f58e0b6a99f1731af10776d7","26c5dfa9aa4e6428f4bb7d14cbf72917ace69f738fa92480b9749eebce933370","8e94328e7ca1a7a517d1aa3c569eac0f6a44f67473f6e22c2c4aff5f9f4a9b38","d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","299f0af797897d77685d606502be72846b3d1f0dc6a2d8c964e9ea3ccbacf5bc","12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","3c97b5ea66276cf463525a6aa9d5bb086bf5e05beac70a0597cda2575503b57b","b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","a31383256374723b47d8b5497a9558bbbcf95bcecfb586a36caf7bfd3693eb0e","06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","64aa66c7458cbfd0f48f88070b08c2f66ae94aba099dac981f17c2322d147c06","11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","9814545517193cf51127d7fbdc3b7335688206ec04ee3a46bba2ee036bd0dcac","0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","0224aa9b03628dbfd90792ffc18f7291e89720e5648a3273b85925bad9cfd167","e632e8248e6ee1eb3081f57a3e8d89389f5a5228e12aa78573f278cec4e6d698","a27e450d19eeece3291d53b995f401582a98bfe84a9c19d5b1309dbfc5d84efa","95fb47603a09648fa8d80bb05eaafec8b58ce0f42e9ec45c9a732a4cfe3dc872","da14ab982515870b0042dd4bce514198c519d29e69c504eb97ef42dc7841b9d4","fa6fdba35259695468a7aa45e903d109fa1c187c701ff30ba73e6fbb391ca660",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"23b392fc2de61564ffa458d94696b6ad589fbe49b59439ca372927724aabcf22","27c0e303208d34a51ebfc338b5453d92f24c2964e00de92a1977212be031fbce","b33058289633cc77cf370c87c2bddce563f7d974b886fbfac5364a5f85289d3a",{"version":"c49872a279dbf56d357f3a9b2d7c525db062d3ee725db0fbf30f7afc2327b8dd","signature":"4705d24dce70b83f71364be0929174f8074363e7e67e2dc8d81a1b59514dc120"},"85596fa939d17ecc333e94e9966e371b9eb641a9434a0eebce1cbd8205936ef3",{"version":"ca81652143fa05f0a4ce6f4efe1df178b358570a8ea954128b3a49431ff2fce6","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"2972ce4e1197930e3f64b67649c024a58e25b674081a048e1b65f0d275dcff14","signature":"d0032b62a28a363fe4687459e221141088bb52096bf663ceacf6e391c488faae"},{"version":"7e66a4dd80ad965cd08f91d634dc0716257b528cf0b450c8d3cf0581262b8080","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"8276032291a5952104e22f485454f297b5424946eeda6da6bbba7e075fce922c","signature":"bd088d5259ac6da13129523538ee38d2a5011e6df09ab75c57daaae599a1d8df"},{"version":"b9906ed283617bcd737fb5f0549c911940a941add85ca23b1dafea75b0d958d9","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"f194f2529b01d8a10dbc3ea4038328fd382bd52821cae305ae032ccffb388b95","e303b47463e488f80ecb918bcea8f84ec6606e64794dcd55c3625565c4254119","a910363beb0faed658064a88135ec3377c8093d8689cac629902738f4ca6963e","87ccee37ac7239640c5acfb1203c9f912a5f63b320fbca913f7028daf8333dae",{"version":"554cb273de818a941cea4c32e60347fe70ad69256a3e99047cf27b7afd718f70","signature":"5b4a54baec3956e800ac5dea4714f9f93e4034eba41d47c9300840f39f997aea"},{"version":"100773f40f71fe5783ff0ea1e248ff61b78664c9a423885b35ad750c4998206d","signature":"305f34fcf8685489bb7823714b08604793f61cf47a9c39ba240a15649588d2c9"},{"version":"74c65ef0bbc148ccd7250db5541f0a2f69bdfa3f8dadbfc2673a6d7af957438a","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"7501ec545874aea317155df64493b4ab67192c4bd6a23a377e9094433c307857","signature":"5467458676f548ef68f1936779d80d36fc5c61fb34f0c895c03209ee81830932"},{"version":"b8274e34cd674f4c73a9dbbe3ecee7d047e108d7d8b855cd4e76954adee88984","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ef35499ad910f77d67327ecb64f4f39e1b36dd1b749beb5de5cc4a8b16867bc0","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"094de563b1ce96ea8593b463b1b442e340f5050f93befa1988e687fec382cb5b",{"version":"6dfc3059585a950c4cfd6b5445791328a349cbfd72dd7022e0e0114bdefd8698","signature":"862bf3ac3820dd545a6d98acd373bb9b4c88cf155af43cf36bd72991cbd46695"},{"version":"6cc4ccb5308204ff9a3a6e3317fddcb4b1394ca0f1d52efafba5c4bce2302007","signature":"37e5062d466952c3292483f4574357b4c4a0eba55b11fc7d8ee8f72ffacc1e64"},{"version":"4de405e912c3861723db9a4c0e58ce5e58317f88907f4110bd0a4a04a0123724","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"63b48c2a2fc0d9ed0b891d3c595dc8559083f80418be6b1f0ca9911b5a139bb7","signature":"d29afee367430cdd5df7bfa389d6bfce8c7261006bf9759170fbfa40a2e44b31"},{"version":"9de9c118cf774e529b4e7223f6f94d4c337c32e4a0abefec435f26067875c204","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"5950e064ab088f27114409659385ca5e0931f5477ce80e93db0049b0aea12663","signature":"1f205785477364d8c0496fda08cb8026f0f0020890523ac3b315038aa60922a0"},{"version":"47e59666ed4e5b9111f9dd2fe47dd81a42d3b4ae48301ad574523da6a156285c","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"ddf66648b065311cbc226d6585caa14b37f461698d525857aff60c988b66a6c9","9bee63d42b4128e7381453c9e8606bc7f74c9bf3226c31796b499c62a57bf863","727d0153197679b2f3437409d8421dac37194c92438b8ce64169a1af79efb8d9","c02f1d32ead2e71175f5c9b6205854b7aaf3b5f83a73ba3d53bedf18c6423848","9f8e1ee57c6b33f300beec0ff0b33240e13a7944abbcce400f9acd332ad4fe24","9060ea6f67c1d53d540be593e691ca07af730c0407a8a375ab2c7789f06db28b",{"version":"2ddb8d63f7bc25d57f8f09e5fb927368574026e060e8220e404cc8c8c7f358fb","signature":"0c1cedd8210befe856b237841312c8e4a5bbd4fb9c2e0b1e0659e920fdd4d707"},{"version":"c8295d57f6bef3ce7ba3a7cf4d4e662e9816f122a154161b0c92ad503d256aa0","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"18e498601f95484e7e54994e675d8c3eddf084d653901d3a523811aa61a1fc00","signature":"94f8ac4db4976bca2e5c959431eff3368663c59cbbe7fea912f5791481f1da77"},{"version":"0881ffc3b4763b3fcd542c156a8034f1ce7c08c56ee56c38da561ff41972aa90","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"73b3ee09f3dd3d3956d8c9fcc1654e2cd431c0862b02622febaa3de661d16252","signature":"f18c8739c9b39687fb83a6ad71fab3699e6894df5237227f84dd6eef35a84c03"},{"version":"9bc1afe8156f2ac44549665b6da73923f3d0242b2e1ae3a9347a84ba41822de2","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"0de625b4c8cde1d04d14d6876072c853b0687fc5b9835d3e32a480a5add871d7","signature":"ca3a9ab9d9f4869b84bbc93fa71d9e6bf7ed875267ce7f05d807b0ccbaeb7210"},{"version":"4f79e0656be1fa4ab762e05715abd9efaa71a62419817945f22a145e7d3b2d4b","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"6ec08444c61567f79920ef8f19eda6a651257282c3de08d6cc73d0a8400d6673","signature":"6f7593281a43bce46681f5cb25715185c84f137616bccfa579ca76f098facee1"},{"version":"9f5c667c5c434a63477a728a80ca3db781f0d2838de2bc27d322efc7d83ff2a0","signature":"af41ed8e79748ac0d5b7da9967f05533c3250190f578c6680f378d574c02998a"},{"version":"2ae40ff5f9932a3b647baf0033b0ebcf56195243b791a8d8b11bf5d82b8baaec","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"015e7a881478810e1d76ac9e832bc2f7f4115f9a8a5fce138d42de3e248225c8","signature":"2fa13162cfb3f5862b386072293bda43d47784be7f71122dc7ea2c26420f9e02"},{"version":"6385a1344a8d69a3e0ac160d34a3e55858e594adca5a16e5b3a8e563aebad238","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"f06b0df7fde0018ba605592f999f344d829cb17d54d23b2414bd6ef825257c83","signature":"7afa8275364b31922664b5ae68d2cded28863cbb9653772aed281ad844688240"},{"version":"c2cd196daec0132016b751548e7471cd58fc2ce46cc0ec2bab19e6990e3bdf7a","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"9a30b4af43ad54d55b7883dbd557058aeeac2a4813109d4c1bb2e239f1676fbc","signature":"719827dba36a585f5eeb08d12c58bad47bcbc17ff257908bd1d4cf3b8dbadc07"},{"version":"41da794a899f158da4a11159756b1b2b7c5199dacaa0f0fc9a15c351dafe54b8","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"fb8137b46af75f7f13ae92a84676b150afbfbaafa1b04910bc7f609fbdfe54cf","signature":"9003832abe6e76ea602d626c8032ceb692cafa300062987efa977dc1d05d7dfc"},{"version":"0a65a6454aa0613905aad7a29a2c0a5b97e61e65f02542fd03622cfabea8b949","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"d8f28cc9fc9bf485a02b7a0ff5e50183ff218de09c5a6b014a946d5ff1b11f15","signature":"a11f9bbed2a9b9f47ae3423bf012bd84d1154efcd4a79511dd15637b52d9d8b2"},{"version":"ad089b64df08bb8a6854db1f094c60ca132aba1df4bef2994accc255d30dbef8","signature":"c3379369d8f0c101a797fbe939d64c65f91d201f515236d652a1b0db57b9dc86"},{"version":"ce58b319944452f7d541a47002833f1da0186565d93a3c1ab3b56b00cedf21aa","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"13e92428c98654eb14e5f92b57b4af7c4507e85d33da1828d50198ac8dfd4d5f","signature":"1f68fc65fa3ffd697c78d0347e68a5f96d3902e6301dfcbb28c70b8a968e024f"},{"version":"bb380efd5ceff1ccc25f26115b41f8248fe05eb445a1acd531be184cfb90f9cc","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"07c6ec383efafc4d6b1bb16d438f0d1fcf702274697be7e3087022fc0265256b",{"version":"7b51d08a50f2e6f0977eacb34a47c428d1a4948e7c357e5e0b94af2f0d12d081","signature":"c95db108993d555bac89b0b33f1160e77e891754688a5e7b479ea632fe349bee"},{"version":"69bccc2a385382e49c03916556021260999a4c50a7942168cb7c20fbb148af78","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"2d90a0290932fd4b2800be842fb6ca017d42a9655ee3e08e69da57b96e66dfbe",{"version":"0bcd7f7101e49a1b675bc3c4cad011d6a549346e58e53d717940ce80ac7ee5b1","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ae99d96d09c05801a333d58e23d90c51e7ad2263175f112396491f319ba0be31","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"22e4f2b842a5ab659a01f6f47e79810eccc7bd2b831e285bc29d2c07987bb43e","signature":"7c80fa289695b943e1ebc13af5b6a3c8a024e6a961ef1887c177c96b5a5a0fd2"},{"version":"70e345d53cc00be14d6f3024838bbff3ef0613d56b71ae3f796d7b2a0d473b07","affectsGlobalScope":true},{"version":"ce26148282e571cf52410caf153e9272c6016f7f8682dceedc03e636fba1fa9d","signature":"09304f455a67306287ed485774f5762ce7fa7d4715ff6295e92a9b2ea833ebfa"},"98f31b67b543962dfae3f3e55e5fbd56c77d1bc6835a5c317dd92fa7d4a022c8"],"root":[60,328],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":true,"inlineSources":true,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"fileIdsList":[[252,257],[252],[249,252,279,288],[249,252,287],[249,252,253],[249,252],[249,250,251,252],[249,252,261,279,289,290],[249,252,254,255,291],[252,258],[252,253,254],[268,269,270],[252,268,269],[249,268],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,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,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,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,180,181,182,184,193,195,196,197,198,199,200,202,203,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,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],[106],[64,65],[61,62,63,65],[62,65],[65,106],[61,65,183],[63,64,65],[61,65],[65],[64],[61,64,106],[62,64,65,222],[64,65,222],[64,230],[62,64,65],[74],[97],[118],[64,65,106],[65,113],[64,65,106,124],[64,65,124],[65,165],[61,65,184],[190,192],[61,65,183,190,191],[183,184,192],[190],[61,65,190,191,192],[206],[201],[204],[62,64,184,185,186,187],[106,184,185,186,187],[184,186],[64,185,186,188,189,193],[61,64],[65,208],[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,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,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],[194],[59,252,253,261,314,316,322,327],[59,249,252,253,261,272,280,293,314,316,322,323,325,326],[59],[59,252,256,259],[59,252,283],[59,249,252,272,280,282],[59,252,275],[59,252,274],[59,252,253,273,275,314],[59,249,252,253,255,272,273,275,276,280,281,283,285,293,295,297,299,303,307,309,311,313],[59,182,249,252,278,279],[59,252,305,307],[59,249,252,272,280,305,306],[59,252,305],[59,252,304],[59,252,285],[59,249,252,253,272,280,284],[59,252,253,295],[59,249,252,253,272,280,294],[59,252,253,299],[59,249,252,253,272,298],[59,252,265],[59,252,264],[59,252,263],[59,252,262],[59,252,253,263,265,273],[59,249,252,253,263,265,266,272],[59,252,309],[59,252,253,272,308],[59,252,253,313],[59,249,252,253,272,312],[59,252,281],[59,249,252,272,277,280],[59,252,253,293],[59,249,252,253,272,280,286,292],[59,252,297],[59,249,252,272,296],[59,252,261,311],[59,249,252,261,272,310],[59,252,253,303],[59,249,252,253,257,272,300,302],[59,301],[59,252,253,316],[59,249,252,253,255,272,315],[59,318,320],[59,252,253,261,320],[59,182,249,252,253,261,272,280,317,319],[59,252,253,320,322],[59,252,253,320,321],[59,252,253,261,325],[59,249,252,253,261,272,324],[59,249,252,267,271],[59,60,255,260,327],[252,272,280,293,314,325],[272,280],[272,280,293,295,303],[249,279],[252,272,280],[272],[252,272],[252,255,272],[249]],"referencedMap":[[258,1],[257,2],[289,3],[290,2],[287,2],[288,4],[279,2],[254,5],[253,6],[252,7],[261,6],[291,8],[292,9],[259,10],[255,11],[271,12],[270,13],[269,14],[249,15],[200,16],[198,16],[113,17],[64,18],[63,19],[199,20],[184,21],[106,22],[62,23],[61,24],[248,19],[213,25],[212,25],[124,26],[220,17],[221,17],[223,27],[224,17],[225,24],[226,17],[197,17],[227,17],[228,28],[229,17],[230,25],[231,29],[232,17],[233,17],[234,17],[235,17],[236,25],[237,17],[238,17],[239,17],[240,17],[241,30],[242,17],[243,17],[244,17],[245,17],[246,17],[66,24],[67,24],[68,24],[69,24],[70,24],[71,24],[72,24],[73,17],[75,31],[76,24],[74,24],[77,24],[78,24],[79,24],[80,24],[81,24],[82,24],[83,17],[84,24],[85,24],[86,24],[87,24],[88,24],[89,17],[90,24],[91,24],[92,24],[93,24],[94,24],[95,24],[96,17],[98,32],[97,24],[99,24],[100,24],[101,24],[102,24],[103,30],[104,17],[105,17],[119,33],[107,34],[108,24],[109,24],[110,17],[111,24],[112,24],[114,35],[115,24],[116,24],[117,24],[118,24],[120,24],[121,24],[122,24],[123,24],[125,36],[126,24],[127,24],[128,24],[129,17],[130,24],[131,37],[132,37],[133,37],[134,17],[135,24],[136,24],[137,24],[142,24],[138,24],[139,17],[140,24],[141,17],[143,24],[144,24],[145,24],[146,24],[147,24],[148,24],[149,17],[150,24],[151,24],[152,24],[153,24],[154,24],[155,24],[156,24],[157,24],[158,24],[159,24],[160,24],[161,24],[162,24],[163,24],[164,24],[165,24],[166,38],[167,24],[168,24],[169,24],[170,24],[171,24],[172,24],[173,17],[174,17],[175,17],[176,17],[177,17],[178,24],[179,24],[180,24],[181,24],[247,17],[183,39],[206,40],[201,40],[192,41],[190,42],[204,43],[193,44],[207,45],[202,46],[203,43],[205,47],[188,48],[189,49],[187,50],[185,24],[194,51],[65,52],[211,25],[209,53],[182,54],[195,55],[323,56],[327,57],[256,58],[260,59],[282,60],[283,61],[274,62],[275,63],[276,64],[314,65],[278,58],[280,66],[306,67],[307,68],[304,69],[305,70],[284,71],[285,72],[294,73],[295,74],[298,75],[299,76],[264,77],[265,78],[262,79],[263,80],[266,81],[273,82],[308,83],[309,84],[312,85],[313,86],[277,87],[281,88],[286,89],[293,90],[296,91],[297,92],[310,93],[311,94],[300,95],[303,96],[301,58],[302,97],[315,98],[316,99],[318,58],[319,100],[317,101],[320,102],[321,103],[322,104],[324,105],[325,106],[267,58],[272,107],[60,58],[328,108]],"exportedModulesMap":[[258,1],[257,2],[289,3],[290,2],[287,2],[288,4],[279,2],[254,5],[253,6],[252,7],[261,6],[291,8],[292,9],[259,10],[255,11],[271,12],[270,13],[269,14],[249,15],[200,16],[198,16],[113,17],[64,18],[63,19],[199,20],[184,21],[106,22],[62,23],[61,24],[248,19],[213,25],[212,25],[124,26],[220,17],[221,17],[223,27],[224,17],[225,24],[226,17],[197,17],[227,17],[228,28],[229,17],[230,25],[231,29],[232,17],[233,17],[234,17],[235,17],[236,25],[237,17],[238,17],[239,17],[240,17],[241,30],[242,17],[243,17],[244,17],[245,17],[246,17],[66,24],[67,24],[68,24],[69,24],[70,24],[71,24],[72,24],[73,17],[75,31],[76,24],[74,24],[77,24],[78,24],[79,24],[80,24],[81,24],[82,24],[83,17],[84,24],[85,24],[86,24],[87,24],[88,24],[89,17],[90,24],[91,24],[92,24],[93,24],[94,24],[95,24],[96,17],[98,32],[97,24],[99,24],[100,24],[101,24],[102,24],[103,30],[104,17],[105,17],[119,33],[107,34],[108,24],[109,24],[110,17],[111,24],[112,24],[114,35],[115,24],[116,24],[117,24],[118,24],[120,24],[121,24],[122,24],[123,24],[125,36],[126,24],[127,24],[128,24],[129,17],[130,24],[131,37],[132,37],[133,37],[134,17],[135,24],[136,24],[137,24],[142,24],[138,24],[139,17],[140,24],[141,17],[143,24],[144,24],[145,24],[146,24],[147,24],[148,24],[149,17],[150,24],[151,24],[152,24],[153,24],[154,24],[155,24],[156,24],[157,24],[158,24],[159,24],[160,24],[161,24],[162,24],[163,24],[164,24],[165,24],[166,38],[167,24],[168,24],[169,24],[170,24],[171,24],[172,24],[173,17],[174,17],[175,17],[176,17],[177,17],[178,24],[179,24],[180,24],[181,24],[247,17],[183,39],[206,40],[201,40],[192,41],[190,42],[204,43],[193,44],[207,45],[202,46],[203,43],[205,47],[188,48],[189,49],[187,50],[185,24],[194,51],[65,52],[211,25],[209,53],[182,54],[195,55],[327,109],[260,2],[283,110],[275,2],[314,111],[280,112],[307,110],[305,2],[285,110],[295,113],[299,114],[265,2],[263,2],[273,115],[309,114],[313,114],[281,110],[293,113],[297,114],[311,115],[303,114],[316,116],[319,100],[320,113],[322,104],[325,115],[272,117],[328,108]],"semanticDiagnosticsPerFile":[258,257,289,290,287,288,279,254,253,252,250,251,261,291,292,259,255,326,271,268,270,269,249,222,200,198,113,64,63,199,184,106,62,61,248,213,212,124,220,221,223,224,225,226,197,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,66,67,68,69,70,71,72,73,75,76,74,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,102,103,104,105,119,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,142,138,139,140,141,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,247,183,206,201,192,190,204,193,207,202,203,205,191,196,188,189,186,187,185,194,65,214,215,216,217,218,219,208,211,210,209,182,195,59,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,21,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,1,260,283,275,314,280,307,305,285,295,299,265,263,309,313,281,293,297,311,303,302,316,320,322,325,272]},"version":"5.4.5"}
\ No newline at end of file
diff --git a/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/vite/deps/_metadata.json b/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/vite/deps/_metadata.json
index 638b8cde..dcfcec40 100644
--- a/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/vite/deps/_metadata.json
+++ b/src/dashboard/frontend/.angular/cache/18.2.9/dashboard/vite/deps/_metadata.json
@@ -1,79 +1,79 @@
{
- "hash": "69ba6eaf",
+ "hash": "a5c62aac",
"configHash": "e8a18626",
- "lockfileHash": "1ccc7693",
- "browserHash": "d0733646",
+ "lockfileHash": "b521611e",
+ "browserHash": "2084f750",
"optimized": {
"@angular/animations": {
"src": "../../../../../../node_modules/@angular/animations/fesm2022/animations.mjs",
"file": "@angular_animations.js",
- "fileHash": "a3e6ac9b",
+ "fileHash": "b78b0239",
"needsInterop": false
},
"@angular/cdk/platform": {
"src": "../../../../../../node_modules/@angular/cdk/fesm2022/platform.mjs",
"file": "@angular_cdk_platform.js",
- "fileHash": "64b81bac",
+ "fileHash": "82196ba3",
"needsInterop": false
},
"@angular/common": {
"src": "../../../../../../node_modules/@angular/common/fesm2022/common.mjs",
"file": "@angular_common.js",
- "fileHash": "f2d81484",
+ "fileHash": "75dc1d55",
"needsInterop": false
},
"@angular/core": {
"src": "../../../../../../node_modules/@angular/core/fesm2022/core.mjs",
"file": "@angular_core.js",
- "fileHash": "e74a0ede",
+ "fileHash": "1cc0b8a6",
"needsInterop": false
},
"@angular/forms": {
"src": "../../../../../../node_modules/@angular/forms/fesm2022/forms.mjs",
"file": "@angular_forms.js",
- "fileHash": "34d84a78",
+ "fileHash": "f48be708",
"needsInterop": false
},
"@angular/material/icon": {
"src": "../../../../../../node_modules/@angular/material/fesm2022/icon.mjs",
"file": "@angular_material_icon.js",
- "fileHash": "134c8dcb",
+ "fileHash": "79f39177",
"needsInterop": false
},
"@angular/platform-browser": {
"src": "../../../../../../node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs",
"file": "@angular_platform-browser.js",
- "fileHash": "70b4ed6f",
+ "fileHash": "d3f87510",
"needsInterop": false
},
"@angular/platform-browser/animations/async": {
"src": "../../../../../../node_modules/@angular/platform-browser/fesm2022/animations/async.mjs",
"file": "@angular_platform-browser_animations_async.js",
- "fileHash": "51354a59",
+ "fileHash": "8c62135b",
"needsInterop": false
},
"crypto-js": {
"src": "../../../../../../node_modules/crypto-js/index.js",
"file": "crypto-js.js",
- "fileHash": "9e6f0fc0",
+ "fileHash": "e784aa20",
"needsInterop": true
},
"ngx-socket-io": {
"src": "../../../../../../node_modules/ngx-socket-io/fesm2022/ngx-socket-io.mjs",
"file": "ngx-socket-io.js",
- "fileHash": "0bb6aa09",
+ "fileHash": "70400e0e",
"needsInterop": false
},
"rxjs": {
"src": "../../../../../../node_modules/rxjs/dist/esm5/index.js",
"file": "rxjs.js",
- "fileHash": "972b1a89",
+ "fileHash": "5f4c5334",
"needsInterop": false
},
"rxjs/operators": {
"src": "../../../../../../node_modules/rxjs/dist/esm5/operators/index.js",
"file": "rxjs_operators.js",
- "fileHash": "df6317de",
+ "fileHash": "fa6f65ff",
"needsInterop": false
}
},
diff --git a/src/dashboard/frontend/package-lock.json b/src/dashboard/frontend/package-lock.json
index cd61f02a..7cb904a6 100644
--- a/src/dashboard/frontend/package-lock.json
+++ b/src/dashboard/frontend/package-lock.json
@@ -9,15 +9,15 @@
"version": "0.0.0",
"dependencies": {
"@angular/animations": "^18.2.3",
- "@angular/cdk": "^21.0.1",
- "@angular/common": "^21.0.1",
+ "@angular/cdk": "^17.3.10",
+ "@angular/common": "^18.2.3",
"@angular/compiler": "^18.2.3",
"@angular/core": "^18.2.3",
- "@angular/forms": "^21.0.1",
- "@angular/material": "^21.0.1",
- "@angular/platform-browser": "^21.0.1",
- "@angular/platform-browser-dynamic": "^21.0.1",
- "@angular/router": "^21.0.1",
+ "@angular/forms": "^18.2.3",
+ "@angular/material": "^17.3.10",
+ "@angular/platform-browser": "^18.2.3",
+ "@angular/platform-browser-dynamic": "^18.2.3",
+ "@angular/router": "^18.2.3",
"crypto-js": "^4.2.0",
"ngx-socket-io": "^4.7.0",
"rollup": "^4.22.4",
@@ -798,7 +798,6 @@
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.8.tgz",
"integrity": "sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1665,45 +1664,22 @@
}
},
"node_modules/@angular/cdk": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.0.1.tgz",
- "integrity": "sha512-9u1oUf6TGf9Wh+XuQFb9txIGAqfXbAX9ba+dyOTIJ7V3weX3kTRWeGjxad4ydjTPkJ3RaF1/upMwzLuZgnhDMQ==",
+ "version": "17.3.10",
+ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.10.tgz",
+ "integrity": "sha512-b1qktT2c1TTTe5nTji/kFAVW92fULK0YhYAvJ+BjZTPKu2FniZNe8o4qqQ0pUuvtMu+ZQxp/QqFYoidIVCjScg==",
"license": "MIT",
- "peer": true,
"dependencies": {
- "parse5": "^8.0.0",
"tslib": "^2.3.0"
},
+ "optionalDependencies": {
+ "parse5": "^7.1.2"
+ },
"peerDependencies": {
- "@angular/common": "^21.0.0 || ^22.0.0",
- "@angular/core": "^21.0.0 || ^22.0.0",
+ "@angular/common": "^17.0.0 || ^18.0.0",
+ "@angular/core": "^17.0.0 || ^18.0.0",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
- "node_modules/@angular/cdk/node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/@angular/cdk/node_modules/parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
- "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
"node_modules/@angular/cli": {
"version": "18.2.9",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.9.tgz",
@@ -1739,19 +1715,18 @@
}
},
"node_modules/@angular/common": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.1.tgz",
- "integrity": "sha512-EqdTGpFp7PVdTVztO7TB6+QxdzUbYXKKT2jwG2Gg+PIQZ2A8XrLPRmGXyH/DLlc5IhnoJlLbngmBRCLCO4xWog==",
+ "version": "18.2.8",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.8.tgz",
+ "integrity": "sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
},
"peerDependencies": {
- "@angular/core": "21.0.1",
+ "@angular/core": "18.2.8",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -1760,7 +1735,6 @@
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz",
"integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1782,7 +1756,6 @@
"integrity": "sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/core": "7.25.2",
"@jridgewell/sourcemap-codec": "^1.4.14",
@@ -1841,7 +1814,6 @@
"resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.8.tgz",
"integrity": "sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
@@ -1854,58 +1826,103 @@
}
},
"node_modules/@angular/forms": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.1.tgz",
- "integrity": "sha512-BVFPuKjxkzjzKMmpc6KxUKICpVs6J2/KzA4HjtPp/UKvdZPe8dj8vIXuc9pGf8DA4XdkjCwvv8szCgzTWi02LQ==",
+ "version": "18.2.8",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz",
+ "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
},
"peerDependencies": {
- "@angular/common": "21.0.1",
- "@angular/core": "21.0.1",
- "@angular/platform-browser": "21.0.1",
- "@standard-schema/spec": "^1.0.0",
+ "@angular/common": "18.2.8",
+ "@angular/core": "18.2.8",
+ "@angular/platform-browser": "18.2.8",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/material": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.0.1.tgz",
- "integrity": "sha512-UJ/8r7n2JN5Iz2qrQ/1xMGz0diUc/SUFC4t+KMlF6KIdnGlNdGlGOA0Js1uOSXvo/YCCnDVw4IyLCG9CAVZ/4Q==",
- "license": "MIT",
- "dependencies": {
+ "version": "17.3.10",
+ "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.10.tgz",
+ "integrity": "sha512-hHMQES0tQPH5JW33W+mpBPuM8ybsloDTqFPuRV8cboDjosAWfJhzAKF3ozICpNlUrs62La/2Wu/756GcQrxebg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/auto-init": "15.0.0-canary.7f224ddd4.0",
+ "@material/banner": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/button": "15.0.0-canary.7f224ddd4.0",
+ "@material/card": "15.0.0-canary.7f224ddd4.0",
+ "@material/checkbox": "15.0.0-canary.7f224ddd4.0",
+ "@material/chips": "15.0.0-canary.7f224ddd4.0",
+ "@material/circular-progress": "15.0.0-canary.7f224ddd4.0",
+ "@material/data-table": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dialog": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/drawer": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/fab": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/floating-label": "15.0.0-canary.7f224ddd4.0",
+ "@material/form-field": "15.0.0-canary.7f224ddd4.0",
+ "@material/icon-button": "15.0.0-canary.7f224ddd4.0",
+ "@material/image-list": "15.0.0-canary.7f224ddd4.0",
+ "@material/layout-grid": "15.0.0-canary.7f224ddd4.0",
+ "@material/line-ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/linear-progress": "15.0.0-canary.7f224ddd4.0",
+ "@material/list": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu-surface": "15.0.0-canary.7f224ddd4.0",
+ "@material/notched-outline": "15.0.0-canary.7f224ddd4.0",
+ "@material/radio": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/segmented-button": "15.0.0-canary.7f224ddd4.0",
+ "@material/select": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/slider": "15.0.0-canary.7f224ddd4.0",
+ "@material/snackbar": "15.0.0-canary.7f224ddd4.0",
+ "@material/switch": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-bar": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0",
+ "@material/textfield": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tooltip": "15.0.0-canary.7f224ddd4.0",
+ "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
"tslib": "^2.3.0"
},
"peerDependencies": {
- "@angular/cdk": "21.0.1",
- "@angular/common": "^21.0.0 || ^22.0.0",
- "@angular/core": "^21.0.0 || ^22.0.0",
- "@angular/forms": "^21.0.0 || ^22.0.0",
- "@angular/platform-browser": "^21.0.0 || ^22.0.0",
+ "@angular/animations": "^17.0.0 || ^18.0.0",
+ "@angular/cdk": "17.3.10",
+ "@angular/common": "^17.0.0 || ^18.0.0",
+ "@angular/core": "^17.0.0 || ^18.0.0",
+ "@angular/forms": "^17.0.0 || ^18.0.0",
+ "@angular/platform-browser": "^17.0.0 || ^18.0.0",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/platform-browser": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.1.tgz",
- "integrity": "sha512-68StH9HILKUqNhQKz6KKNHzpgk1n88CIusWlmJvnb0l6iWGf3ydq5lTMKAKiZQmSDAVP5unTGfNvIkh59GRyVg==",
+ "version": "18.2.8",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.8.tgz",
+ "integrity": "sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==",
"license": "MIT",
- "peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
},
"peerDependencies": {
- "@angular/animations": "21.0.1",
- "@angular/common": "21.0.1",
- "@angular/core": "21.0.1"
+ "@angular/animations": "18.2.8",
+ "@angular/common": "18.2.8",
+ "@angular/core": "18.2.8"
},
"peerDependenciesMeta": {
"@angular/animations": {
@@ -1914,38 +1931,38 @@
}
},
"node_modules/@angular/platform-browser-dynamic": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.0.1.tgz",
- "integrity": "sha512-TzCKf3p1NBK1NYoPJXLScSjVeiQ52DaXf9gweNUGtCmX3EkVKf1sx4Ny1x4DxaTwB5XZn+O+L3nVLstPBj7UGA==",
+ "version": "18.2.8",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.8.tgz",
+ "integrity": "sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
},
"peerDependencies": {
- "@angular/common": "21.0.1",
- "@angular/compiler": "21.0.1",
- "@angular/core": "21.0.1",
- "@angular/platform-browser": "21.0.1"
+ "@angular/common": "18.2.8",
+ "@angular/compiler": "18.2.8",
+ "@angular/core": "18.2.8",
+ "@angular/platform-browser": "18.2.8"
}
},
"node_modules/@angular/router": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.1.tgz",
- "integrity": "sha512-EnNbiScESZ0op9XS9qUNncWc1UcSYy90uCbDMVTTChikZt9b+e19OusFMf50zecb96VMMz+BzNY1see7Rmvx4g==",
+ "version": "18.2.8",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.8.tgz",
+ "integrity": "sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
- "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
},
"peerDependencies": {
- "@angular/common": "21.0.1",
- "@angular/core": "21.0.1",
- "@angular/platform-browser": "21.0.1",
+ "@angular/common": "18.2.8",
+ "@angular/core": "18.2.8",
+ "@angular/platform-browser": "18.2.8",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -1979,7 +1996,6 @@
"integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.24.7",
@@ -4475,7 +4491,6 @@
"integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@inquirer/checkbox": "^2.4.7",
"@inquirer/confirm": "^3.1.22",
@@ -4894,6 +4909,808 @@
"win32"
]
},
+ "node_modules/@material/animation": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/auto-init": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/banner": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/button": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/base": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/button": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/card": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/checkbox": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/chips": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/checkbox": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "safevalues": "^0.3.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/circular-progress": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/data-table": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/checkbox": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/icon-button": "15.0.0-canary.7f224ddd4.0",
+ "@material/linear-progress": "15.0.0-canary.7f224ddd4.0",
+ "@material/list": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/select": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/density": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/dialog": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/button": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/icon-button": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/dom": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/drawer": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/list": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/elevation": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/fab": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/feature-targeting": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/floating-label": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/focus-ring": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0"
+ }
+ },
+ "node_modules/@material/form-field": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/icon-button": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/image-list": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/layout-grid": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/line-ripple": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/linear-progress": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/list": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/menu": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/list": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu-surface": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/menu-surface": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/notched-outline": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/floating-label": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/progress-indicator": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/radio": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/ripple": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/rtl": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/segmented-button": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/select": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/floating-label": "15.0.0-canary.7f224ddd4.0",
+ "@material/line-ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/list": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu": "15.0.0-canary.7f224ddd4.0",
+ "@material/menu-surface": "15.0.0-canary.7f224ddd4.0",
+ "@material/notched-outline": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/shape": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/slider": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/snackbar": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/button": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/icon-button": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/switch": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "safevalues": "^0.3.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/tab": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/focus-ring": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/tab-bar": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/tab-indicator": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/tab-scroller": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/tab": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/textfield": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/density": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/floating-label": "15.0.0-canary.7f224ddd4.0",
+ "@material/line-ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/notched-outline": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/theme": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/tokens": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0"
+ }
+ },
+ "node_modules/@material/tooltip": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/button": "15.0.0-canary.7f224ddd4.0",
+ "@material/dom": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/tokens": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "safevalues": "^0.3.4",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/top-app-bar": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/animation": "15.0.0-canary.7f224ddd4.0",
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/elevation": "15.0.0-canary.7f224ddd4.0",
+ "@material/ripple": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/shape": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "@material/typography": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/touch-target": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/base": "15.0.0-canary.7f224ddd4.0",
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/rtl": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/@material/typography": {
+ "version": "15.0.0-canary.7f224ddd4.0",
+ "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz",
+ "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
+ "@material/theme": "15.0.0-canary.7f224ddd4.0",
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
@@ -5645,13 +6462,6 @@
"integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
"license": "MIT"
},
- "node_modules/@standard-schema/spec": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz",
- "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==",
- "license": "MIT",
- "peer": true
- },
"node_modules/@tufjs/canonical-json": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
@@ -5864,7 +6674,6 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.6.tgz",
"integrity": "sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"undici-types": "~6.19.2"
}
@@ -6184,7 +6993,6 @@
"integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==",
"devOptional": true,
"license": "MIT",
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -6264,7 +7072,6 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -6701,7 +7508,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001663",
"electron-to-chromium": "^1.5.28",
@@ -8090,7 +8896,7 @@
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -9908,8 +10714,7 @@
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz",
"integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/jest-worker": {
"version": "27.5.1",
@@ -9970,9 +10775,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10065,7 +10870,6 @@
"integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@colors/colors": "1.5.0",
"body-parser": "^1.19.0",
@@ -10373,7 +11177,6 @@
"integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==",
"devOptional": true,
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"copy-anything": "^2.0.1",
"parse-node-version": "^1.0.1",
@@ -11543,9 +12346,9 @@
"license": "MIT"
},
"node_modules/node-forge": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz",
- "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"dev": true,
"license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
@@ -12295,7 +13098,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz",
"integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"entities": "^4.5.0"
@@ -12499,7 +13302,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.0.1",
@@ -13171,7 +13973,6 @@
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"license": "Apache-2.0",
- "peer": true,
"dependencies": {
"tslib": "^2.1.0"
}
@@ -13204,13 +14005,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/safevalues": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz",
+ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==",
+ "license": "Apache-2.0"
+ },
"node_modules/sass": {
"version": "1.77.6",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz",
"integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
"devOptional": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
@@ -14234,7 +15040,6 @@
"integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==",
"devOptional": true,
"license": "BSD-2-Clause",
- "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -14289,7 +15094,6 @@
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -14434,8 +15238,7 @@
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz",
"integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==",
- "license": "0BSD",
- "peer": true
+ "license": "0BSD"
},
"node_modules/tuf-js": {
"version": "2.2.1",
@@ -14492,7 +15295,6 @@
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
"license": "Apache-2.0",
- "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -15295,7 +16097,6 @@
"integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.12.1",
@@ -15373,7 +16174,6 @@
"integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/bonjour": "^3.5.13",
"@types/connect-history-api-fallback": "^1.5.4",
@@ -15569,7 +16369,6 @@
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -15983,8 +16782,7 @@
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz",
"integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
}
}
}
diff --git a/src/dashboard/frontend/package.json b/src/dashboard/frontend/package.json
index 3668bed6..597d5d64 100644
--- a/src/dashboard/frontend/package.json
+++ b/src/dashboard/frontend/package.json
@@ -11,15 +11,15 @@
"private": true,
"dependencies": {
"@angular/animations": "^18.2.3",
- "@angular/cdk": "^21.0.1",
- "@angular/common": "^21.0.1",
+ "@angular/cdk": "^17.3.10",
+ "@angular/common": "^18.2.3",
"@angular/compiler": "^18.2.3",
"@angular/core": "^18.2.3",
- "@angular/forms": "^21.0.1",
- "@angular/material": "^21.0.1",
- "@angular/platform-browser": "^21.0.1",
- "@angular/platform-browser-dynamic": "^21.0.1",
- "@angular/router": "^21.0.1",
+ "@angular/forms": "^18.2.3",
+ "@angular/material": "^17.3.10",
+ "@angular/platform-browser": "^18.2.3",
+ "@angular/platform-browser-dynamic": "^18.2.3",
+ "@angular/router": "^18.2.3",
"crypto-js": "^4.2.0",
"ngx-socket-io": "^4.7.0",
"rollup": "^4.22.4",
diff --git a/src/dashboard/frontend/src/app/webSocket/web-socket.service.ts b/src/dashboard/frontend/src/app/webSocket/web-socket.service.ts
index 0818942a..fefd3d31 100644
--- a/src/dashboard/frontend/src/app/webSocket/web-socket.service.ts
+++ b/src/dashboard/frontend/src/app/webSocket/web-socket.service.ts
@@ -71,7 +71,7 @@ export class WebSocketService {
constructor() {
this.webSocket = new Socket({
- url: "http://192.168.0.110:5005",
+ url: "http://192.168.1.24:5005",
options: {},
});
diff --git a/src/processing/processPerception.py b/src/processing/processPerception.py
new file mode 100644
index 00000000..c6454323
--- /dev/null
+++ b/src/processing/processPerception.py
@@ -0,0 +1,183 @@
+from src.templates.workerprocess import WorkerProcess
+from src.templates.threadwithstop import ThreadWithStop
+from src.utils.messages.messageHandlerSubscriber import messageHandlerSubscriber
+from src.utils.messages.messageHandlerSender import messageHandlerSender
+from src.utils.messages.allMessages import (
+ serialCamera,
+ SpeedMotor,
+ SteerMotor,
+ WarningSignal,
+ LaneKeeping,
+ Brake
+)
+
+import base64
+import numpy as np
+import cv2
+import time
+from queue import Queue, Full, Empty
+
+
+class FrameReader(ThreadWithStop):
+ """Reads frames from `serialCamera` messages and pushes decoded frames into a local queue."""
+
+ def __init__(self, queuesList, frame_queue, logger=None, pause=0.01):
+ super(FrameReader, self).__init__(pause=pause)
+ self.sub = messageHandlerSubscriber(queuesList, serialCamera, "lastOnly", True)
+ self.q = frame_queue
+ self.logger = logger
+
+ def thread_work(self):
+ msg = self.sub.receive()
+ if msg is None:
+ return
+ try:
+ # expect base64-encoded jpeg string
+ data = base64.b64decode(msg)
+ arr = np.frombuffer(data, dtype=np.uint8)
+ frame = cv2.imdecode(arr, cv2.IMREAD_COLOR)
+ try:
+ self.q.put_nowait(frame)
+ except Full:
+ # drop frame if workers are busy
+ pass
+ except Exception as e:
+ if self.logger:
+ self.logger.debug("FrameReader decode error: %s", e)
+
+
+class BasePerceptionWorker(ThreadWithStop):
+ """Base class for perception workers; consume frames from shared queue."""
+
+ def __init__(self, frame_queue, queuesList, logger=None, pause=0.01):
+ super(BasePerceptionWorker, self).__init__(pause=pause)
+ self.q = frame_queue
+ self.queuesList = queuesList
+ self.logger = logger
+
+ def thread_work(self):
+ # override in subclass
+ pass
+
+
+class ObstacleWorker(BasePerceptionWorker):
+ """Detect obstacles using simple edge-density on center crop."""
+
+ def __init__(self, frame_queue, queuesList, logger=None, pause=0.01):
+ super(ObstacleWorker, self).__init__(frame_queue, queuesList, logger, pause)
+ self.speed_sender = messageHandlerSender(queuesList, SpeedMotor)
+ self.warn_sender = messageHandlerSender(queuesList, WarningSignal)
+ self.brake_sender = messageHandlerSender(self.queuesList, Brake) # optional
+ self._last_stop_time = 0
+
+ def thread_work(self):
+ try:
+ frame = self.q.get(timeout=0.5)
+ except Empty:
+ return
+
+ try:
+ h, w = frame.shape[:2]
+ cx1 = int(w * 0.3)
+ cy1 = int(h * 0.3)
+ cx2 = int(w * 0.7)
+ cy2 = int(h * 0.7)
+ crop = frame[cy1:cy2, cx1:cx2]
+ gray = cv2.cvtColor(crop, cv2.COLOR_BGR2GRAY)
+ edges = cv2.Canny(gray, 50, 150)
+ edge_density = float(edges.mean() / 255.0)
+ if self.logger:
+ self.logger.info("Perception obstacle edge_density=%.4f", edge_density)
+
+ # threshold and simple rate-limit
+ if edge_density > 0.06:
+ now = time.time()
+ if now - self._last_stop_time > 1.0:
+ self._last_stop_time = now
+ try:
+ self.speed_sender.send("0")
+ self.brake_sender.send("0")
+ except Exception:
+ pass
+ try:
+ self.warn_sender.send(f"obstacle:{edge_density:.4f}")
+ except Exception:
+ pass
+ except Exception as e:
+ if self.logger:
+ self.logger.debug("ObstacleWorker error: %s", e)
+
+
+class LaneWorker(BasePerceptionWorker):
+ """Simple lane detection placeholder; computes steering angle and sends it."""
+
+ def __init__(self, frame_queue, queuesList, logger=None, pause=0.02):
+ super(LaneWorker, self).__init__(frame_queue, queuesList, logger, pause)
+ self.steer_sender = messageHandlerSender(queuesList, SteerMotor)
+ self.lane_sender = messageHandlerSender(queuesList, LaneKeeping)
+
+ def thread_work(self):
+ try:
+ frame = self.q.get(timeout=0.5)
+ except Empty:
+ return
+
+ try:
+ # Placeholder lane algorithm: compute center of bright region as lane center
+ gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+ _, thr = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY)
+ moments = cv2.moments(thr)
+ h, w = frame.shape[:2]
+ if moments["m00"] != 0:
+ cx = int(moments["m10"] / moments["m00"])
+ offset = (cx - w // 2)
+ # simple proportional steering (tune in real system)
+ steering_angle = -offset * 0.1
+ # send steer and lane offset
+ try:
+ self.steer_sender.send(str(int(steering_angle)))
+ except Exception:
+ pass
+ try:
+ self.lane_sender.send(int(offset))
+ except Exception:
+ pass
+ else:
+ # no lane detected
+ pass
+ except Exception as e:
+ if self.logger:
+ self.logger.debug("LaneWorker error: %s", e)
+
+
+class processPerception(WorkerProcess):
+ """Perception process that starts a frame reader and multiple worker threads.
+
+ Add new worker types by creating a ThreadWithStop subclass and appending
+ it in `_init_threads`.
+ """
+
+ def __init__(self, queueList, logging, ready_event=None, debugging=False):
+ self.queuesList = queueList
+ self.logging = logging
+ self.debugging = debugging
+ self._frame_queue = Queue(maxsize=4)
+ super(processPerception, self).__init__(self.queuesList, ready_event)
+
+ def _init_threads(self):
+ # Frame reader
+ self.threads.append(FrameReader(self.queuesList, self._frame_queue, self.logging))
+
+ # Worker threads (easy to extend)
+ self.threads.append(ObstacleWorker(self._frame_queue, self.queuesList, self.logging))
+ self.threads.append(LaneWorker(self._frame_queue, self.queuesList, self.logging))
+
+ # Add more workers here as needed
+
+ def state_change_handler(self):
+ # no process-wide state handling for now
+ pass
+
+ def process_work(self):
+ # nothing here; workers run independently
+ pass
diff --git a/src/processing/processRealtime.py b/src/processing/processRealtime.py
new file mode 100644
index 00000000..bbbb665e
--- /dev/null
+++ b/src/processing/processRealtime.py
@@ -0,0 +1,86 @@
+from src.templates.workerprocess import WorkerProcess
+from src.utils.messages.messageHandlerSubscriber import messageHandlerSubscriber
+from src.utils.messages.messageHandlerSender import messageHandlerSender
+from src.utils.messages.allMessages import mainCamera, Signal, SpeedMotor, WarningSignal
+from src.templates.threadwithstop import ThreadWithStop
+import base64, numpy as np, cv2, time
+
+class threadRealtime(ThreadWithStop):
+ def __init__(self, queueList, logger, debugger):
+ super().__init__(pause=0.01)
+ self.sub = messageHandlerSubscriber(queueList, mainCamera, "lastOnly", True)
+ self.event_sender = messageHandlerSender(queueList, Signal)
+ self.speed_sender = messageHandlerSender(queueList, SpeedMotor)
+ self.warn_sender = messageHandlerSender(queueList, WarningSignal)
+ self.logger = logger
+ self.debugger = debugger
+
+ def thread_work(self):
+ msg = self.sub.receive()
+ if msg is None:
+ return
+ try:
+ data = base64.b64decode(msg)
+ arr = np.frombuffer(data, dtype=np.uint8)
+ frame = cv2.imdecode(arr, cv2.IMREAD_COLOR)
+ # --- real-time processing here ---
+
+ mean_brightness = float(frame.mean())
+ try:
+ self.logger.info("Realtime brightness: %.2f", mean_brightness)
+ except Exception:
+ print("Realtime brightness: ", mean_brightness)
+
+ # send simple signal if very bright
+ if mean_brightness > 200:
+ try:
+ self.event_sender.send(f"bright:{mean_brightness:.2f}")
+ except Exception:
+ pass
+
+ # Simple obstacle detection using center-crop edge density
+ self.detect_obstacle(frame)
+
+ # --- end of processing ---
+ except Exception as e:
+ if self.debugger:
+ self.logger.error("Realtime decode error: %s", e)
+
+ def detect_obstacle(self, frame):
+ try:
+ h, w = frame.shape[:2]
+ cx1 = int(w * 0.3)
+ cy1 = int(h * 0.3)
+ cx2 = int(w * 0.7)
+ cy2 = int(h * 0.7)
+ crop = frame[cy1:cy2, cx1:cx2]
+ gray = cv2.cvtColor(crop, cv2.COLOR_BGR2GRAY)
+ edges = cv2.Canny(gray, 50, 150)
+ edge_density = edges.mean() / 255.0
+ self.logger.debug("Realtime edge_density: %.4f", edge_density)
+
+ if edge_density > 0.06:
+ now = time.time()
+ if not hasattr(self, "_last_stop_time") or (now - self._last_stop_time) > 1.0:
+ self._last_stop_time = now
+ try:
+ self.speed_sender.send("0")
+ except Exception:
+ pass
+ try:
+ self.warn_sender.send(f"obstacle:{edge_density:.4f}")
+ except Exception:
+ pass
+ except Exception as e:
+ if self.debugger:
+ self.logger.error("Obstacle detection error: %s", e)
+
+class processRealtime(WorkerProcess):
+ def __init__(self, queueList, logging, ready_event=None, debugging=False):
+ self.queuesList = queueList
+ self.logging = logging
+ self.debugging = debugging
+ super(processRealtime, self).__init__(self.queuesList, ready_event)
+
+ def _init_threads(self):
+ self.threads.append(threadRealtime(self.queuesList, self.logging, self.debugging))
\ No newline at end of file