diff --git a/CrashReport.dmp b/CrashReport.dmp index 1b6cf23..0d6fef1 100644 Binary files a/CrashReport.dmp and b/CrashReport.dmp differ diff --git a/language/saved_language.properties b/language/saved_language.properties index 0aafc99..8c6740b 100644 --- a/language/saved_language.properties +++ b/language/saved_language.properties @@ -1,3 +1,3 @@ #Current Loaded Language -#Fri Jan 02 17:46:22 CST 2026 +#Fri Jan 02 18:29:21 CST 2026 loadedLanguage=system\:zh_CN diff --git a/library/jcef/cache/BrowserMetrics-spare.pma b/library/jcef/cache/BrowserMetrics-spare.pma deleted file mode 100644 index 98fc2c0..0000000 Binary files a/library/jcef/cache/BrowserMetrics-spare.pma and /dev/null differ diff --git a/library/jcef/cache/Default/Cache/Cache_Data/data_0 b/library/jcef/cache/Default/Cache/Cache_Data/data_0 index 1f65833..24ee32a 100644 Binary files a/library/jcef/cache/Default/Cache/Cache_Data/data_0 and b/library/jcef/cache/Default/Cache/Cache_Data/data_0 differ diff --git a/library/jcef/cache/Default/Cache/Cache_Data/data_1 b/library/jcef/cache/Default/Cache/Cache_Data/data_1 index 44c74d5..20688ed 100644 Binary files a/library/jcef/cache/Default/Cache/Cache_Data/data_1 and b/library/jcef/cache/Default/Cache/Cache_Data/data_1 differ diff --git a/library/jcef/cache/Default/Extension State/LOG b/library/jcef/cache/Default/Extension State/LOG index 0d7932f..1847b89 100644 --- a/library/jcef/cache/Default/Extension State/LOG +++ b/library/jcef/cache/Default/Extension State/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.167 52c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001 -2026/01/02-17:46:55.168 52c Recovering log #3 -2026/01/02-17:46:55.169 52c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log +2026/01/02-18:36:52.256 2f60 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001 +2026/01/02-18:36:52.256 2f60 Recovering log #3 +2026/01/02-18:36:52.257 2f60 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log diff --git a/library/jcef/cache/Default/Extension State/LOG.old b/library/jcef/cache/Default/Extension State/LOG.old index 1bc14f0..3ed66e9 100644 --- a/library/jcef/cache/Default/Extension State/LOG.old +++ b/library/jcef/cache/Default/Extension State/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.309 d58 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001 -2025/12/28-14:50:54.309 d58 Recovering log #3 -2025/12/28-14:50:54.312 d58 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log +2026/01/02-17:54:54.886 5f78 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001 +2026/01/02-17:54:54.886 5f78 Recovering log #3 +2026/01/02-17:54:54.887 5f78 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log diff --git a/library/jcef/cache/Default/GCM Store/Encryption/LOG b/library/jcef/cache/Default/GCM Store/Encryption/LOG index bc2cce7..33e57d4 100644 --- a/library/jcef/cache/Default/GCM Store/Encryption/LOG +++ b/library/jcef/cache/Default/GCM Store/Encryption/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:58.729 3d98 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001 -2026/01/02-17:46:58.730 3d98 Recovering log #3 -2026/01/02-17:46:58.730 3d98 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log +2026/01/02-18:36:54.760 54c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001 +2026/01/02-18:36:54.761 54c0 Recovering log #3 +2026/01/02-18:36:54.762 54c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log diff --git a/library/jcef/cache/Default/GCM Store/Encryption/LOG.old b/library/jcef/cache/Default/GCM Store/Encryption/LOG.old index 4c3f223..055361a 100644 --- a/library/jcef/cache/Default/GCM Store/Encryption/LOG.old +++ b/library/jcef/cache/Default/GCM Store/Encryption/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:57.787 24fc Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001 -2025/12/28-14:50:57.787 24fc Recovering log #3 -2025/12/28-14:50:57.788 24fc Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log +2026/01/02-17:54:57.521 5e1c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001 +2026/01/02-17:54:57.522 5e1c Recovering log #3 +2026/01/02-17:54:57.523 5e1c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log diff --git a/library/jcef/cache/Default/History b/library/jcef/cache/Default/History index 012663a..f2499fd 100644 Binary files a/library/jcef/cache/Default/History and b/library/jcef/cache/Default/History differ diff --git a/library/jcef/cache/Default/Local Storage/leveldb/000044.log b/library/jcef/cache/Default/Local Storage/leveldb/000044.log index 304bdf0..47a1d80 100644 Binary files a/library/jcef/cache/Default/Local Storage/leveldb/000044.log and b/library/jcef/cache/Default/Local Storage/leveldb/000044.log differ diff --git a/library/jcef/cache/Default/Local Storage/leveldb/LOG b/library/jcef/cache/Default/Local Storage/leveldb/LOG index f118831..584e84b 100644 --- a/library/jcef/cache/Default/Local Storage/leveldb/LOG +++ b/library/jcef/cache/Default/Local Storage/leveldb/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.667 31c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001 -2026/01/02-17:46:55.683 31c0 Recovering log #44 -2026/01/02-17:46:55.687 31c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log +2026/01/02-18:36:52.369 3ac8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001 +2026/01/02-18:36:52.383 3ac8 Recovering log #44 +2026/01/02-18:36:52.390 3ac8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log diff --git a/library/jcef/cache/Default/Local Storage/leveldb/LOG.old b/library/jcef/cache/Default/Local Storage/leveldb/LOG.old index cbf95d4..22d29cf 100644 --- a/library/jcef/cache/Default/Local Storage/leveldb/LOG.old +++ b/library/jcef/cache/Default/Local Storage/leveldb/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.386 2b54 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001 -2025/12/28-14:50:54.399 2b54 Recovering log #44 -2025/12/28-14:50:54.404 2b54 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log +2026/01/02-17:54:54.973 29f8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001 +2026/01/02-17:54:54.984 29f8 Recovering log #44 +2026/01/02-17:54:54.990 29f8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log diff --git a/library/jcef/cache/Default/Preferences b/library/jcef/cache/Default/Preferences index 2b57629..e65477e 100644 --- a/library/jcef/cache/Default/Preferences +++ b/library/jcef/cache/Default/Preferences @@ -1 +1 @@ -{"accessibility":{"captions":{"live_caption_language":"en-US"}},"account_tracker_service_last_update":"13411820815142525","alternate_error_pages":{"backup":true},"announcement_notification_service_first_run_time":"13390881861683238","apps":{"shortcuts_arch":"","shortcuts_version":0},"autocomplete":{"retention_policy_last_version":132},"autofill":{"last_version_deduped":132},"browser":{"app_window_placement":{"DevToolsApp":{"always_on_top":false,"bottom":961,"left":1058,"maximized":false,"right":2138,"top":161,"work_area_bottom":1032,"work_area_left":0,"work_area_right":1920,"work_area_top":0}},"has_seen_welcome_page":false},"commerce_daily_metrics_last_update_time":"13411820815143441","countryid_at_install":17230,"default_apps_install_state":3,"default_search_provider":{"guid":""},"devtools":{"adb_key":"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/fH93dsJxjHkARPbm4ENKQz3YyDD/k9eLSjQRE0mzYLV7BHB3CL8A8gYk8/ohTyTnHQd66224XmN/UogWbGMtejOxyHW/zHgDKeAyW99TljlFwRgeUuagOC3toekozJvP2Lz6c3+prJJjmApbBfpaQ1CQGImOp1yKIsHEeEyy+34GhtZl3763IvQuGdhbXf9nqS1h1pSv13Or5JIGHjRDOY4kZl1ags2RPb92vnpN2imdus+Z9jCKc7ileme2yXpiKZBDzJOh1vRIamb7RWUoOkVz1idsfsScWFDTzv6b7wtbKFBmMvN0SfEg+WQwQP8z+P8QsfdjkIz2K9tRAVVXAgMBAAECggEAFhMBEsGDCtn5vPk2SUlDGJWF1K7HTz840trcA7fogCA+646IdIBynGZKJQpnJF3eUDI9gYMQY/elmrDl9UfLaxuyR+VnBZRJpXu3V7bVmOoxcgQfhqdh5Mh1KvbGTSjBMYW3y1tzNRkqywZk8zdONAeciu/5M5PBjD8TfVWs6dj2qqAOrJQrsH26k5pkG3lykiABavfJrfRrvN/nbdMxlHKv8BYhHWScejMVUR+8wsOqazQjsPW/TtmqUSCwPF8bj7vT19LVqOuE8E1BnaClnCfzqgDISb/kvGPeyvYGZJBA8Bv8PKAat8eZNVvDSGiWGwlqMKC9uMuflafgiEtoMQKBgQD7O+FstyvlT+Q9kNO7GJxptGvgNLpDUgP/8T69UVQuDmGq5pHm1V2sBiIU/gbzqJksnlUY/5+TTIAUrbaNqyoti4lKAzF44JhhE/oECRcxijemfNgT3zO+1rv1vYBvKh5RrjWmdbtKl5VhEByTj4Jj9ksGskYgvupmy1KiRcYFjwKBgQDDHnPlnJRTxd8FLptpikSvBtBX4n09jXb09LRkHbWcoiWSkcKqprNIR7nbU5PIBrniGPYiUcapjksoza4NLPQMZRCVSJ0WW6977piCSx6J7bjkxOVDRxPXcRTYGBM3Skigc/TJbnk9li4kWO/Ey9m7ElK+l/5yQhD5ohuHcpUfuQKBgQC47yFHF6a2TBLkxuE0zi8FGIx4JBggShUrp/fZAC8JIAkA9mzcEJ+9a15XOY8AeVEXqQ1XM4PRt/RoRF8m9aI8mIRc+PDH2/wPKddWdSKfkvDYGvor1peOmR8PC4mpSsW6tpRDjlJp3B9XrbZ7YJ5I2xnrOfupSx/cvzp6vQXBPQKBgAwhFn9NjoLuqACAdzTGXaKrv8PW1oY/BwgPNi+LEUEda0yDNyC4oCh8HPefaG5kzKVbe+GCR+E+cTmmH42+H6WtmqxNCUbciDoiCOUAmnNkjbva6Y2XG4qnAu60AG3NdlpTGwJylaLYdSHZTX5kVbKlXvNuK2ka5kc+Zouy+cYxAoGAaua2QFf45bDw7IaNJRepgHf9VIWjMgkwmf+iRcnKht32tWskhxKiefAaf0ArK2qpeYI5r6jF/ThiDixZ+EGlU9WcfC3cm3LcweY5RRRthnlKIJAsxHgxP4I7O4iBG+hcVaWVnl1S2oHndGldOOJnHtbafRVoZBvRfWGjuusT6lc=","last_open_timestamp":"13408267868797","preferences":{"closeable-tabs":"{\"security\":true,\"freestyler\":true,\"chrome-recorder\":true}","console.sidebar-selected-filter":"\"message\"","console.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","disable-locale-info-bar":"true","elements.styles.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","inspector.drawer-split-view-state":"{\"horizontal\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","inspectorVersion":"38","network-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","network-panel-split-view-state":"{\"vertical\":{\"size\":0}}","network-panel-split-view-waterfall":"{\"vertical\":{\"size\":0}}","panel-selected-tab":"\"console\"","request-info-form-data-category-expanded":"true","request-info-general-category-expanded":"true","request-info-query-string-category-expanded":"true","request-info-request-headers-category-expanded":"true","request-info-request-payload-category-expanded":"true","request-info-response-headers-category-expanded":"true","selected-profile-type":"\"HEAP\"","sources-panel-navigator-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","sources-panel-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","styles-pane-sidebar-tab-order":"{\"styles\":10,\"computed\":20}","timeline-counters-split-view-state":"{\"horizontal\":{\"size\":0}}","timeline-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","timeline-tree-view-details-split-widget":"{\"vertical\":{\"size\":0}}"},"synced_preferences_sync_disabled":{"adorner-settings":"[{\"adorner\":\"grid\",\"isEnabled\":true},{\"adorner\":\"subgrid\",\"isEnabled\":true},{\"adorner\":\"flex\",\"isEnabled\":true},{\"adorner\":\"ad\",\"isEnabled\":true},{\"adorner\":\"scroll-snap\",\"isEnabled\":true},{\"adorner\":\"container\",\"isEnabled\":true},{\"adorner\":\"slot\",\"isEnabled\":true},{\"adorner\":\"top-layer\",\"isEnabled\":true},{\"adorner\":\"reveal\",\"isEnabled\":true},{\"adorner\":\"media\",\"isEnabled\":false},{\"adorner\":\"scroll\",\"isEnabled\":true}]","disable-self-xss-warning":"true","language":"\"zh\"","syncedInspectorVersion":"38"}},"domain_diversity":{"last_reporting_timestamp":"13411820815143118"},"enterprise_profile_guid":"07ed7021-5e22-4f28-ba47-4050106d111f","extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"commands":{},"last_chrome_version":"132.0.6834.83"},"gaia_cookie":{"changed_time":1753261745.285936,"hash":"2jmj7l5rSw0yVb/vlWAYkK/YBwk=","last_list_accounts_data":"[\"gaia.l.a.r\",[]]"},"gcm":{"product_category_for_subtypes":"org.chromium.windows"},"google":{"services":{"signin_scoped_device_id":"7578dbd4-2571-4855-84b1-a8d012a898da"}},"history_clusters":{"all_cache":{"all_keywords":{},"all_timestamp":"0"},"short_cache":{"short_keywords":{},"short_timestamp":"0"}},"https_upgrade_navigations":{"2025-08-18":100},"in_product_help":{"new_badge":{"Compose":{"feature_enabled_time":"13399955274182245","show_count":0,"used_count":0},"ComposeNudge":{"feature_enabled_time":"13399955274182272","show_count":0,"used_count":0},"ComposeProactiveNudge":{"feature_enabled_time":"13399955274182278","show_count":0,"used_count":0},"LensOverlay":{"feature_enabled_time":"13399955274182284","show_count":0,"used_count":0}},"recent_session_enabled_time":"13399955274179816","recent_session_start_times":["13408263815088255","13408246635765929"],"session_last_active_time":"13408267868798050","session_start_time":"13408263815088255"},"intl":{"accept_languages":"en-US,en","selected_languages":"en-US,en"},"invalidation":{"per_sender_topics_to_handler":{"1013309121859":{}}},"media":{"engagement":{"schema_version":5}},"media_router":{"receiver_id_hash_token":"GDyHbsNwaJywl4I7Xhu2zWpA0xHt8oxXsvhUy4j3sqy1GsJ1F67UrrkMAT2lfWxLRVowNBaruSs3pFlNBSkocQ=="},"ntp":{"num_personal_suggestions":8},"optimization_guide":{"hintsfetcher":{"hosts_successfully_fetched":{}},"previous_optimization_types_with_filter":{"AMERICAN_EXPRESS_CREDIT_CARD_FLIGHT_BENEFITS":true,"AMERICAN_EXPRESS_CREDIT_CARD_SUBSCRIPTION_BENEFITS":true,"AUTOFILL_ABLATION_SITES_LIST1":true,"AUTOFILL_ABLATION_SITES_LIST2":true,"AUTOFILL_ABLATION_SITES_LIST3":true,"AUTOFILL_ABLATION_SITES_LIST4":true,"AUTOFILL_ABLATION_SITES_LIST5":true,"BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM":true,"BUY_NOW_PAY_LATER_ALLOWLIST_ZIP":true,"CAPITAL_ONE_CREDIT_CARD_BENEFITS_BLOCKED":true,"CAPITAL_ONE_CREDIT_CARD_DINING_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_ENTERTAINMENT_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_GROCERY_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_STREAMING_BENEFITS":true,"HISTORY_CLUSTERS":true,"HISTORY_EMBEDDINGS":true,"IBAN_AUTOFILL_BLOCKED":true,"PIX_MERCHANT_ORIGINS_ALLOWLIST":true,"PIX_PAYMENT_MERCHANT_ALLOWLIST":true,"SHARED_CREDIT_CARD_DINING_BENEFITS":true,"SHARED_CREDIT_CARD_ENTERTAINMENT_BENEFITS":true,"SHARED_CREDIT_CARD_FLIGHT_BENEFITS":true,"SHARED_CREDIT_CARD_GROCERY_BENEFITS":true,"SHARED_CREDIT_CARD_STREAMING_BENEFITS":true,"SHARED_CREDIT_CARD_SUBSCRIPTION_BENEFITS":true,"SHOPPING_PAGE_PREDICTOR":true,"TEXT_CLASSIFIER_ENTITY_DETECTION":true,"VCN_MERCHANT_OPT_OUT_DISCOVER":true,"VCN_MERCHANT_OPT_OUT_MASTERCARD":true,"VCN_MERCHANT_OPT_OUT_VISA":true},"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"HISTORY_CLUSTERS":true,"PRICE_TRACKING":true,"V8_COMPILE_HINTS":true},"store_file_paths_to_delete":{}},"partition":{"per_host_zoom_levels":{"x":{"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAACQCAYAAAABQ+u5AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABkhJREFUeNrs2O1L02sYB/Dvfu5Z5zbnmnO5CZIwQnogDJktbGJgJViNKBpEsSAoQuiRouhN/QlBbxJ6ERREhUVaCxuumJWzwWZN5rBlukct25N7uM+7cc7Bde7fzpvjYT/Yq93XtXv3dV0fftwcAAQsHy6XC5FIhGw2C4ZtcFVVFRQKBTZu3AiRSAQum2CxWAydTgeFQoHZ2VkkEgn6BI2Njejq6oJOp8PQ0BAikQhWVlboEmzfvh0nTpyAVqvF48ePMTs7i3Q6Xfye/O5z6dIlMjU1Rb5+/UoGBweJTqf7+5rSwVeuXCGpVIpkMhni9XqJyWRabd3qwbdu3SL5fJ7k83mSTqfJjRs3Sv3Q6glyuRwpFAokl8uRq1ev/u5vlk6Qy+XIzZs3f3tGnHI68c8Pg3/5VBKA3TT+2QOhUIhcLleeB3V1ddDr9RAKhex2IBKJoNVqIZfLEQwGkUwm6RM0NDTAaDSiqakJL168QCwWo/dg27ZtsFgsWL9+PZ49e4ZgMEjvwcDAABkfHycej4fcvn2bNDU10Xtw7tw5srCwQMLhMHE6nWTnzp3003j9+nUSj8dJPB4noVCIXL58md04x2Ixsri4SGKxGDl//jx7D2KxGInFYuTatWsVD/6/HggEgvI9kMlkaG1tLc8DjUYDuVyOb9++sfNApVKho6MDGo0GNpsN8Xgc2WyWLsHmzZtx6NAhaDQaDA8PY25uDplMhu4QT506hYMHD0IsFuPt27cYHR3F8vLyX9aUHJTTp0+TL1++kOnpafLq1StiMBjop/HixYtkZmaGzMzMEJ/PRwYGBtiNs9/vJ4FAgPj9fnLmzBn2Hvj9fuL3+8mFCxcqHvw/Paiqqir//YBhGMhkMrS0tEAgELDbgVAoRGNjI6RSKebn55FKpegTKJVKtLe3Q61Ww263Y3Fxkd6DtrY29Pf3Q61W4/Xr1/j+/Tu9B8ePH0dfXx9EIhHGx8cxNjaGX79+0VXBarXCarWCYRgEg0EMDQ1hfn6eroxnz57FsWPHAAC5XA4vX76E0+lcde2qY+pyucjk5CRxuVzk5MmTJcf5t31ACMHdu3dx586dkmsqHqxpD8p+P2AYBrW1tWhubmbvgUAgQENDA2praxEKhdh5oFAosGXLFqhUKrx79w5LS0vI5XJ0CfR6PXp7e6FSqTA2NoZQKISVlRW6Qzxy5Ah2794NoVAIl8sFp9OJRCJBV4WjR4/CYrGAYRjMzc1hZGQEoVCIroxWqxWHDx8uevDmzRtMTEzQT6PNZgOHwwEhBIODg7h37x77TiSE4P79+yWDKx6seQ/4fD7y+Xx5HkgkEmi1WvD5fPYeKJVKSCQSRCIRpNNp+gR1dXVoa2uDUqnEhw8f8PPnT3oPWltb0d3dDaVSCafTiXA4TO/BgQMH0NXVBaFQCLfbjY8fPyKZTNJVwWw2w2w2g2EYLCwsYHR0FJFIhK6MFosF+/fvL3rgcDjgdrvp+6C/v7840g8fPsSDBw/K8+DRo0clgyserHkPeDxe+R7U1NRAo9Gw94DP56O+vh41NTWIRqPIZDL0CWQyGfR6Perr6zE5OYnl5WV6D1paWmA0GqFQKDAxMYFoNIpsNkt3iHv37kVnZycEAgG8Xi/cbjdSqRRdFfr6+tDX1wcOh4NwOAyHw4FoNEpXRrPZjD179gAA8vk8xsfH4fV66fugt7e3ONJPnjzB06dPy/Pg+fPnJYMrHqxpDxiGAY/HQ6FQKM+D6upqqNVq8Hg89h7I5XJUV1cjHo+z80AqlWLDhg2Qy+XweDxIJBLI5/N0CXQ6HTo6OiCXy+F2u4uXD1SH2N3djfb2dggEAvh8PkxNTdF70NPTg56eHjAMg2g0ivfv3yMej9OVcd++fTCZTEUPXC4XfD4ffR/s2rWrONIjIyMYHh4uzwObzVYyuOLBmveAy+WW5wGHw4FIJMK6devA5XLZ7YDH40EqlUIsFmNpaYn+OhAAJBIJmpubIZPJ4PP5kEwm6T3QaDTYunUrpFIpPn/+XLx8oDrEzs5ObNq0CXw+H4FAANPT08XLyH9MsGPHDhiNRnA4HCwuLuLTp0/48eMHXRlNJhMMBgMAoFAowOPxIBAI0PeBwWAo3h/Y7XbY7fbyPHA4HCWDKx78VxL8MQAkmJQSUYGOsAAAAABJRU5ErkJggg==":{"last_modified":"13410191271557769","zoom_level":-1.5778829311823859},"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAH2mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIzLTA3LTE3VDE2OjIyOjM3KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wNy0zMFQxMDo1NToyMSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNC0wNy0zMFQxMDo1NToyMSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjZDUzMmY3NS0wNGNjLTYyNDQtYmZmMi1lNTAzZTU2YzFiNzgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4ZGQ2ZWE3NC0wMTFmLWJhNDgtOTdhMS1lODFhNDU4ZGEzMGQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1MDU2NDgxNS1lNjU2LWE5NGYtOGM0ZC1mODZhY2ZkZTcwODQiPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT41MzY5NDE5NDY1QzdCMjNBNjdCN0JENjk0MzFEOEM1NjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NWZjNjY4Ni1hNDU4LTBkNGItYmVkZi1mNTJiMjFlZjY5NjY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZDg3NDA2YmMtZTBjMi0wMzQ4LWJhYjYtNjUxYTFhY2FiNWY3PC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NTA1NjQ4MTUtZTY1Ni1hOTRmLThjNGQtZjg2YWNmZGU3MDg0IiBzdEV2dDp3aGVuPSIyMDIzLTA3LTE3VDE2OjIyOjM3KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyYjkyZjNiLTUwOGYtZWI0Yy04MGRkLTZiZmYwYWEyYmQ4NiIgc3RFdnQ6d2hlbj0iMjAyMy0wNy0xN1QxNjoyMzozMiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjZDUzMmY3NS0wNGNjLTYyNDQtYmZmMi1lNTAzZTU2YzFiNzgiIHN0RXZ0OndoZW49IjIwMjQtMDctMzBUMTA6NTU6MjErMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oPIg7AAACI0lEQVRYhb1XzUrcUBT+TrA6aFf2AURwPSs3Xbhy47LQZ+hDdFeh4CMIPoNMRUFQFK2000WlFDo2DupYpDQzulG0/o75XCSTuUnunUkyTg5ckpyce7/vnHNP7okgByEZ3C9WwBcWYQEAJA94jwBJbB0wJJtVhVm/CXz/w5jsHpNWHgR+/QUnx+L6wYGUC7VCmWYcNuKek+TPE5JpM5AWvNpwteDVesbcpwHfN4Dbnj4TfmLwvbo+7L4+VJbPTsAEXnHa4H0jYBvAbcXzvhGwu+S8rwQqjh58r/6oBe9KQFmjKwH71ABu8DwNAfWqJXB+qQevNNrzeiUQvQ/GxZUe/Me/zp5nIRB7vrzRg5dPkoGrBLQHsm/AyHsCkOs7cngoPu36jhgeksQHvPim3QhEbbSx+39LjBSSg6sEOh3HwYIiEkyIytWtmxpclZ76gfsm8bJg9dRXdUpB8AhARCSaGuP8RMBJgqZWQEQHkjhznJ57OmNTRBK7zm82789RfFUkSdEwF5+d7l1y0dWp67Zr/VttRy13nX0oSmlEuwnLtc9UvRksjAKelwJvD7RGS8Tz4xlOuS9H26Gvmx+JmJ0hItl7vfWlT1wrlULgX2vbxg2oIZI9D+tLpeg6LHt5z948JBQLAPjohpQbK8t4PT6Vy4+bNf9xlpPFmZAyp19GAMCA5TYxOjGC5gOxs1oCCEy/eZsbB1n48J7ip/nd7FyezgMAngBiObqoWMJNIAAAAABJRU5ErkJggg==":{"last_modified":"13410190740190610","zoom_level":-3.8017840169239308},"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHkgc3R5bGU9Im1hcmdpbjowO2JhY2tncm91bmQ6IzBiMGIwYjsiPjxwcmUgc3R5bGU9ImNvbG9yOiNlNmU2ZTY7cGFkZGluZzoxMHB4O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDsiPnsKICAibWFwcGluZ3MiOiB7CiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGVhdGhUaW1lTG9ja01peGluIjogewogICAgICAiYWN0dWFsbHlIdXJ0IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV82NDc1XyhMbmV0L21pbmVjcmFmdC93b3JsZC9kYW1hZ2Vzb3VyY2UvRGFtYWdlU291cmNlO0YpViIsCiAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2NyZWVuTWl4aW4iOiB7CiAgICAgICJyZW5kZXJCYWNrZ3JvdW5kIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47bV8yODAyNzNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7KVYiLAogICAgICAicmVuZGVyIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47bV84ODMxNV8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljcztJSUYpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRnVja1JlbmRlck1peGluIjogewogICAgICAicmVuZGVyQmFja2dyb3VuZCI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fMjgwMjczXyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzOylWIiwKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eVNlbGVjdG9yTWl4aW4iOiB7CiAgICAgICJmaW5kRW50aXRpZXMiOiAiTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvYXJndW1lbnRzL3NlbGVjdG9yL0VudGl0eVNlbGVjdG9yO21fMTIxMTYwXyhMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9Db21tYW5kU291cmNlU3RhY2s7KUxqYXZhL3V0aWwvTGlzdDsiLAogICAgICAiZmluZFNpbmdsZUVudGl0eSI6ICJMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9hcmd1bWVudHMvc2VsZWN0b3IvRW50aXR5U2VsZWN0b3I7bV8xMjExMzlfKExuZXQvbWluZWNyYWZ0L2NvbW1hbmRzL0NvbW1hbmRTb3VyY2VTdGFjazspTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0VudGl0eTsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1BsYXllck1peGluIjogewogICAgICAiZ2V0TWF4SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTIzM18oKUYiLAogICAgICAiZ2V0SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTIyM18oKUYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xldmVsUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgInJlbmRlckRlYnVnIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjY5MjQwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL011bHRpQnVmZmVyU291cmNlO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7KVYiLAogICAgICAicmVuZGVyRW5kU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMTA5NzgwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7KVYiLAogICAgICAicmVuZGVyU2hhcGUiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk3ODJfKExjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9WZXJ0ZXhDb25zdW1lcjtMbmV0L21pbmVjcmFmdC93b3JsZC9waHlzL3NoYXBlcy9Wb3hlbFNoYXBlO0REREZGRkYpViIsCiAgICAgICJyZW5kZXJTbm93QW5kUmFpbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzEwOTcwM18oTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xpZ2h0VGV4dHVyZTtGREREKVYiLAogICAgICAic2V0dXBSZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xOTQzMzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2N1bGxpbmcvRnJ1c3R1bTtaWilWIiwKICAgICAgInJlbmRlckNsb3VkcyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzI1MzA1NF8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xvcmcvam9tbC9NYXRyaXg0ZjtGREREKVYiLAogICAgICAicmVuZGVyU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjAyNDIzXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG9yZy9qb21sL01hdHJpeDRmO0ZMbmV0L21pbmVjcmFmdC9jbGllbnQvQ2FtZXJhO1pMamF2YS9sYW5nL1J1bm5hYmxlOylWIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9MaWZlTG9ja01peGluIjogewogICAgICAiaGVhbCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fNTYzNF8oRilWIiwKICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIiwKICAgICAgInNldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjExNTNfKEYpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGlleHZBbnRpRGlzYXJtTWl4aW4iOiB7CiAgICAgICJkcm9wKExuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrO1paKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9pdGVtL0l0ZW1FbnRpdHk7IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvUGxheWVyO21fNzE5N18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7WlopTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L2l0ZW0vSXRlbUVudGl0eTsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1N5bmNoZWREYXRhTWl4aW4iOiB7CiAgICAgICJnZXQiOiAiTG5ldC9taW5lY3JhZnQvbmV0d29yay9zeW5jaGVyL1N5bmNoZWRFbnRpdHlEYXRhO21fMTM1MzcwXyhMbmV0L21pbmVjcmFmdC9uZXR3b3JrL3N5bmNoZXIvRW50aXR5RGF0YUFjY2Vzc29yOylMamF2YS9sYW5nL09iamVjdDsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0NsaWVudERlYXRoVGltZU1peGluIjogewogICAgICAiZ2V0V2hpdGVPdmVybGF5UHJvZ3Jlc3MiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2VudGl0eS9MaXZpbmdFbnRpdHlSZW5kZXJlcjttXzY5MzFfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7RilGIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9JdGVtUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvZW50aXR5L0l0ZW1SZW5kZXJlcjttXzExNTE0M18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7TG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtRGlzcGxheUNvbnRleHQ7Wkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7SUlMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVzb3VyY2VzL21vZGVsL0Jha2VkTW9kZWw7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0d1aUdyYXBoaWNzTWl4aW4iOiB7CiAgICAgICJmaWxsR3JhZGllbnQoSUlJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMjBfKElJSUlJSUkpViIsCiAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L25ldHdvcmsvY2hhdC9Db21wb25lbnQ7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDY1M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L25ldHdvcmsvY2hhdC9Db21wb25lbnQ7SUlJKVYiLAogICAgICAiZHJhd1dvcmRXcmFwIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA1NTRfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvRm9ybWF0dGVkVGV4dDtJSUlJKVYiLAogICAgICAicmVuZGVyRmFrZUl0ZW0iOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDIwM18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7SUkpViIsCiAgICAgICJibGl0KExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAyMThfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlJSSlWIiwKICAgICAgImRyYXdDZW50ZXJlZFN0cmluZyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0ZvbnQ7TG5ldC9taW5lY3JhZnQvdXRpbC9Gb3JtYXR0ZWRDaGFyU2VxdWVuY2U7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDM2NF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L3V0aWwvRm9ybWF0dGVkQ2hhclNlcXVlbmNlO0lJSSlWIiwKICAgICAgImJsaXQoTG5ldC9taW5lY3JhZnQvcmVzb3VyY2VzL1Jlc291cmNlTG9jYXRpb247SUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMTYzXyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUZGSUlJSSlWIiwKICAgICAgImJsaXQoTG5ldC9taW5lY3JhZnQvcmVzb3VyY2VzL1Jlc291cmNlTG9jYXRpb247SUlJSUZGSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA0MTFfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlGRklJSUkpViIsCiAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xqYXZhL2xhbmcvU3RyaW5nO0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMzdfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMamF2YS9sYW5nL1N0cmluZztJSUkpViIsCiAgICAgICJmaWxsR3JhZGllbnQoTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL1JlbmRlclR5cGU7SUlJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODU5NzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9SZW5kZXJUeXBlO0lJSUlJSUkpViIsCiAgICAgICJmaWxsR3JhZGllbnQoSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDAyNF8oSUlJSUlJKVYiLAogICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMzk4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRW50aXR5UmVuZGVyTWl4aW4iOiB7CiAgICAgICJyZW5kZXJFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk1MTdfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7RERERkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0dhbWVSZW5kZXJlck1peGluIjogewogICAgICAic2h1dGRvd25TaGFkZXJzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xNzI3NTlfKClWIiwKICAgICAgImdldFJlbmRlckRpc3RhbmNlIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xMDkxNTJfKClGIiwKICAgICAgInNodXRkb3duRWZmZWN0IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xMDkwODZfKClWIiwKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRW50aXR5QW5pbWF0aW9uTWl4aW4iOiB7CiAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIsCiAgICAgICJ0aWNrRGVhdGgiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzYxNTNfKClWIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9EaWV4dkludmVudG9yeVByb3RlY3Rpb25NaXhpbiI6IHsKICAgICAgInN3YXBQYWludCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzM1OTg4XyhEKVYiLAogICAgICAiZHJvcEFsbCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzM2MDcxXygpViIsCiAgICAgICJjbGVhckNvbnRlbnQiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82MjExXygpViIsCiAgICAgICJzZXRJdGVtIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fNjgzNl8oSUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOylWIiwKICAgICAgInJlbW92ZUl0ZW0oSUkpTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fNzQwN18oSUkpTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7IgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9XaW5kb3dNaXhpbiI6IHsKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vSlNDTWl4aW4iOiB7CiAgICAgICJhZGRFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvc2VydmVyL2xldmVsL1NlcnZlckxldmVsO21fODg3Ml8oTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0VudGl0eTspWiIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vV2luZG93VGl0bGVEaWN0YXRvck1peGluIjogewogICAgICAic2V0VGl0bGUiOiAiTGNvbS9tb2phbmcvYmxhemUzZC9wbGF0Zm9ybS9XaW5kb3c7bV84NTQyMl8oTGphdmEvbGFuZy9TdHJpbmc7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1NldFNjcmVlbk1peGluIjogewogICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTEzOThfKClWIiwKICAgICAgInNldFNjcmVlbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTExNTJfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xldmVsVGlja01peGluIjogewogICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9zZXJ2ZXIvbGV2ZWwvU2VydmVyTGV2ZWw7bV84NzkzXyhMamF2YS91dGlsL2Z1bmN0aW9uL0Jvb2xlYW5TdXBwbGllcjspViIKICAgIH0KICB9LAogICJkYXRhIjogewogICAgInNlYXJnZSI6IHsKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0RlYXRoVGltZUxvY2tNaXhpbiI6IHsKICAgICAgICAiYWN0dWFsbHlIdXJ0IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV82NDc1XyhMbmV0L21pbmVjcmFmdC93b3JsZC9kYW1hZ2Vzb3VyY2UvRGFtYWdlU291cmNlO0YpViIsCiAgICAgICAgInRpY2siOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzgxMTlfKClWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2NyZWVuTWl4aW4iOiB7CiAgICAgICAgInJlbmRlckJhY2tncm91bmQiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9zY3JlZW5zL1NjcmVlbjttXzI4MDI3M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczspViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9GdWNrUmVuZGVyTWl4aW4iOiB7CiAgICAgICAgInJlbmRlckJhY2tncm91bmQiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9zY3JlZW5zL1NjcmVlbjttXzI4MDI3M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczspViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9FbnRpdHlTZWxlY3Rvck1peGluIjogewogICAgICAgICJmaW5kRW50aXRpZXMiOiAiTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvYXJndW1lbnRzL3NlbGVjdG9yL0VudGl0eVNlbGVjdG9yO21fMTIxMTYwXyhMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9Db21tYW5kU291cmNlU3RhY2s7KUxqYXZhL3V0aWwvTGlzdDsiLAogICAgICAgICJmaW5kU2luZ2xlRW50aXR5IjogIkxuZXQvbWluZWNyYWZ0L2NvbW1hbmRzL2FyZ3VtZW50cy9zZWxlY3Rvci9FbnRpdHlTZWxlY3RvcjttXzEyMTEzOV8oTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvQ29tbWFuZFNvdXJjZVN0YWNrOylMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvRW50aXR5OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1BsYXllck1peGluIjogewogICAgICAgICJnZXRNYXhIZWFsdGgiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzIxMjMzXygpRiIsCiAgICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vTGV2ZWxSZW5kZXJlck1peGluIjogewogICAgICAgICJyZW5kZXJEZWJ1ZyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzI2OTI0MF8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9NdWx0aUJ1ZmZlclNvdXJjZTtMbmV0L21pbmVjcmFmdC9jbGllbnQvQ2FtZXJhOylWIiwKICAgICAgICAicmVuZGVyRW5kU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMTA5NzgwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7KVYiLAogICAgICAgICJyZW5kZXJTaGFwZSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzEwOTc4Ml8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1ZlcnRleENvbnN1bWVyO0xuZXQvbWluZWNyYWZ0L3dvcmxkL3BoeXMvc2hhcGVzL1ZveGVsU2hhcGU7RERERkZGRilWIiwKICAgICAgICAicmVuZGVyU25vd0FuZFJhaW4iOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk3MDNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MaWdodFRleHR1cmU7RkRERClWIiwKICAgICAgICAic2V0dXBSZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xOTQzMzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2N1bGxpbmcvRnJ1c3R1bTtaWilWIiwKICAgICAgICAicmVuZGVyQ2xvdWRzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjUzMDU0XyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG9yZy9qb21sL01hdHJpeDRmO0ZEREQpViIsCiAgICAgICAgInJlbmRlclNreSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzIwMjQyM18oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xvcmcvam9tbC9NYXRyaXg0ZjtGTG5ldC9taW5lY3JhZnQvY2xpZW50L0NhbWVyYTtaTGphdmEvbGFuZy9SdW5uYWJsZTspViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xpZmVMb2NrTWl4aW4iOiB7CiAgICAgICAgImhlYWwiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzU2MzRfKEYpViIsCiAgICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIiwKICAgICAgICAic2V0SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTE1M18oRilWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGlleHZBbnRpRGlzYXJtTWl4aW4iOiB7CiAgICAgICAgImRyb3AoTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7WlopTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L2l0ZW0vSXRlbUVudGl0eTsiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9QbGF5ZXI7bV83MTk3XyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztaWilMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvaXRlbS9JdGVtRW50aXR5OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1N5bmNoZWREYXRhTWl4aW4iOiB7CiAgICAgICAgImdldCI6ICJMbmV0L21pbmVjcmFmdC9uZXR3b3JrL3N5bmNoZXIvU3luY2hlZEVudGl0eURhdGE7bV8xMzUzNzBfKExuZXQvbWluZWNyYWZ0L25ldHdvcmsvc3luY2hlci9FbnRpdHlEYXRhQWNjZXNzb3I7KUxqYXZhL2xhbmcvT2JqZWN0OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0NsaWVudERlYXRoVGltZU1peGluIjogewogICAgICAgICJnZXRXaGl0ZU92ZXJsYXlQcm9ncmVzcyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvZW50aXR5L0xpdmluZ0VudGl0eVJlbmRlcmVyO21fNjkzMV8oTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTtGKUYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9JdGVtUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgICAicmVuZGVyIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9lbnRpdHkvSXRlbVJlbmRlcmVyO21fMTE1MTQzXyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1EaXNwbGF5Q29udGV4dDtaTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9NdWx0aUJ1ZmZlclNvdXJjZTtJSUxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZXNvdXJjZXMvbW9kZWwvQmFrZWRNb2RlbDspViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0d1aUdyYXBoaWNzTWl4aW4iOiB7CiAgICAgICAgImZpbGxHcmFkaWVudChJSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDEyMF8oSUlJSUlJSSlWIiwKICAgICAgICAiZHJhd0NlbnRlcmVkU3RyaW5nKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvQ29tcG9uZW50O0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA2NTNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvQ29tcG9uZW50O0lJSSlWIiwKICAgICAgICAiZHJhd1dvcmRXcmFwIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA1NTRfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvRm9ybWF0dGVkVGV4dDtJSUlJKVYiLAogICAgICAgICJyZW5kZXJGYWtlSXRlbSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMjAzXyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMjE4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJSUkpViIsCiAgICAgICAgImRyYXdDZW50ZXJlZFN0cmluZyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0ZvbnQ7TG5ldC9taW5lY3JhZnQvdXRpbC9Gb3JtYXR0ZWRDaGFyU2VxdWVuY2U7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDM2NF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L3V0aWwvRm9ybWF0dGVkQ2hhclNlcXVlbmNlO0lJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUZGSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxNjNfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJRkZJSUlJKVYiLAogICAgICAgICJibGl0KExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwNDExXyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJRkZJSUlJKVYiLAogICAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xqYXZhL2xhbmcvU3RyaW5nO0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMzdfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMamF2YS9sYW5nL1N0cmluZztJSUkpViIsCiAgICAgICAgImZpbGxHcmFkaWVudChMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvUmVuZGVyVHlwZTtJSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4NTk3OF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL1JlbmRlclR5cGU7SUlJSUlJSSlWIiwKICAgICAgICAiZmlsbEdyYWRpZW50KElJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAwMjRfKElJSUlJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMzk4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eVJlbmRlck1peGluIjogewogICAgICAgICJyZW5kZXJFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk1MTdfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7RERERkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7KVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9HYW1lUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgICAic2h1dGRvd25TaGFkZXJzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xNzI3NTlfKClWIiwKICAgICAgICAiZ2V0UmVuZGVyRGlzdGFuY2UiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0dhbWVSZW5kZXJlcjttXzEwOTE1Ml8oKUYiLAogICAgICAgICJzaHV0ZG93bkVmZmVjdCI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDg2XygpViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eUFuaW1hdGlvbk1peGluIjogewogICAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIsCiAgICAgICAgInRpY2tEZWF0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fNjE1M18oKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9EaWV4dkludmVudG9yeVByb3RlY3Rpb25NaXhpbiI6IHsKICAgICAgICAic3dhcFBhaW50IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fMzU5ODhfKEQpViIsCiAgICAgICAgImRyb3BBbGwiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV8zNjA3MV8oKVYiLAogICAgICAgICJjbGVhckNvbnRlbnQiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82MjExXygpViIsCiAgICAgICAgInNldEl0ZW0iOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82ODM2XyhJTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7KVYiLAogICAgICAgICJyZW1vdmVJdGVtKElJKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOyI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzc0MDdfKElJKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1dpbmRvd01peGluIjogewogICAgICAgICJyZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0dhbWVSZW5kZXJlcjttXzEwOTA5M18oRkpaKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9KU0NNaXhpbiI6IHsKICAgICAgICAiYWRkRW50aXR5IjogIkxuZXQvbWluZWNyYWZ0L3NlcnZlci9sZXZlbC9TZXJ2ZXJMZXZlbDttXzg4NzJfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7KVoiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9XaW5kb3dUaXRsZURpY3RhdG9yTWl4aW4iOiB7CiAgICAgICAgInNldFRpdGxlIjogIkxjb20vbW9qYW5nL2JsYXplM2QvcGxhdGZvcm0vV2luZG93O21fODU0MjJfKExqYXZhL2xhbmcvU3RyaW5nOylWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2V0U2NyZWVuTWl4aW4iOiB7CiAgICAgICAgInRpY2siOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L01pbmVjcmFmdDttXzkxMzk4XygpViIsCiAgICAgICAgInNldFNjcmVlbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTExNTJfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47KVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9MZXZlbFRpY2tNaXhpbiI6IHsKICAgICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9zZXJ2ZXIvbGV2ZWwvU2VydmVyTGV2ZWw7bV84NzkzXyhMamF2YS91dGlsL2Z1bmN0aW9uL0Jvb2xlYW5TdXBwbGllcjspViIKICAgICAgfQogICAgfQogIH0KfTwvcHJlPjwvYm9keT48L2h0bWw+":{"last_modified":"13410191221017173","zoom_level":0.5227586988632231},"file:///C:/Users/Administrator/MCreatorWorkspaces/AxisInnovatorsBox/javascript/LinuxTerminal.html":{"last_modified":"13410163296735238","zoom_level":1.2239010857415449}}}},"password_manager":{"autofillable_credentials_account_store_login_database":false,"autofillable_credentials_profile_store_login_database":false},"privacy_sandbox":{"first_party_sets_data_access_allowed_initialized":true},"profile":{"avatar_index":26,"content_settings":{"did_migrate_adaptive_notification_quieting_to_cpss":true,"disable_quiet_permission_ui_time":{"notifications":"13390881861687508"},"enable_cpss":{"notifications":true},"enable_quiet_permission_ui":{"notifications":false},"enable_quiet_permission_ui_enabling_method":{"notifications":1},"exceptions":{"3pcd_heuristics_grants":{},"3pcd_support":{},"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"anti_abuse":{},"app_banner":{},"ar":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"client_hints":{"https://cn.bing.com:443,*":{"last_modified":"13399890271326482","setting":{"client_hints":[6,8,9,10,11,12,13,14,16,23]}}},"clipboard":{},"cookie_controls_metadata":{},"cookies":{},"direct_sockets":{},"direct_sockets_private_network_access":{},"display_media_system_audio":{},"durable_storage":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{"https://accounts.google.com:443,*":{"last_modified":"13391185831813708","setting":{"chosen-objects":[{"idp-origin":"https://accounts.google.com","idp-signin-status":false}]}}},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"hand_tracking":{},"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"insecure_private_network":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"local_fonts":{},"media_engagement":{},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"password_protection":{},"payment_handler":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"private_network_chooser_data":{},"private_network_guard":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"https://casdoor.lingqi.vip:443,*":{"last_modified":"13411820818635807","setting":{"lastEngagementTime":1.3411792018635754e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":0.0,"rawScore":66.81816182171741}}},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"subresource_filter":{},"subresource_filter_data":{},"third_party_storage_partitioning":{},"top_level_3pcd_origin_trial":{},"top_level_3pcd_support":{},"top_level_storage_access":{},"tracking_protection":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"web_app_installation":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"132.0.6834.83","creation_time":"13390881861649643","did_work_around_bug_364820109_default":true,"did_work_around_bug_364820109_exceptions":true,"exit_type":"Crashed","family_link_user_state":6,"family_member_role":"not_in_family","last_engagement_time":"13411792018635754","last_time_obsolete_http_credentials_removed":1763271873.862677,"last_time_password_store_metrics_reported":1767347245.096734,"managed":{"locally_parent_approved_extensions":{},"locally_parent_approved_extensions_migration_state":1},"managed_user_id":"","name":"Person 1","password_account_storage_settings":{},"password_hash_data_list":[],"were_old_google_logins_removed":true},"safebrowsing":{"event_timestamps":{"0":{"10":[],"12":["13410165210","13410169679","13410187258","13410187264","13410187273","13410188720","13410188726","13410188925","13410190237","13410191005","13410191015","13410191306","13410191318"]}},"metrics_last_log_time":"13411820815","saw_interstitial_sber2":true,"scout_reporting_enabled_when_deprecated":false,"unhandled_sync_password_reuses":{}},"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"saved_tab_groups":{"specifics_to_data_migration":true},"segmentation_platform":{"client_result_prefs":"ClIKDXNob3BwaW5nX3VzZXISQQo2DQAAAAAQwqud/q2/6RcaJAocChoNAAAAPxIMU2hvcHBpbmdVc2VyGgVPdGhlchIEEAIYBCADEO2rnf6tv+kXCmoKGmNocm9tZV9sb3dfdXNlcl9lbmdhZ2VtZW50EkwKQQ0AAIA/EJf63q+2sukXGi8KJwolDQAAAD8SF0Nocm9tZUxvd1VzZXJFbmdhZ2VtZW50GgVPdGhlchIEEAcYBCACENv63q+2sukXCnMKFXBhc3N3b3JkX21hbmFnZXJfdXNlchJaCk8NAAAAABDvgN+vtrLpFxo9CjUKMw0AAAA/EhNQYXNzd29yZE1hbmFnZXJVc2VyGhdOb3RfUGFzc3dvcmRNYW5hZ2VyVXNlchIEEAcYBCABEKqB36+2sukXCmQKC3NlYXJjaF91c2VyElUKSg0AAAAAEN+B36+2sukXGjgKMBouCgoNAACAPxIDTG93Cg0NAACgQBIGTWVkaXVtCgsNAACwQRIESGlnaBIETm9uZRIEEAcYBCACEJaC36+2sukXCuUCChFjcm9zc19kZXZpY2VfdXNlchLPAgrDAg0AAIA/EJ793q+2sukXGrACCqcCGqQCChkNAACAPxISTm9Dcm9zc0RldmljZVVzYWdlChgNAAAAQBIRQ3Jvc3NEZXZpY2VNb2JpbGUKGQ0AAEBAEhJDcm9zc0RldmljZURlc2t0b3AKGA0AAIBAEhFDcm9zc0RldmljZVRhYmxldAoiDQAAoEASG0Nyb3NzRGV2aWNlTW9iaWxlQW5kRGVza3RvcAohDQAAwEASGkNyb3NzRGV2aWNlTW9iaWxlQW5kVGFibGV0CiINAADgQBIbQ3Jvc3NEZXZpY2VEZXNrdG9wQW5kVGFibGV0CiANAAAAQRIZQ3Jvc3NEZXZpY2VBbGxEZXZpY2VUeXBlcwoXDQAAEEESEENyb3NzRGV2aWNlT3RoZXISEk5vQ3Jvc3NEZXZpY2VVc2FnZRIEEAcYBCACENn93q+2sukXCmAKEXJlc3VtZV9oZWF2eV91c2VyEksKQA0AAAAAELD+3q+2sukXGi4KJgokDQAAAD8SFlJlc3VtZUhlYXZ5VXNlclNlZ21lbnQaBU90aGVyEgQQDhgEIAIQ3/7er7ay6Rc=","device_switcher_util":{"result":{"labels":["NotSynced"]}},"last_db_compaction_time":"13411699199000000","uma_in_sql_start_time":"13390881861679139"},"sessions":{"event_log":[{"crashed":true,"time":"13410189853243223","type":0},{"crashed":true,"time":"13410189940214903","type":0},{"crashed":true,"time":"13410190111239653","type":0},{"crashed":true,"time":"13410190173882418","type":0},{"crashed":true,"time":"13410190489381975","type":0},{"crashed":true,"time":"13410190566806394","type":0},{"crashed":true,"time":"13410190643125862","type":0},{"crashed":true,"time":"13410190847585404","type":0},{"crashed":true,"time":"13410191675223638","type":0},{"crashed":true,"time":"13410239923591354","type":0},{"crashed":true,"time":"13410596638442743","type":0},{"crashed":true,"time":"13410599267506564","type":0},{"crashed":true,"time":"13410600021520342","type":0},{"crashed":true,"time":"13410616600659739","type":0},{"crashed":true,"time":"13410697465344414","type":0},{"crashed":true,"time":"13410700077504629","type":0},{"crashed":true,"time":"13411376389792535","type":0},{"crashed":true,"time":"13411378254257884","type":0},{"crashed":true,"time":"13411820815094484","type":0}],"session_data_status":1},"should_read_incoming_syncing_theme_prefs":true,"signin":{"allowed":false},"spellcheck":{"dictionaries":["en-US"],"dictionary":""},"sync":{"data_type_status_for_sync_to_signin":{"app_list":false,"app_settings":false,"apps":false,"arc_package":false,"autofill":false,"autofill_profiles":false,"autofill_wallet":false,"autofill_wallet_credential":false,"autofill_wallet_metadata":false,"autofill_wallet_offer":false,"autofill_wallet_usage":false,"bookmarks":false,"collaboration_group":false,"contact_info":false,"cookies":false,"device_info":false,"dictionary":false,"extension_settings":false,"extensions":false,"history":false,"history_delete_directives":false,"incoming_password_sharing_invitation":false,"managed_user_settings":false,"nigori":false,"os_preferences":false,"os_priority_preferences":false,"outgoing_password_sharing_invitation":false,"passwords":false,"plus_address":false,"plus_address_setting":false,"power_bookmark":false,"preferences":false,"printers":false,"printers_authorization_servers":false,"priority_preferences":false,"product_comparison":false,"reading_list":false,"saved_tab_group":false,"search_engines":false,"security_events":false,"send_tab_to_self":false,"sessions":false,"shared_tab_group_data":false,"sharing_message":false,"themes":false,"user_consent":false,"user_events":false,"web_apps":false,"webapks":false,"webauthn_credential":false,"wifi_configurations":false,"workspace_desk":false},"encryption_bootstrap_token_per_account_migration_done":true,"feature_status_for_sync_to_signin":5},"tab_group_saves_ui_update_migrated":true,"total_passwords_available_for_account":0,"total_passwords_available_for_profile":0,"translate_site_blacklist":[],"translate_site_blocklist_with_time":{},"updateclientdata":{"apps":{"ncennffkjdiamlpmcbajkmaiiiddgioo":{"cohort":"1::","cohortname":"","dlrc":6941,"fp":"1.fc32d125fc37b80eefad0fd38661479f97fdf322709f352ad1350dd8a14f3dcf","installdate":6698,"max_pv":"3.52.13","pf":"1a212695-394c-4d6f-9372-bba50e3f4c7e","pv":"3.52.14"}}},"updateclientlastupdatecheckerror":-356,"updateclientlastupdatecheckerrorcategory":5,"updateclientlastupdatecheckerrorextracode1":0,"web_apps":{"did_migrate_default_chrome_apps":["MigrateDefaultChromeAppToWebAppsGSuite","MigrateDefaultChromeAppToWebAppsNonGSuite"],"last_preinstall_synchronize_version":"132"}} \ No newline at end of file +{"accessibility":{"captions":{"live_caption_language":"en-US"}},"account_tracker_service_last_update":"13411820815142525","alternate_error_pages":{"backup":true},"announcement_notification_service_first_run_time":"13390881861683238","apps":{"shortcuts_arch":"","shortcuts_version":0},"autocomplete":{"retention_policy_last_version":132},"autofill":{"last_version_deduped":132},"browser":{"app_window_placement":{"DevToolsApp":{"always_on_top":false,"bottom":961,"left":1058,"maximized":false,"right":2138,"top":161,"work_area_bottom":1032,"work_area_left":0,"work_area_right":1920,"work_area_top":0}},"has_seen_welcome_page":false},"commerce_daily_metrics_last_update_time":"13411820815143441","countryid_at_install":17230,"default_apps_install_state":3,"default_search_provider":{"guid":""},"devtools":{"adb_key":"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/fH93dsJxjHkARPbm4ENKQz3YyDD/k9eLSjQRE0mzYLV7BHB3CL8A8gYk8/ohTyTnHQd66224XmN/UogWbGMtejOxyHW/zHgDKeAyW99TljlFwRgeUuagOC3toekozJvP2Lz6c3+prJJjmApbBfpaQ1CQGImOp1yKIsHEeEyy+34GhtZl3763IvQuGdhbXf9nqS1h1pSv13Or5JIGHjRDOY4kZl1ags2RPb92vnpN2imdus+Z9jCKc7ileme2yXpiKZBDzJOh1vRIamb7RWUoOkVz1idsfsScWFDTzv6b7wtbKFBmMvN0SfEg+WQwQP8z+P8QsfdjkIz2K9tRAVVXAgMBAAECggEAFhMBEsGDCtn5vPk2SUlDGJWF1K7HTz840trcA7fogCA+646IdIBynGZKJQpnJF3eUDI9gYMQY/elmrDl9UfLaxuyR+VnBZRJpXu3V7bVmOoxcgQfhqdh5Mh1KvbGTSjBMYW3y1tzNRkqywZk8zdONAeciu/5M5PBjD8TfVWs6dj2qqAOrJQrsH26k5pkG3lykiABavfJrfRrvN/nbdMxlHKv8BYhHWScejMVUR+8wsOqazQjsPW/TtmqUSCwPF8bj7vT19LVqOuE8E1BnaClnCfzqgDISb/kvGPeyvYGZJBA8Bv8PKAat8eZNVvDSGiWGwlqMKC9uMuflafgiEtoMQKBgQD7O+FstyvlT+Q9kNO7GJxptGvgNLpDUgP/8T69UVQuDmGq5pHm1V2sBiIU/gbzqJksnlUY/5+TTIAUrbaNqyoti4lKAzF44JhhE/oECRcxijemfNgT3zO+1rv1vYBvKh5RrjWmdbtKl5VhEByTj4Jj9ksGskYgvupmy1KiRcYFjwKBgQDDHnPlnJRTxd8FLptpikSvBtBX4n09jXb09LRkHbWcoiWSkcKqprNIR7nbU5PIBrniGPYiUcapjksoza4NLPQMZRCVSJ0WW6977piCSx6J7bjkxOVDRxPXcRTYGBM3Skigc/TJbnk9li4kWO/Ey9m7ElK+l/5yQhD5ohuHcpUfuQKBgQC47yFHF6a2TBLkxuE0zi8FGIx4JBggShUrp/fZAC8JIAkA9mzcEJ+9a15XOY8AeVEXqQ1XM4PRt/RoRF8m9aI8mIRc+PDH2/wPKddWdSKfkvDYGvor1peOmR8PC4mpSsW6tpRDjlJp3B9XrbZ7YJ5I2xnrOfupSx/cvzp6vQXBPQKBgAwhFn9NjoLuqACAdzTGXaKrv8PW1oY/BwgPNi+LEUEda0yDNyC4oCh8HPefaG5kzKVbe+GCR+E+cTmmH42+H6WtmqxNCUbciDoiCOUAmnNkjbva6Y2XG4qnAu60AG3NdlpTGwJylaLYdSHZTX5kVbKlXvNuK2ka5kc+Zouy+cYxAoGAaua2QFf45bDw7IaNJRepgHf9VIWjMgkwmf+iRcnKht32tWskhxKiefAaf0ArK2qpeYI5r6jF/ThiDixZ+EGlU9WcfC3cm3LcweY5RRRthnlKIJAsxHgxP4I7O4iBG+hcVaWVnl1S2oHndGldOOJnHtbafRVoZBvRfWGjuusT6lc=","last_open_timestamp":"13408267868797","preferences":{"closeable-tabs":"{\"security\":true,\"freestyler\":true,\"chrome-recorder\":true}","console.sidebar-selected-filter":"\"message\"","console.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","disable-locale-info-bar":"true","elements.styles.sidebar.width":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","inspector.drawer-split-view-state":"{\"horizontal\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","inspectorVersion":"38","network-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","network-panel-split-view-state":"{\"vertical\":{\"size\":0}}","network-panel-split-view-waterfall":"{\"vertical\":{\"size\":0}}","panel-selected-tab":"\"console\"","request-info-form-data-category-expanded":"true","request-info-general-category-expanded":"true","request-info-query-string-category-expanded":"true","request-info-request-headers-category-expanded":"true","request-info-request-payload-category-expanded":"true","request-info-response-headers-category-expanded":"true","selected-profile-type":"\"HEAP\"","sources-panel-navigator-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","sources-panel-split-view-state":"{\"vertical\":{\"size\":0,\"showMode\":\"Both\"}}","styles-pane-sidebar-tab-order":"{\"styles\":10,\"computed\":20}","timeline-counters-split-view-state":"{\"horizontal\":{\"size\":0}}","timeline-panel-sidebar-state":"{\"vertical\":{\"size\":0,\"showMode\":\"OnlyMain\"}}","timeline-tree-view-details-split-widget":"{\"vertical\":{\"size\":0}}"},"synced_preferences_sync_disabled":{"adorner-settings":"[{\"adorner\":\"grid\",\"isEnabled\":true},{\"adorner\":\"subgrid\",\"isEnabled\":true},{\"adorner\":\"flex\",\"isEnabled\":true},{\"adorner\":\"ad\",\"isEnabled\":true},{\"adorner\":\"scroll-snap\",\"isEnabled\":true},{\"adorner\":\"container\",\"isEnabled\":true},{\"adorner\":\"slot\",\"isEnabled\":true},{\"adorner\":\"top-layer\",\"isEnabled\":true},{\"adorner\":\"reveal\",\"isEnabled\":true},{\"adorner\":\"media\",\"isEnabled\":false},{\"adorner\":\"scroll\",\"isEnabled\":true}]","disable-self-xss-warning":"true","language":"\"zh\"","syncedInspectorVersion":"38"}},"domain_diversity":{"last_reporting_timestamp":"13411820815143118"},"enterprise_profile_guid":"07ed7021-5e22-4f28-ba47-4050106d111f","extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"commands":{},"last_chrome_version":"132.0.6834.83"},"gaia_cookie":{"changed_time":1753261745.285936,"hash":"2jmj7l5rSw0yVb/vlWAYkK/YBwk=","last_list_accounts_data":"[\"gaia.l.a.r\",[]]"},"gcm":{"product_category_for_subtypes":"org.chromium.windows"},"google":{"services":{"signin_scoped_device_id":"ee0523f5-66e0-44d0-bb14-8ac328d2cc32"}},"history_clusters":{"all_cache":{"all_keywords":{},"all_timestamp":"0"},"short_cache":{"short_keywords":{},"short_timestamp":"0"}},"https_upgrade_navigations":{"2025-08-18":100},"in_product_help":{"new_badge":{"Compose":{"feature_enabled_time":"13399955274182245","show_count":0,"used_count":0},"ComposeNudge":{"feature_enabled_time":"13399955274182272","show_count":0,"used_count":0},"ComposeProactiveNudge":{"feature_enabled_time":"13399955274182278","show_count":0,"used_count":0},"LensOverlay":{"feature_enabled_time":"13399955274182284","show_count":0,"used_count":0}},"recent_session_enabled_time":"13399955274179816","recent_session_start_times":["13408263815088255","13408246635765929"],"session_last_active_time":"13408267868798050","session_start_time":"13408263815088255"},"intl":{"accept_languages":"en-US,en","selected_languages":"en-US,en"},"invalidation":{"per_sender_topics_to_handler":{"1013309121859":{}}},"media":{"engagement":{"schema_version":5}},"media_router":{"receiver_id_hash_token":"GDyHbsNwaJywl4I7Xhu2zWpA0xHt8oxXsvhUy4j3sqy1GsJ1F67UrrkMAT2lfWxLRVowNBaruSs3pFlNBSkocQ=="},"ntp":{"num_personal_suggestions":8},"optimization_guide":{"hintsfetcher":{"hosts_successfully_fetched":{}},"previous_optimization_types_with_filter":{"AMERICAN_EXPRESS_CREDIT_CARD_FLIGHT_BENEFITS":true,"AMERICAN_EXPRESS_CREDIT_CARD_SUBSCRIPTION_BENEFITS":true,"AUTOFILL_ABLATION_SITES_LIST1":true,"AUTOFILL_ABLATION_SITES_LIST2":true,"AUTOFILL_ABLATION_SITES_LIST3":true,"AUTOFILL_ABLATION_SITES_LIST4":true,"AUTOFILL_ABLATION_SITES_LIST5":true,"BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM":true,"BUY_NOW_PAY_LATER_ALLOWLIST_ZIP":true,"CAPITAL_ONE_CREDIT_CARD_BENEFITS_BLOCKED":true,"CAPITAL_ONE_CREDIT_CARD_DINING_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_ENTERTAINMENT_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_GROCERY_BENEFITS":true,"CAPITAL_ONE_CREDIT_CARD_STREAMING_BENEFITS":true,"HISTORY_CLUSTERS":true,"HISTORY_EMBEDDINGS":true,"IBAN_AUTOFILL_BLOCKED":true,"PIX_MERCHANT_ORIGINS_ALLOWLIST":true,"PIX_PAYMENT_MERCHANT_ALLOWLIST":true,"SHARED_CREDIT_CARD_DINING_BENEFITS":true,"SHARED_CREDIT_CARD_ENTERTAINMENT_BENEFITS":true,"SHARED_CREDIT_CARD_FLIGHT_BENEFITS":true,"SHARED_CREDIT_CARD_GROCERY_BENEFITS":true,"SHARED_CREDIT_CARD_STREAMING_BENEFITS":true,"SHARED_CREDIT_CARD_SUBSCRIPTION_BENEFITS":true,"SHOPPING_PAGE_PREDICTOR":true,"TEXT_CLASSIFIER_ENTITY_DETECTION":true,"VCN_MERCHANT_OPT_OUT_DISCOVER":true,"VCN_MERCHANT_OPT_OUT_MASTERCARD":true,"VCN_MERCHANT_OPT_OUT_VISA":true},"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"HISTORY_CLUSTERS":true,"PRICE_TRACKING":true,"V8_COMPILE_HINTS":true},"store_file_paths_to_delete":{}},"partition":{"per_host_zoom_levels":{"x":{"data:image/png;base64,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":{"last_modified":"13410191271557769","zoom_level":-1.5778829311823859},"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAH2mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIzLTA3LTE3VDE2OjIyOjM3KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wNy0zMFQxMDo1NToyMSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNC0wNy0zMFQxMDo1NToyMSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjZDUzMmY3NS0wNGNjLTYyNDQtYmZmMi1lNTAzZTU2YzFiNzgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4ZGQ2ZWE3NC0wMTFmLWJhNDgtOTdhMS1lODFhNDU4ZGEzMGQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1MDU2NDgxNS1lNjU2LWE5NGYtOGM0ZC1mODZhY2ZkZTcwODQiPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT41MzY5NDE5NDY1QzdCMjNBNjdCN0JENjk0MzFEOEM1NjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NWZjNjY4Ni1hNDU4LTBkNGItYmVkZi1mNTJiMjFlZjY5NjY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZDg3NDA2YmMtZTBjMi0wMzQ4LWJhYjYtNjUxYTFhY2FiNWY3PC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NTA1NjQ4MTUtZTY1Ni1hOTRmLThjNGQtZjg2YWNmZGU3MDg0IiBzdEV2dDp3aGVuPSIyMDIzLTA3LTE3VDE2OjIyOjM3KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyYjkyZjNiLTUwOGYtZWI0Yy04MGRkLTZiZmYwYWEyYmQ4NiIgc3RFdnQ6d2hlbj0iMjAyMy0wNy0xN1QxNjoyMzozMiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjZDUzMmY3NS0wNGNjLTYyNDQtYmZmMi1lNTAzZTU2YzFiNzgiIHN0RXZ0OndoZW49IjIwMjQtMDctMzBUMTA6NTU6MjErMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oPIg7AAACI0lEQVRYhb1XzUrcUBT+TrA6aFf2AURwPSs3Xbhy47LQZ+hDdFeh4CMIPoNMRUFQFK2000WlFDo2DupYpDQzulG0/o75XCSTuUnunUkyTg5ckpyce7/vnHNP7okgByEZ3C9WwBcWYQEAJA94jwBJbB0wJJtVhVm/CXz/w5jsHpNWHgR+/QUnx+L6wYGUC7VCmWYcNuKek+TPE5JpM5AWvNpwteDVesbcpwHfN4Dbnj4TfmLwvbo+7L4+VJbPTsAEXnHa4H0jYBvAbcXzvhGwu+S8rwQqjh58r/6oBe9KQFmjKwH71ABu8DwNAfWqJXB+qQevNNrzeiUQvQ/GxZUe/Me/zp5nIRB7vrzRg5dPkoGrBLQHsm/AyHsCkOs7cngoPu36jhgeksQHvPim3QhEbbSx+39LjBSSg6sEOh3HwYIiEkyIytWtmxpclZ76gfsm8bJg9dRXdUpB8AhARCSaGuP8RMBJgqZWQEQHkjhznJ57OmNTRBK7zm82789RfFUkSdEwF5+d7l1y0dWp67Zr/VttRy13nX0oSmlEuwnLtc9UvRksjAKelwJvD7RGS8Tz4xlOuS9H26Gvmx+JmJ0hItl7vfWlT1wrlULgX2vbxg2oIZI9D+tLpeg6LHt5z948JBQLAPjohpQbK8t4PT6Vy4+bNf9xlpPFmZAyp19GAMCA5TYxOjGC5gOxs1oCCEy/eZsbB1n48J7ip/nd7FyezgMAngBiObqoWMJNIAAAAABJRU5ErkJggg==":{"last_modified":"13410190740190610","zoom_level":-3.8017840169239308},"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHkgc3R5bGU9Im1hcmdpbjowO2JhY2tncm91bmQ6IzBiMGIwYjsiPjxwcmUgc3R5bGU9ImNvbG9yOiNlNmU2ZTY7cGFkZGluZzoxMHB4O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDsiPnsKICAibWFwcGluZ3MiOiB7CiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGVhdGhUaW1lTG9ja01peGluIjogewogICAgICAiYWN0dWFsbHlIdXJ0IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV82NDc1XyhMbmV0L21pbmVjcmFmdC93b3JsZC9kYW1hZ2Vzb3VyY2UvRGFtYWdlU291cmNlO0YpViIsCiAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2NyZWVuTWl4aW4iOiB7CiAgICAgICJyZW5kZXJCYWNrZ3JvdW5kIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47bV8yODAyNzNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7KVYiLAogICAgICAicmVuZGVyIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47bV84ODMxNV8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljcztJSUYpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRnVja1JlbmRlck1peGluIjogewogICAgICAicmVuZGVyQmFja2dyb3VuZCI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fMjgwMjczXyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzOylWIiwKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eVNlbGVjdG9yTWl4aW4iOiB7CiAgICAgICJmaW5kRW50aXRpZXMiOiAiTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvYXJndW1lbnRzL3NlbGVjdG9yL0VudGl0eVNlbGVjdG9yO21fMTIxMTYwXyhMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9Db21tYW5kU291cmNlU3RhY2s7KUxqYXZhL3V0aWwvTGlzdDsiLAogICAgICAiZmluZFNpbmdsZUVudGl0eSI6ICJMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9hcmd1bWVudHMvc2VsZWN0b3IvRW50aXR5U2VsZWN0b3I7bV8xMjExMzlfKExuZXQvbWluZWNyYWZ0L2NvbW1hbmRzL0NvbW1hbmRTb3VyY2VTdGFjazspTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0VudGl0eTsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1BsYXllck1peGluIjogewogICAgICAiZ2V0TWF4SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTIzM18oKUYiLAogICAgICAiZ2V0SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTIyM18oKUYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xldmVsUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgInJlbmRlckRlYnVnIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjY5MjQwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL011bHRpQnVmZmVyU291cmNlO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7KVYiLAogICAgICAicmVuZGVyRW5kU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMTA5NzgwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7KVYiLAogICAgICAicmVuZGVyU2hhcGUiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk3ODJfKExjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9WZXJ0ZXhDb25zdW1lcjtMbmV0L21pbmVjcmFmdC93b3JsZC9waHlzL3NoYXBlcy9Wb3hlbFNoYXBlO0REREZGRkYpViIsCiAgICAgICJyZW5kZXJTbm93QW5kUmFpbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzEwOTcwM18oTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xpZ2h0VGV4dHVyZTtGREREKVYiLAogICAgICAic2V0dXBSZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xOTQzMzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2N1bGxpbmcvRnJ1c3R1bTtaWilWIiwKICAgICAgInJlbmRlckNsb3VkcyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzI1MzA1NF8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xvcmcvam9tbC9NYXRyaXg0ZjtGREREKVYiLAogICAgICAicmVuZGVyU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjAyNDIzXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG9yZy9qb21sL01hdHJpeDRmO0ZMbmV0L21pbmVjcmFmdC9jbGllbnQvQ2FtZXJhO1pMamF2YS9sYW5nL1J1bm5hYmxlOylWIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9MaWZlTG9ja01peGluIjogewogICAgICAiaGVhbCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fNTYzNF8oRilWIiwKICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIiwKICAgICAgInNldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjExNTNfKEYpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGlleHZBbnRpRGlzYXJtTWl4aW4iOiB7CiAgICAgICJkcm9wKExuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrO1paKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9pdGVtL0l0ZW1FbnRpdHk7IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvUGxheWVyO21fNzE5N18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7WlopTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L2l0ZW0vSXRlbUVudGl0eTsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1N5bmNoZWREYXRhTWl4aW4iOiB7CiAgICAgICJnZXQiOiAiTG5ldC9taW5lY3JhZnQvbmV0d29yay9zeW5jaGVyL1N5bmNoZWRFbnRpdHlEYXRhO21fMTM1MzcwXyhMbmV0L21pbmVjcmFmdC9uZXR3b3JrL3N5bmNoZXIvRW50aXR5RGF0YUFjY2Vzc29yOylMamF2YS9sYW5nL09iamVjdDsiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0NsaWVudERlYXRoVGltZU1peGluIjogewogICAgICAiZ2V0V2hpdGVPdmVybGF5UHJvZ3Jlc3MiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2VudGl0eS9MaXZpbmdFbnRpdHlSZW5kZXJlcjttXzY5MzFfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7RilGIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9JdGVtUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvZW50aXR5L0l0ZW1SZW5kZXJlcjttXzExNTE0M18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7TG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtRGlzcGxheUNvbnRleHQ7Wkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7SUlMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVzb3VyY2VzL21vZGVsL0Jha2VkTW9kZWw7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0d1aUdyYXBoaWNzTWl4aW4iOiB7CiAgICAgICJmaWxsR3JhZGllbnQoSUlJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMjBfKElJSUlJSUkpViIsCiAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L25ldHdvcmsvY2hhdC9Db21wb25lbnQ7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDY1M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L25ldHdvcmsvY2hhdC9Db21wb25lbnQ7SUlJKVYiLAogICAgICAiZHJhd1dvcmRXcmFwIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA1NTRfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvRm9ybWF0dGVkVGV4dDtJSUlJKVYiLAogICAgICAicmVuZGVyRmFrZUl0ZW0iOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDIwM18oTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7SUkpViIsCiAgICAgICJibGl0KExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAyMThfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlJSSlWIiwKICAgICAgImRyYXdDZW50ZXJlZFN0cmluZyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0ZvbnQ7TG5ldC9taW5lY3JhZnQvdXRpbC9Gb3JtYXR0ZWRDaGFyU2VxdWVuY2U7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDM2NF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L3V0aWwvRm9ybWF0dGVkQ2hhclNlcXVlbmNlO0lJSSlWIiwKICAgICAgImJsaXQoTG5ldC9taW5lY3JhZnQvcmVzb3VyY2VzL1Jlc291cmNlTG9jYXRpb247SUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMTYzXyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUZGSUlJSSlWIiwKICAgICAgImJsaXQoTG5ldC9taW5lY3JhZnQvcmVzb3VyY2VzL1Jlc291cmNlTG9jYXRpb247SUlJSUZGSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA0MTFfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlGRklJSUkpViIsCiAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xqYXZhL2xhbmcvU3RyaW5nO0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMzdfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMamF2YS9sYW5nL1N0cmluZztJSUkpViIsCiAgICAgICJmaWxsR3JhZGllbnQoTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL1JlbmRlclR5cGU7SUlJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODU5NzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9SZW5kZXJUeXBlO0lJSUlJSUkpViIsCiAgICAgICJmaWxsR3JhZGllbnQoSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDAyNF8oSUlJSUlJKVYiLAogICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMzk4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRW50aXR5UmVuZGVyTWl4aW4iOiB7CiAgICAgICJyZW5kZXJFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk1MTdfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7RERERkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0dhbWVSZW5kZXJlck1peGluIjogewogICAgICAic2h1dGRvd25TaGFkZXJzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xNzI3NTlfKClWIiwKICAgICAgImdldFJlbmRlckRpc3RhbmNlIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xMDkxNTJfKClGIiwKICAgICAgInNodXRkb3duRWZmZWN0IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xMDkwODZfKClWIiwKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRW50aXR5QW5pbWF0aW9uTWl4aW4iOiB7CiAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIsCiAgICAgICJ0aWNrRGVhdGgiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzYxNTNfKClWIgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9EaWV4dkludmVudG9yeVByb3RlY3Rpb25NaXhpbiI6IHsKICAgICAgInN3YXBQYWludCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzM1OTg4XyhEKVYiLAogICAgICAiZHJvcEFsbCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzM2MDcxXygpViIsCiAgICAgICJjbGVhckNvbnRlbnQiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82MjExXygpViIsCiAgICAgICJzZXRJdGVtIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fNjgzNl8oSUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOylWIiwKICAgICAgInJlbW92ZUl0ZW0oSUkpTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fNzQwN18oSUkpTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7IgogICAgfSwKICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9XaW5kb3dNaXhpbiI6IHsKICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vSlNDTWl4aW4iOiB7CiAgICAgICJhZGRFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvc2VydmVyL2xldmVsL1NlcnZlckxldmVsO21fODg3Ml8oTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0VudGl0eTspWiIKICAgIH0sCiAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vV2luZG93VGl0bGVEaWN0YXRvck1peGluIjogewogICAgICAic2V0VGl0bGUiOiAiTGNvbS9tb2phbmcvYmxhemUzZC9wbGF0Zm9ybS9XaW5kb3c7bV84NTQyMl8oTGphdmEvbGFuZy9TdHJpbmc7KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1NldFNjcmVlbk1peGluIjogewogICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTEzOThfKClWIiwKICAgICAgInNldFNjcmVlbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTExNTJfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47KVYiCiAgICB9LAogICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xldmVsVGlja01peGluIjogewogICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9zZXJ2ZXIvbGV2ZWwvU2VydmVyTGV2ZWw7bV84NzkzXyhMamF2YS91dGlsL2Z1bmN0aW9uL0Jvb2xlYW5TdXBwbGllcjspViIKICAgIH0KICB9LAogICJkYXRhIjogewogICAgInNlYXJnZSI6IHsKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0RlYXRoVGltZUxvY2tNaXhpbiI6IHsKICAgICAgICAiYWN0dWFsbHlIdXJ0IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV82NDc1XyhMbmV0L21pbmVjcmFmdC93b3JsZC9kYW1hZ2Vzb3VyY2UvRGFtYWdlU291cmNlO0YpViIsCiAgICAgICAgInRpY2siOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzgxMTlfKClWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2NyZWVuTWl4aW4iOiB7CiAgICAgICAgInJlbmRlckJhY2tncm91bmQiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9zY3JlZW5zL1NjcmVlbjttXzI4MDI3M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczspViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9GdWNrUmVuZGVyTWl4aW4iOiB7CiAgICAgICAgInJlbmRlckJhY2tncm91bmQiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9zY3JlZW5zL1NjcmVlbjttXzI4MDI3M18oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczspViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL3NjcmVlbnMvU2NyZWVuO21fODgzMTVfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7SUlGKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9FbnRpdHlTZWxlY3Rvck1peGluIjogewogICAgICAgICJmaW5kRW50aXRpZXMiOiAiTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvYXJndW1lbnRzL3NlbGVjdG9yL0VudGl0eVNlbGVjdG9yO21fMTIxMTYwXyhMbmV0L21pbmVjcmFmdC9jb21tYW5kcy9Db21tYW5kU291cmNlU3RhY2s7KUxqYXZhL3V0aWwvTGlzdDsiLAogICAgICAgICJmaW5kU2luZ2xlRW50aXR5IjogIkxuZXQvbWluZWNyYWZ0L2NvbW1hbmRzL2FyZ3VtZW50cy9zZWxlY3Rvci9FbnRpdHlTZWxlY3RvcjttXzEyMTEzOV8oTG5ldC9taW5lY3JhZnQvY29tbWFuZHMvQ29tbWFuZFNvdXJjZVN0YWNrOylMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvRW50aXR5OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1BsYXllck1peGluIjogewogICAgICAgICJnZXRNYXhIZWFsdGgiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzIxMjMzXygpRiIsCiAgICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vTGV2ZWxSZW5kZXJlck1peGluIjogewogICAgICAgICJyZW5kZXJEZWJ1ZyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzI2OTI0MF8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9NdWx0aUJ1ZmZlclNvdXJjZTtMbmV0L21pbmVjcmFmdC9jbGllbnQvQ2FtZXJhOylWIiwKICAgICAgICAicmVuZGVyRW5kU2t5IjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMTA5NzgwXyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7KVYiLAogICAgICAgICJyZW5kZXJTaGFwZSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzEwOTc4Ml8oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1ZlcnRleENvbnN1bWVyO0xuZXQvbWluZWNyYWZ0L3dvcmxkL3BoeXMvc2hhcGVzL1ZveGVsU2hhcGU7RERERkZGRilWIiwKICAgICAgICAicmVuZGVyU25vd0FuZFJhaW4iOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk3MDNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MaWdodFRleHR1cmU7RkRERClWIiwKICAgICAgICAic2V0dXBSZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xOTQzMzhfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9DYW1lcmE7TG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL2N1bGxpbmcvRnJ1c3R1bTtaWilWIiwKICAgICAgICAicmVuZGVyQ2xvdWRzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9MZXZlbFJlbmRlcmVyO21fMjUzMDU0XyhMY29tL21vamFuZy9ibGF6ZTNkL3ZlcnRleC9Qb3NlU3RhY2s7TG9yZy9qb21sL01hdHJpeDRmO0ZEREQpViIsCiAgICAgICAgInJlbmRlclNreSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTGV2ZWxSZW5kZXJlcjttXzIwMjQyM18oTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xvcmcvam9tbC9NYXRyaXg0ZjtGTG5ldC9taW5lY3JhZnQvY2xpZW50L0NhbWVyYTtaTGphdmEvbGFuZy9SdW5uYWJsZTspViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0xpZmVMb2NrTWl4aW4iOiB7CiAgICAgICAgImhlYWwiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTttXzU2MzRfKEYpViIsCiAgICAgICAgImdldEhlYWx0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fMjEyMjNfKClGIiwKICAgICAgICAic2V0SGVhbHRoIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV8yMTE1M18oRilWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vRGlleHZBbnRpRGlzYXJtTWl4aW4iOiB7CiAgICAgICAgImRyb3AoTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7WlopTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L2l0ZW0vSXRlbUVudGl0eTsiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9QbGF5ZXI7bV83MTk3XyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztaWilMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvaXRlbS9JdGVtRW50aXR5OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1N5bmNoZWREYXRhTWl4aW4iOiB7CiAgICAgICAgImdldCI6ICJMbmV0L21pbmVjcmFmdC9uZXR3b3JrL3N5bmNoZXIvU3luY2hlZEVudGl0eURhdGE7bV8xMzUzNzBfKExuZXQvbWluZWNyYWZ0L25ldHdvcmsvc3luY2hlci9FbnRpdHlEYXRhQWNjZXNzb3I7KUxqYXZhL2xhbmcvT2JqZWN0OyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0NsaWVudERlYXRoVGltZU1peGluIjogewogICAgICAgICJnZXRXaGl0ZU92ZXJsYXlQcm9ncmVzcyI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvZW50aXR5L0xpdmluZ0VudGl0eVJlbmRlcmVyO21fNjkzMV8oTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L0xpdmluZ0VudGl0eTtGKUYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9JdGVtUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgICAicmVuZGVyIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9lbnRpdHkvSXRlbVJlbmRlcmVyO21fMTE1MTQzXyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1EaXNwbGF5Q29udGV4dDtaTGNvbS9tb2phbmcvYmxhemUzZC92ZXJ0ZXgvUG9zZVN0YWNrO0xuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9NdWx0aUJ1ZmZlclNvdXJjZTtJSUxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZXNvdXJjZXMvbW9kZWwvQmFrZWRNb2RlbDspViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0d1aUdyYXBoaWNzTWl4aW4iOiB7CiAgICAgICAgImZpbGxHcmFkaWVudChJSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDEyMF8oSUlJSUlJSSlWIiwKICAgICAgICAiZHJhd0NlbnRlcmVkU3RyaW5nKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvQ29tcG9uZW50O0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA2NTNfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvQ29tcG9uZW50O0lJSSlWIiwKICAgICAgICAiZHJhd1dvcmRXcmFwIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODA1NTRfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMbmV0L21pbmVjcmFmdC9uZXR3b3JrL2NoYXQvRm9ybWF0dGVkVGV4dDtJSUlJKVYiLAogICAgICAgICJyZW5kZXJGYWtlSXRlbSI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMjAzXyhMbmV0L21pbmVjcmFmdC93b3JsZC9pdGVtL0l0ZW1TdGFjaztJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMjE4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJSUkpViIsCiAgICAgICAgImRyYXdDZW50ZXJlZFN0cmluZyhMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0ZvbnQ7TG5ldC9taW5lY3JhZnQvdXRpbC9Gb3JtYXR0ZWRDaGFyU2VxdWVuY2U7SUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4MDM2NF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xuZXQvbWluZWNyYWZ0L3V0aWwvRm9ybWF0dGVkQ2hhclNlcXVlbmNlO0lJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUZGSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxNjNfKExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJRkZJSUlJKVYiLAogICAgICAgICJibGl0KExuZXQvbWluZWNyYWZ0L3Jlc291cmNlcy9SZXNvdXJjZUxvY2F0aW9uO0lJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwNDExXyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlJRkZJSUlJKVYiLAogICAgICAgICJkcmF3Q2VudGVyZWRTdHJpbmcoTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9Gb250O0xqYXZhL2xhbmcvU3RyaW5nO0lJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAxMzdfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvRm9udDtMamF2YS9sYW5nL1N0cmluZztJSUkpViIsCiAgICAgICAgImZpbGxHcmFkaWVudChMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvUmVuZGVyVHlwZTtJSUlJSUlJKVYiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L2d1aS9HdWlHcmFwaGljczttXzI4NTk3OF8oTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL1JlbmRlclR5cGU7SUlJSUlJSSlWIiwKICAgICAgICAiZmlsbEdyYWRpZW50KElJSUlJSSlWIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvR3VpR3JhcGhpY3M7bV8yODAwMjRfKElJSUlJSSlWIiwKICAgICAgICAiYmxpdChMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvZ3VpL0d1aUdyYXBoaWNzO21fMjgwMzk4XyhMbmV0L21pbmVjcmFmdC9yZXNvdXJjZXMvUmVzb3VyY2VMb2NhdGlvbjtJSUlGRklJSUkpViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eVJlbmRlck1peGluIjogewogICAgICAgICJyZW5kZXJFbnRpdHkiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0xldmVsUmVuZGVyZXI7bV8xMDk1MTdfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7RERERkxjb20vbW9qYW5nL2JsYXplM2QvdmVydGV4L1Bvc2VTdGFjaztMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvTXVsdGlCdWZmZXJTb3VyY2U7KVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9HYW1lUmVuZGVyZXJNaXhpbiI6IHsKICAgICAgICAic2h1dGRvd25TaGFkZXJzIjogIkxuZXQvbWluZWNyYWZ0L2NsaWVudC9yZW5kZXJlci9HYW1lUmVuZGVyZXI7bV8xNzI3NTlfKClWIiwKICAgICAgICAiZ2V0UmVuZGVyRGlzdGFuY2UiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0dhbWVSZW5kZXJlcjttXzEwOTE1Ml8oKUYiLAogICAgICAgICJzaHV0ZG93bkVmZmVjdCI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDg2XygpViIsCiAgICAgICAgInJlbmRlciI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvcmVuZGVyZXIvR2FtZVJlbmRlcmVyO21fMTA5MDkzXyhGSlopViIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL0VudGl0eUFuaW1hdGlvbk1peGluIjogewogICAgICAgICJ0aWNrIjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9MaXZpbmdFbnRpdHk7bV84MTE5XygpViIsCiAgICAgICAgInRpY2tEZWF0aCI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvTGl2aW5nRW50aXR5O21fNjE1M18oKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9EaWV4dkludmVudG9yeVByb3RlY3Rpb25NaXhpbiI6IHsKICAgICAgICAic3dhcFBhaW50IjogIkxuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9wbGF5ZXIvSW52ZW50b3J5O21fMzU5ODhfKEQpViIsCiAgICAgICAgImRyb3BBbGwiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV8zNjA3MV8oKVYiLAogICAgICAgICJjbGVhckNvbnRlbnQiOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82MjExXygpViIsCiAgICAgICAgInNldEl0ZW0iOiAiTG5ldC9taW5lY3JhZnQvd29ybGQvZW50aXR5L3BsYXllci9JbnZlbnRvcnk7bV82ODM2XyhJTG5ldC9taW5lY3JhZnQvd29ybGQvaXRlbS9JdGVtU3RhY2s7KVYiLAogICAgICAgICJyZW1vdmVJdGVtKElJKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOyI6ICJMbmV0L21pbmVjcmFmdC93b3JsZC9lbnRpdHkvcGxheWVyL0ludmVudG9yeTttXzc0MDdfKElJKUxuZXQvbWluZWNyYWZ0L3dvcmxkL2l0ZW0vSXRlbVN0YWNrOyIKICAgICAgfSwKICAgICAgIm5ldC9kaWV4di9kaWV4dnN3b3JkL21peGluL1dpbmRvd01peGluIjogewogICAgICAgICJyZW5kZXIiOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L3JlbmRlcmVyL0dhbWVSZW5kZXJlcjttXzEwOTA5M18oRkpaKVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9KU0NNaXhpbiI6IHsKICAgICAgICAiYWRkRW50aXR5IjogIkxuZXQvbWluZWNyYWZ0L3NlcnZlci9sZXZlbC9TZXJ2ZXJMZXZlbDttXzg4NzJfKExuZXQvbWluZWNyYWZ0L3dvcmxkL2VudGl0eS9FbnRpdHk7KVoiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9XaW5kb3dUaXRsZURpY3RhdG9yTWl4aW4iOiB7CiAgICAgICAgInNldFRpdGxlIjogIkxjb20vbW9qYW5nL2JsYXplM2QvcGxhdGZvcm0vV2luZG93O21fODU0MjJfKExqYXZhL2xhbmcvU3RyaW5nOylWIgogICAgICB9LAogICAgICAibmV0L2RpZXh2L2RpZXh2c3dvcmQvbWl4aW4vU2V0U2NyZWVuTWl4aW4iOiB7CiAgICAgICAgInRpY2siOiAiTG5ldC9taW5lY3JhZnQvY2xpZW50L01pbmVjcmFmdDttXzkxMzk4XygpViIsCiAgICAgICAgInNldFNjcmVlbiI6ICJMbmV0L21pbmVjcmFmdC9jbGllbnQvTWluZWNyYWZ0O21fOTExNTJfKExuZXQvbWluZWNyYWZ0L2NsaWVudC9ndWkvc2NyZWVucy9TY3JlZW47KVYiCiAgICAgIH0sCiAgICAgICJuZXQvZGlleHYvZGlleHZzd29yZC9taXhpbi9MZXZlbFRpY2tNaXhpbiI6IHsKICAgICAgICAidGljayI6ICJMbmV0L21pbmVjcmFmdC9zZXJ2ZXIvbGV2ZWwvU2VydmVyTGV2ZWw7bV84NzkzXyhMamF2YS91dGlsL2Z1bmN0aW9uL0Jvb2xlYW5TdXBwbGllcjspViIKICAgICAgfQogICAgfQogIH0KfTwvcHJlPjwvYm9keT48L2h0bWw+":{"last_modified":"13410191221017173","zoom_level":0.5227586988632231},"file:///C:/Users/Administrator/MCreatorWorkspaces/AxisInnovatorsBox/javascript/LinuxTerminal.html":{"last_modified":"13410163296735238","zoom_level":1.2239010857415449}}}},"password_manager":{"autofillable_credentials_account_store_login_database":false,"autofillable_credentials_profile_store_login_database":false},"privacy_sandbox":{"first_party_sets_data_access_allowed_initialized":true},"profile":{"avatar_index":26,"content_settings":{"did_migrate_adaptive_notification_quieting_to_cpss":true,"disable_quiet_permission_ui_time":{"notifications":"13390881861687508"},"enable_cpss":{"notifications":true},"enable_quiet_permission_ui":{"notifications":false},"enable_quiet_permission_ui_enabling_method":{"notifications":1},"exceptions":{"3pcd_heuristics_grants":{},"3pcd_support":{},"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"anti_abuse":{},"app_banner":{},"ar":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"client_hints":{"https://cn.bing.com:443,*":{"last_modified":"13399890271326482","setting":{"client_hints":[6,8,9,10,11,12,13,14,16,23]}}},"clipboard":{},"cookie_controls_metadata":{},"cookies":{},"direct_sockets":{},"direct_sockets_private_network_access":{},"display_media_system_audio":{},"durable_storage":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{"https://accounts.google.com:443,*":{"last_modified":"13391185831813708","setting":{"chosen-objects":[{"idp-origin":"https://accounts.google.com","idp-signin-status":false}]}}},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"hand_tracking":{},"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"insecure_private_network":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"local_fonts":{},"media_engagement":{},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"password_protection":{},"payment_handler":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"private_network_chooser_data":{},"private_network_guard":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{"https://casdoor.lingqi.vip:443,*":{"last_modified":"13411820818635807","setting":{"lastEngagementTime":1.3411792018635754e+16,"lastShortcutLaunchTime":0.0,"pointsAddedToday":0.0,"rawScore":66.81816182171741}}},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"subresource_filter":{},"subresource_filter_data":{},"third_party_storage_partitioning":{},"top_level_3pcd_origin_trial":{},"top_level_3pcd_support":{},"top_level_storage_access":{},"tracking_protection":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"web_app_installation":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"132.0.6834.83","creation_time":"13390881861649643","did_work_around_bug_364820109_default":true,"did_work_around_bug_364820109_exceptions":true,"exit_type":"Crashed","family_link_user_state":6,"family_member_role":"not_in_family","last_engagement_time":"13411792018635754","last_time_obsolete_http_credentials_removed":1763271873.862677,"last_time_password_store_metrics_reported":1767347245.096734,"managed":{"locally_parent_approved_extensions":{},"locally_parent_approved_extensions_migration_state":1},"managed_user_id":"","name":"Person 1","password_account_storage_settings":{},"password_hash_data_list":[],"were_old_google_logins_removed":true},"safebrowsing":{"event_timestamps":{"0":{"10":[],"12":["13410165210","13410169679","13410187258","13410187264","13410187273","13410188720","13410188726","13410188925","13410190237","13410191005","13410191015","13410191306","13410191318"]}},"metrics_last_log_time":"13411820815","saw_interstitial_sber2":true,"scout_reporting_enabled_when_deprecated":false,"unhandled_sync_password_reuses":{}},"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"saved_tab_groups":{"specifics_to_data_migration":true},"segmentation_platform":{"client_result_prefs":"ClIKDXNob3BwaW5nX3VzZXISQQo2DQAAAAAQwqud/q2/6RcaJAocChoNAAAAPxIMU2hvcHBpbmdVc2VyGgVPdGhlchIEEAIYBCADEO2rnf6tv+kXCmoKGmNocm9tZV9sb3dfdXNlcl9lbmdhZ2VtZW50EkwKQQ0AAIA/EJf63q+2sukXGi8KJwolDQAAAD8SF0Nocm9tZUxvd1VzZXJFbmdhZ2VtZW50GgVPdGhlchIEEAcYBCACENv63q+2sukXCnMKFXBhc3N3b3JkX21hbmFnZXJfdXNlchJaCk8NAAAAABDvgN+vtrLpFxo9CjUKMw0AAAA/EhNQYXNzd29yZE1hbmFnZXJVc2VyGhdOb3RfUGFzc3dvcmRNYW5hZ2VyVXNlchIEEAcYBCABEKqB36+2sukXCmQKC3NlYXJjaF91c2VyElUKSg0AAAAAEN+B36+2sukXGjgKMBouCgoNAACAPxIDTG93Cg0NAACgQBIGTWVkaXVtCgsNAACwQRIESGlnaBIETm9uZRIEEAcYBCACEJaC36+2sukXCuUCChFjcm9zc19kZXZpY2VfdXNlchLPAgrDAg0AAIA/EJ793q+2sukXGrACCqcCGqQCChkNAACAPxISTm9Dcm9zc0RldmljZVVzYWdlChgNAAAAQBIRQ3Jvc3NEZXZpY2VNb2JpbGUKGQ0AAEBAEhJDcm9zc0RldmljZURlc2t0b3AKGA0AAIBAEhFDcm9zc0RldmljZVRhYmxldAoiDQAAoEASG0Nyb3NzRGV2aWNlTW9iaWxlQW5kRGVza3RvcAohDQAAwEASGkNyb3NzRGV2aWNlTW9iaWxlQW5kVGFibGV0CiINAADgQBIbQ3Jvc3NEZXZpY2VEZXNrdG9wQW5kVGFibGV0CiANAAAAQRIZQ3Jvc3NEZXZpY2VBbGxEZXZpY2VUeXBlcwoXDQAAEEESEENyb3NzRGV2aWNlT3RoZXISEk5vQ3Jvc3NEZXZpY2VVc2FnZRIEEAcYBCACENn93q+2sukXCmAKEXJlc3VtZV9oZWF2eV91c2VyEksKQA0AAAAAELD+3q+2sukXGi4KJgokDQAAAD8SFlJlc3VtZUhlYXZ5VXNlclNlZ21lbnQaBU90aGVyEgQQDhgEIAIQ3/7er7ay6Rc=","device_switcher_util":{"result":{"labels":["NotSynced"]}},"last_db_compaction_time":"13411699199000000","uma_in_sql_start_time":"13390881861679139"},"sessions":{"event_log":[{"crashed":true,"time":"13410190111239653","type":0},{"crashed":true,"time":"13410190173882418","type":0},{"crashed":true,"time":"13410190489381975","type":0},{"crashed":true,"time":"13410190566806394","type":0},{"crashed":true,"time":"13410190643125862","type":0},{"crashed":true,"time":"13410190847585404","type":0},{"crashed":true,"time":"13410191675223638","type":0},{"crashed":true,"time":"13410239923591354","type":0},{"crashed":true,"time":"13410596638442743","type":0},{"crashed":true,"time":"13410599267506564","type":0},{"crashed":true,"time":"13410600021520342","type":0},{"crashed":true,"time":"13410616600659739","type":0},{"crashed":true,"time":"13410697465344414","type":0},{"crashed":true,"time":"13410700077504629","type":0},{"crashed":true,"time":"13411376389792535","type":0},{"crashed":true,"time":"13411378254257884","type":0},{"crashed":true,"time":"13411820815094484","type":0},{"crashed":true,"time":"13411821294825586","type":0},{"crashed":true,"time":"13411823812201884","type":0}],"session_data_status":1},"should_read_incoming_syncing_theme_prefs":true,"signin":{"allowed":false},"spellcheck":{"dictionaries":["en-US"],"dictionary":""},"sync":{"data_type_status_for_sync_to_signin":{"app_list":false,"app_settings":false,"apps":false,"arc_package":false,"autofill":false,"autofill_profiles":false,"autofill_wallet":false,"autofill_wallet_credential":false,"autofill_wallet_metadata":false,"autofill_wallet_offer":false,"autofill_wallet_usage":false,"bookmarks":false,"collaboration_group":false,"contact_info":false,"cookies":false,"device_info":false,"dictionary":false,"extension_settings":false,"extensions":false,"history":false,"history_delete_directives":false,"incoming_password_sharing_invitation":false,"managed_user_settings":false,"nigori":false,"os_preferences":false,"os_priority_preferences":false,"outgoing_password_sharing_invitation":false,"passwords":false,"plus_address":false,"plus_address_setting":false,"power_bookmark":false,"preferences":false,"printers":false,"printers_authorization_servers":false,"priority_preferences":false,"product_comparison":false,"reading_list":false,"saved_tab_group":false,"search_engines":false,"security_events":false,"send_tab_to_self":false,"sessions":false,"shared_tab_group_data":false,"sharing_message":false,"themes":false,"user_consent":false,"user_events":false,"web_apps":false,"webapks":false,"webauthn_credential":false,"wifi_configurations":false,"workspace_desk":false},"encryption_bootstrap_token_per_account_migration_done":true,"feature_status_for_sync_to_signin":5},"tab_group_saves_ui_update_migrated":true,"total_passwords_available_for_account":0,"total_passwords_available_for_profile":0,"translate_site_blacklist":[],"translate_site_blocklist_with_time":{},"updateclientdata":{"apps":{"ncennffkjdiamlpmcbajkmaiiiddgioo":{"cohort":"1::","cohortname":"","dlrc":6941,"fp":"1.fc32d125fc37b80eefad0fd38661479f97fdf322709f352ad1350dd8a14f3dcf","installdate":6698,"max_pv":"3.52.13","pf":"2d20158a-4889-49e2-8b4a-ca56e1791071","pv":"3.52.14"}}},"updateclientlastupdatecheckerror":-356,"updateclientlastupdatecheckerrorcategory":5,"updateclientlastupdatecheckerrorextracode1":0,"web_apps":{"did_migrate_default_chrome_apps":["MigrateDefaultChromeAppToWebAppsGSuite","MigrateDefaultChromeAppToWebAppsNonGSuite"],"last_preinstall_synchronize_version":"132"}} \ No newline at end of file diff --git a/library/jcef/cache/Default/Session Storage/000012.log b/library/jcef/cache/Default/Session Storage/000012.log index 2019801..85327c9 100644 Binary files a/library/jcef/cache/Default/Session Storage/000012.log and b/library/jcef/cache/Default/Session Storage/000012.log differ diff --git a/library/jcef/cache/Default/Session Storage/LOG b/library/jcef/cache/Default/Session Storage/LOG index f5fbc64..393a409 100644 --- a/library/jcef/cache/Default/Session Storage/LOG +++ b/library/jcef/cache/Default/Session Storage/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:48:16.445 31c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001 -2026/01/02-17:48:16.446 31c0 Recovering log #12 -2026/01/02-17:48:16.449 31c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log +2026/01/02-18:37:25.516 3ac8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001 +2026/01/02-18:37:25.517 3ac8 Recovering log #12 +2026/01/02-18:37:25.520 3ac8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log diff --git a/library/jcef/cache/Default/Session Storage/LOG.old b/library/jcef/cache/Default/Session Storage/LOG.old index 6bc246d..c176fba 100644 --- a/library/jcef/cache/Default/Session Storage/LOG.old +++ b/library/jcef/cache/Default/Session Storage/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:51:01.393 2160 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001 -2025/12/28-14:51:01.395 2160 Recovering log #12 -2025/12/28-14:51:01.401 2160 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log +2026/01/02-17:55:03.089 29f8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001 +2026/01/02-17:55:03.091 29f8 Recovering log #12 +2026/01/02-17:55:03.094 29f8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log diff --git a/library/jcef/cache/Default/Site Characteristics Database/LOG b/library/jcef/cache/Default/Site Characteristics Database/LOG index 1260071..21c40fb 100644 --- a/library/jcef/cache/Default/Site Characteristics Database/LOG +++ b/library/jcef/cache/Default/Site Characteristics Database/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.084 3b7c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001 -2026/01/02-17:46:55.114 3b7c Recovering log #3 -2026/01/02-17:46:55.115 3b7c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log +2026/01/02-18:36:52.245 517c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001 +2026/01/02-18:36:52.246 517c Recovering log #3 +2026/01/02-18:36:52.247 517c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log diff --git a/library/jcef/cache/Default/Site Characteristics Database/LOG.old b/library/jcef/cache/Default/Site Characteristics Database/LOG.old index 91d4a63..0bcc796 100644 --- a/library/jcef/cache/Default/Site Characteristics Database/LOG.old +++ b/library/jcef/cache/Default/Site Characteristics Database/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.257 186c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001 -2025/12/28-14:50:54.263 186c Recovering log #3 -2025/12/28-14:50:54.264 186c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log +2026/01/02-17:54:54.823 5188 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001 +2026/01/02-17:54:54.841 5188 Recovering log #3 +2026/01/02-17:54:54.842 5188 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log diff --git a/library/jcef/cache/Default/Sync Data/LevelDB/LOG b/library/jcef/cache/Default/Sync Data/LevelDB/LOG index 681b3f7..0f33277 100644 --- a/library/jcef/cache/Default/Sync Data/LevelDB/LOG +++ b/library/jcef/cache/Default/Sync Data/LevelDB/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.071 52c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001 -2026/01/02-17:46:55.115 52c Recovering log #3 -2026/01/02-17:46:55.115 52c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log +2026/01/02-18:36:52.237 e8c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001 +2026/01/02-18:36:52.245 e8c Recovering log #3 +2026/01/02-18:36:52.246 e8c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log diff --git a/library/jcef/cache/Default/Sync Data/LevelDB/LOG.old b/library/jcef/cache/Default/Sync Data/LevelDB/LOG.old index fdefc35..b2f8763 100644 --- a/library/jcef/cache/Default/Sync Data/LevelDB/LOG.old +++ b/library/jcef/cache/Default/Sync Data/LevelDB/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.253 37d4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001 -2025/12/28-14:50:54.263 37d4 Recovering log #3 -2025/12/28-14:50:54.264 37d4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log +2026/01/02-17:54:54.822 4be0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001 +2026/01/02-17:54:54.840 4be0 Recovering log #3 +2026/01/02-17:54:54.841 4be0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log diff --git a/library/jcef/cache/Default/Top Sites b/library/jcef/cache/Default/Top Sites index 5427a0c..c0d5642 100644 Binary files a/library/jcef/cache/Default/Top Sites and b/library/jcef/cache/Default/Top Sites differ diff --git a/library/jcef/cache/Default/Visited Links b/library/jcef/cache/Default/Visited Links index c22d1e2..d9145d9 100644 Binary files a/library/jcef/cache/Default/Visited Links and b/library/jcef/cache/Default/Visited Links differ diff --git a/library/jcef/cache/Default/shared_proto_db/LOG b/library/jcef/cache/Default/shared_proto_db/LOG index 089b510..ea8436b 100644 --- a/library/jcef/cache/Default/shared_proto_db/LOG +++ b/library/jcef/cache/Default/shared_proto_db/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.164 109c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001 -2026/01/02-17:46:55.164 109c Recovering log #19 -2026/01/02-17:46:55.169 109c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log +2026/01/02-18:36:52.280 57e4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001 +2026/01/02-18:36:52.281 57e4 Recovering log #19 +2026/01/02-18:36:52.283 57e4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log diff --git a/library/jcef/cache/Default/shared_proto_db/LOG.old b/library/jcef/cache/Default/shared_proto_db/LOG.old index 8290831..81f8925 100644 --- a/library/jcef/cache/Default/shared_proto_db/LOG.old +++ b/library/jcef/cache/Default/shared_proto_db/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.299 22b4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001 -2025/12/28-14:50:54.299 22b4 Recovering log #19 -2025/12/28-14:50:54.301 22b4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log +2026/01/02-17:54:54.907 2150 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001 +2026/01/02-17:54:54.913 2150 Recovering log #19 +2026/01/02-17:54:54.922 2150 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log diff --git a/library/jcef/cache/Default/shared_proto_db/metadata/000003.log b/library/jcef/cache/Default/shared_proto_db/metadata/000003.log index cac34e3..dec58c5 100644 Binary files a/library/jcef/cache/Default/shared_proto_db/metadata/000003.log and b/library/jcef/cache/Default/shared_proto_db/metadata/000003.log differ diff --git a/library/jcef/cache/Default/shared_proto_db/metadata/LOG b/library/jcef/cache/Default/shared_proto_db/metadata/LOG index 97426ce..3029e5d 100644 --- a/library/jcef/cache/Default/shared_proto_db/metadata/LOG +++ b/library/jcef/cache/Default/shared_proto_db/metadata/LOG @@ -1,3 +1,3 @@ -2026/01/02-17:46:55.156 109c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001 -2026/01/02-17:46:55.156 109c Recovering log #3 -2026/01/02-17:46:55.157 109c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log +2026/01/02-18:36:52.264 57e4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001 +2026/01/02-18:36:52.265 57e4 Recovering log #3 +2026/01/02-18:36:52.265 57e4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log diff --git a/library/jcef/cache/Default/shared_proto_db/metadata/LOG.old b/library/jcef/cache/Default/shared_proto_db/metadata/LOG.old index 80d08c0..903de22 100644 --- a/library/jcef/cache/Default/shared_proto_db/metadata/LOG.old +++ b/library/jcef/cache/Default/shared_proto_db/metadata/LOG.old @@ -1,3 +1,3 @@ -2025/12/28-14:50:54.290 22b4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001 -2025/12/28-14:50:54.291 22b4 Recovering log #3 -2025/12/28-14:50:54.291 22b4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log +2026/01/02-17:54:54.894 2150 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001 +2026/01/02-17:54:54.895 2150 Recovering log #3 +2026/01/02-17:54:54.896 2150 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log diff --git a/library/jcef/cache/Local State b/library/jcef/cache/Local State index 3846bd1..d9d8139 100644 --- a/library/jcef/cache/Local State +++ b/library/jcef/cache/Local State @@ -1 +1 @@ -{"accessibility":{"captions":{"soda_registered_language_packs":["en-US"]},"screen_ai":{"last_used_time":"13411820815912680"}},"autofill":{"ablation_seed":"TALAAWR3U5o=","states_data_dir":"C:\\Users\\Administrator\\MCreatorWorkspaces\\AxisInnovatorsBox\\library\\jcef\\cache\\AutofillStates\\2025.6.13.84507"},"background_tracing":{"session_state":{"privacy_filter":false,"state":0}},"breadcrumbs":{"enabled":false,"enabled_time":"13410596638238299"},"browser":{"shortcut_migration_version":"132.0.6834.83"},"chrome_labs_activation_threshold":44,"hardware_acceleration_mode_previous":true,"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"management":{"platform":{"azure_active_directory":0,"enterprise_mdm_win":0}},"optimization_guide":{"model_store_metadata":{},"on_device":{"last_version":"132.0.6834.83","model_crash_count":0,"performance_class":7}},"origin_trials":{"disabled_features":["CanvasTextNg","WebAssemblyCustomDescriptors"]},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAADBwqsP1QzrT6MWcdZVJfu5EAAAABIAAABDAGgAcgBvAG0AaQB1AG0AAAAQZgAAAAEAACAAAACB1ryRyzwij1C09/fW7Nq6xYWNYBouyiCtBQVy/dm3CQAAAAAOgAAAAAIAACAAAADbFABSUOggpWGtdyt8gjY1U0KOsQGeTko2gmAW90ZayTAAAADFq9PcgOxeNssHaxgGBueXV4hvHQJJpmfEMZ+q1Evd16SVsDQI/5ryEswRmAd6zwNAAAAAOuqKXbFa23SsXpgg7Pl2JS8o587xUaAWaRKpBdtanJxeqCeHs86s5Xb7UUFCatlPZCByX+JyuenI90CW2C8Ncw=="},"policy":{"last_statistics_update":"13411820814994139"},"privacy_budget":{"meta_experiment_activation_salt":0.8784738491452397},"profile":{"info_cache":{"Default":{"active_time":1763794268.852173,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_26","background_apps":false,"force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"Person 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":["Default"],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13411820815005226","profiles_order":["Default"],"show_picker_on_startup":false},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"session_id_generator_last_value":"1067275100","signin":{"active_accounts_last_emitted":"13411820814826676"},"subresource_filter":{"ruleset_version":{"checksum":1588750443,"content":"9.64.0","format":36}},"tab_stats":{"discards_external":0,"discards_frozen":0,"discards_proactive":0,"discards_suggested":0,"discards_urgent":0,"last_daily_sample":"13411820814933199","max_tabs_per_window":1,"reloads_external":0,"reloads_frozen":0,"reloads_proactive":0,"reloads_suggested":0,"reloads_urgent":0,"total_tab_count_max":1,"window_count_max":1},"tpcd":{"metadata":{"cohorts":{"+85uj8UpFJFs1LbZzRODD1aQ+Vs=":2,"+EvRah+wIaVJthrhxHGvfjZWQqY=":2,"+Goy06x/MCwrTV/aHU6CfXEkvHs=":2,"+OlMW5y2ANwBFsH03kShVXYVYM4=":2,"+WavPWcVf6qGVorrutx5lkDvL8g=":2,"+exM1B26jXxhR2Ux05ie/WWp0x0=":2,"+mNvpfM3JkKTeK+6ohl+LXstAC8=":2,"+qkOunaBVbv6XoaIwvMn3m6HluM=":2,"+tsbvVZgVIUs6CaBR9z7zuZH70o=":2,"+xOc8Z8Bc8iWT3jhs1SRha/IbDM=":2,"/AzXcP7UuUNwY1auU8IKM+kO+4A=":2,"/Bvm/Rrh3ZMwqH+/+4QOIcUQPPk=":2,"/FeZnUMHLubMD1MVDBjadEPAlVo=":2,"/HAmLxXpHT88v9y7xE9hHTkgIvM=":2,"/Qdp4MAUrNtjqZV9mfb20WAMugw=":2,"/QxFmTaKVmgoQI7u32pqfP+71Bc=":2,"/aGCDNLRew1LLZH+59lHCuAYNdk=":2,"/hbF3j5JOvAak7vNsAbK79bOP34=":2,"/llw2C0PMltsatGnpTHqrkbluYM=":2,"/oHhyW5YAQhdBpgYcbm1vJyiP+Q=":2,"/rtQf7RE4vMc92KjutC8LkjUZgQ=":2,"/xVDyosmqM6bfIMKyDuRAUI1Qyo=":2,"0Eq8eriICMngC2bt8vmV6V5tJCc=":2,"0OWhcqeF92w5b13FI7cuw0wYOiM=":2,"0b9gyhS7XLqmkmOe5OQuD409YLc=":2,"0gnBMXopl7lReGu+XSk/UzZakLk=":2,"0o2/D9RwYjAcr69AeW+JJDm3uHQ=":2,"0y3W2Bn1Kfxh/5CIvP2vZz5fwTE=":2,"164zkQ1BuqOVnZxlkMScGNXYC8Y=":2,"190T6zIzSL3PTH7lqquaA8KAqVg=":2,"1KHE7JEW3MsvkGFH8et2wPovDqk=":2,"1MfDQw3vHCQqaDa7CJ05y8CkuJs=":2,"1XfEZ7+2f5d1GWbkN5KoDjaQBL8=":2,"1v+25/b3OROEvLwpc+58pTQHvUQ=":2,"24O8PXrKNoFD7n9OiIn/kPM8q1E=":2,"26KadWj8dsla9qY4pbLWwc3WCQY=":2,"2EnXui3e9m8cVkso31bGopul3g0=":2,"2PGjwY0nYdnDLk59gOOl/h012PY=":2,"2W5F+NooL0WF8r0ykkHsqw75NVM=":2,"2ks61ETyiwJVBKjWdeLi+jBzvHw=":2,"2ogzRk2u3FpQekT714FkK0vkFy8=":2,"3IgtLbRDI7pm77T7imadPrRxR5E=":2,"3LIGdlgJ5Rw05ZwZulvKp0JajOw=":2,"3UWlaBDJKI5jNgpXTezvx7uZ7L8=":2,"3dFQSDfXS18fA563uc5mxhMXjLk=":2,"3iGyG3EVKY4vxn8RarUIggZVVkY=":2,"3pCe5f7oscOC94pJnWvhlszLhr0=":2,"3qs39ewgIOr/6zygzv+0ltu0SjE=":2,"3vvP54USUtSZlm/osFRbdXjCN/U=":2,"4+yW/l/2EqzM0fGVj0BcXV5TqDI=":2,"44pYIrJiSE08LkH770bq0wwoNEA=":2,"4TwK5fjrPUvueMXp4HZKGWvCJ0M=":2,"4ZC+GtEmLmHToJys2q2fbofqXeE=":2,"4eXKnzRS6ifFncgprkihsauqdGE=":2,"4qJ4K07ijGN6GmvmTNYzTJYmtRw=":2,"4rqrzEd2r2LoSpwBy3Wd1v4Drtc=":2,"4tQsYPAXpmciDFIC4nUACa9X4Wo=":2,"4vXUVM3Beyj2Rn+4lrrMuX455kY=":2,"55tALpi6iGTNuAMJkIQHrV/h8Zw=":2,"5Mo2uOqOAgDMAFR9xJxpj+Ps9vw=":2,"5Roy+ahYhL8V+JUUKT4pljRssYk=":2,"5UJk8zfVHpYxYI3tEGAQfMrks6k=":2,"6/9fhC6bkvQ+GDnCZzKV5b1uEs4=":2,"6218Tv51tHCkvM+pj15cmmrEp44=":2,"6AuvpHbKzPKvnQ5Iq4ZnJrH7VJc=":2,"6DjDzfLMbfYOmlGOJVAk9WK0yxs=":2,"6Edcp8jwSlxhClh0ZABA7VHryeY=":2,"6HE+xAlLmyPiZz4+IOE6QJR2+qU=":2,"6MJKJThHrZ77JxHeDkpqjqsJmPc=":2,"6S99zH9nPCcQM3Z3Z1tFjU0qI/8=":2,"6WtNqNcKg7znf4yFj/CmTJII+Ik=":2,"6iyZ50rVcsj89+phE3AIAQJ5Rl8=":2,"6sUp2EUK4KkR37GrEyH5Yoqc+Vg=":2,"74ScHGU1kOsGMCDn6+SMbExuJ0Y=":2,"74kVp2Qz/ClJ+826v36FnrVlEmU=":2,"7G9aQ3bdYQZRR5Xfs9AsSwsaPRs=":2,"7JjfkitOjBaGC/olVMv7P7VXegA=":2,"7Q3tTd5EeObvMV4js0wywUGWCDo=":2,"7ZvG0q9vmUTKE/kR/8lnxgr+W9g=":2,"7trRGs2suPfs2j1Fw8il8Ct2I4w=":2,"7ypMXoaWrM++zdAbjUUcvDdl6DA=":2,"84VFR/BgNC855g31gNI+lcgcvK0=":2,"8EArI4IQxFb1Jy5KKpgqxnjYqU8=":2,"8WDNGSYrBtXaSuNuCUcuENOqzbE=":2,"8jVuTrHMGXgJ62nUXx9V7cN/mzM=":2,"8nS7YyD+ru/R67lIeZKe30RKet8=":2,"8tt9aAK5Lm7Zcy9hZvUy06bgxCU=":2,"8ur3KjsVLO0lz7bfhzH5Rz06+fM=":2,"9J2Hjgd0WomJNXCVXUnnFp7HblY=":2,"9MZYN7ZW722NmXNr0I0a6xNGHw8=":2,"9PrZjFg2RssHXVdygP2FMo63tHk=":2,"9UuNM5QRWcp6mYkcu/t/I7FADLw=":2,"9V5BfQG4ZefovfNaXdHkf3YSIbM=":2,"9fj5AS7ShECezTEbos0drF7hGYo=":2,"9kQgpCCVk03s/PvG6sFZp1HUjFU=":2,"9rJ/kzjFOsSGSnyRLXimccFODIk=":2,"A24Vd0mboNwTK86qjAnL5NPT0ew=":2,"A7mJev6l+9dO4av3/tE3zj9JzLY=":2,"ANAAVt1I64nz8zJraV4+sB3bn5M=":2,"AgtaUdyyXGWAAMwjRWqwR8Ni8fk=":2,"AsgodONRHQuPbpgDwflsruAzPns=":2,"BJMwY+kVmXIH7sXwmXK/Q13fPkY=":2,"BVHoUpngEWtu0oY2qTH5s35an88=":2,"Bg6wgMZDYx0+/TxkfcfpqINBID0=":2,"BhE51h7DPwhQMQULRUIC2yvAK0Y=":2,"Bpex3OdFL9MLPykjDHF83THK4XU=":2,"Bxd9P1pUJldfaa0T/bjJ4RryaWE=":2,"C3WnzDhbWkxjLSTmT0Q4X+C5Y0g=":2,"CAPrE/fqgLuDiAW9p2hVJvKDVow=":2,"CBUdQZWRoFXyEsfV+uWNQuCMeFA=":2,"CFfzn2HEP0aH/l6Ix4YZ61KhVaM=":2,"CHJAmkWmDHuhYsu3pfxXnIh7HZQ=":2,"COZfIR9QIUwbad3hWuzoXMpnAN8=":2,"CQDGAq5GGMwFpHfW1z5j8CT63sM=":2,"Cjr9Pmookm1kE1NrmqrajTbbNGQ=":2,"CkEWJOcxrLmlVHE98ZW0fCC7cLo=":2,"CpdpCv4T0/puu4pnh4QKOoEMmAY=":2,"CvqZCPmZan5z33NXlrLvk5mzYrc=":2,"Cvywmg5xUNWlVmE1IlOnnaftKTc=":2,"Cz5dAHQlqdvtLvLtHPDUZiiiu+8=":2,"D7m1f2X1ZclMkgJz6eoxMvjV/BY=":2,"DBJzFXqFvKfiVCuXYUaENduUW+4=":2,"DK9He0ANXehmcN8YZhoASlkBlBo=":2,"DjMDHHpf+nnOnHxm/T1q8y5AoGs=":2,"DptldxPMxrOcxrsoRizh9K9nzEs=":2,"E+JAai/R1FoHjUcPV6PvZ+pFENY=":2,"E6/wFsja05ZZziyq3W/qhIfGjWM=":2,"E6h3qgjEj/9/yT6FUGw6YpUCrEU=":2,"E90biI3zHl/mrbRJIr35sUO1G2A=":2,"ECSWj1Bohkn3n1AWHIMEKlbepxQ=":2,"ELx9iaWnrWA5GpWryrvIbwgayb0=":2,"EYpM3f28E5iXkICbU1lbq13/xDs=":2,"EcH6B6F0qgOh+aDUV+DrOVR8Ag0=":2,"EdIuR7LPx1E9lRrlGHXSFSHL2zo=":2,"EkweGdn7Hj2CcJIpLShtXcn4Z5U=":2,"ErqMWkx4Pxb7qmvS+z+hDqzHXtM=":2,"Ew5jcdiDb1RN24kn4qz0nvhVBRg=":2,"Ewtt2SfL5QqYenyxIDEkC9k3tXs=":2,"F+TX3oARl/flaR0nHt5Js6PSCF0=":2,"FBC4lg/vz1H0FxdIxuTqNU4ZEB8=":2,"FJGJZYWxDCoJrYWPy2BUgtq1HM0=":2,"FRQtGBzKKPjy+HEtL7DsX3Felx0=":2,"FcelBmyYBLBRw/HaUwB9s6j5p3Q=":2,"FmvG9vz/LOjYYeU35txjwm9nZRQ=":2,"Fo02W4qlJUivZslOW61nZcCyA9I=":2,"FxMDzlEZgYp2JToAhAg+/yUllRU=":2,"G37v4qWLagnhBfOYr/ow2BEX8wQ=":2,"G3w71gAwbEQRQHACN74TIHrskus=":2,"GA+aolhIHd7aBXICZM5+0OrHfac=":2,"GBKfC442lwAxRkYbckvrizRO9s0=":2,"GVXlVv4EGFdKXDT5DPw/i710C9c=":2,"GWb9dIET7NeLkFZHxmz/DyBcwvw=":2,"GYhBRDeJahYz7i3JJ/8IyE2P5Oc=":2,"GgzZdRVruTyuSjP6N/LfEPt+Rw8=":2,"Gpss+UglPt1UUU2jy1ZlC2Haaos=":2,"GtCeVEmWQHdw3rryz0AuH5gyJxM=":2,"H3GqtTSpNlUUna7Umw0oI+0NgR4=":2,"H4j81ysGT6UYvop5kplp6lxlqXg=":2,"HABGlXq1BaOVH1Ifx+TyX6oI1c8=":2,"HKs5tNwpPQnqsBWBwrTC+hZGTTk=":2,"HM/pWnlnNgRgj3BUP0fYxxzl73Q=":2,"HPKcn8DkK6LusgLP9nDxVh2uJC8=":2,"HSh4Zm3wQfJIatvBZlrOfUeOfwk=":2,"HeMPvC/blr02FSRJtCharxgmzco=":2,"HmcCaa4SwSvvXXelNnwnv7AJeY8=":2,"Ht53X4lOUdtiGjATCg1fkJrokAU=":2,"HwkleqQc/sC85c17L6GdLZZRy14=":2,"I+7UKSXKSzGBgefFdkILZwsI9bs=":2,"I/ZGfrelShQUfRY9aoFBE2Ey1es=":2,"I5BwwRq++KWQv4ptZSLHGgVymIs=":2,"I9HlcZVHx3L832KLRSQTyyKcszM=":2,"IR5VBOOYDolqu3h+57TkJv62y4Y=":2,"IVYz/Wpt7sibxI0sN4+ORgouym4=":2,"IXYNhiWHet2dJvLpHZUkTrdX3T8=":2,"IYpFc21SFnpXN7O5VIPFH6jzdDU=":2,"IZM2fgogPf28F3qsGfathZESrto=":2,"IbS6gvfuP5iBCntJRl7/kGFWfU0=":2,"IpkxtRCHzfxeCqhGtGlgTZho5PA=":2,"Is6xz79EUUUlkrq+vTsITATIXy0=":2,"IvBIWWt8SMIZYO4zi8CNRQBdMa4=":2,"J0sdM/l3EGX6Frv/rSg7j7GL01Y=":2,"J6lcmiUnipJu3gVcoFiUbu+lbDs=":2,"JCDhMYyv6cBx12AS4NeS46EYq1U=":2,"JNVlxkqEWTvStjmY4qJmC71fnzo=":2,"JTODY14/ed4R5V5Q07Wyq1nHZCs=":2,"JWymogHaDHPgCtgoLPRcgF77J7g=":2,"JX1E7bBowYq/NXrg6uP+3EJOu1E=":2,"JgkRGWnXEHJQ70T82y1m8BrqX3Q=":2,"JslOsSCDdI34ClPlNXHA44C8BdM=":2,"K/m4A4gm9l73A6cVZkwC06VtJOU=":2,"K0pey71AM2vyu7pnYfphijaZFQQ=":2,"KCVNDq0FuwrUaqe8KovMG7Uj3F4=":2,"KCmDv40c4KHL+sZ06jr0iETCE/o=":2,"KHAia59NLQnyXDqGRHyg0ZiaTFA=":2,"KJyIq4mOXhu24VxX9gSFD3D93v4=":2,"KfKkkVLOQcHL8t9vHg9yVAoakwQ=":2,"KixfNZ8p0zlprYxunHrPzxobaq4=":2,"KmZM9Qj7kdUlBfwHt3Ha5IOIaXo=":2,"KnVtOxTqcw8Bj0cILIShIFWDZRU=":2,"Koq5VrYu1jgSuPxzC8JneftbXrY=":2,"KqtJUSyT2ifVLtE+YTa+Jwrew0k=":2,"L/1K37AEimYFLDPtWP00QHs4Y68=":2,"L2SILwi57slYAS17LPKLyjzn//M=":2,"L67fEFjVgKvKrPk8WOq+ypaV0dc=":2,"L8Sb2X7fKyM5N332D0ndTxRV6UY=":2,"LBcANp6Rge+D7JyH+lPItmNHsqw=":2,"LH6IDw2lqWicdgcu+tSQmhjaVvs=":2,"LI77XnWaUgy77p5DAeqIO7vOH14=":2,"LIcUrXtcBWBDTsYmK/hSjTpkhOQ=":2,"LK/nTUZLp4wQL8LSp6SlGXML0Xo=":2,"LLWfG5BXDbqHYtiETKDto5KENC0=":2,"LPP/dWFPHE2kpSUwpzspR7jegbE=":2,"LW/7lCwmMHUj5quQrOys8yKgpSU=":2,"LYaNdeviHa0JUthz/IPOwEOXmQQ=":2,"LZMdcjkdapf2PBM+TcQgrrw5l1Q=":2,"LadD1LUTKp90k3P8uJv25vGYSHI=":2,"LcbdMwrGmghZm+QEi615YhcnzP0=":2,"LhU39BVBhzq0HvhANd7D6dP5Qu4=":2,"LtHcu/ZmzB4KTac2VXn1G9F2+yE=":2,"LxPYBWzEULXwJn7iyMSa8QtD+kg=":2,"M+ZG7S72MQJCJe2aQVcvZoKftWA=":2,"M/Wjwu0AfUQ2o20egq9z+7bIzRE=":2,"MVHNDtRF1gJXlUK/+UZ6MIq+cMk=":2,"MXK6lMxDUXU9R5KLAL2bNOMx//A=":2,"MYnF7KiFcThaEWDO9xNzhikWzZg=":2,"McPp8MRX+uUUktsdxYDRi8o+eos=":2,"MftGgIb+TIwSyHnx7apoYs9NrDA=":2,"MpWCvxXFEf9daTeLjHcm3R/E81U=":2,"MqHL/cxomXHa8ev3atB93jJzbZI=":2,"MuDS3URWGZcyPBilzs4FXRzmboc=":2,"MuuNU16haFees5FcNMYXYToRZfY=":2,"N8NipVw4J3jV3lwC90mjPwfCHxg=":2,"NEHnjJf0uubHBmHAJBilzidYpks=":2,"NF8b22VZThqOOVOFtwz90G+TnlE=":2,"NMjxROmwGnztdYpQh/UAc4Bbnr4=":2,"NQamteBltpv0Ps+H619TiFUCf+I=":2,"NdXqc2xTrq/FN6tgl0gsTiq3F38=":2,"Ne1UYIth2fIOE+GqWmLouOzVGoM=":2,"NeSyTyiMagGROQJlNI8QSaSlBSw=":2,"NgAzcAy15WMJsY2pkT/2GxdgG04=":2,"NmMsYpAfxlJVp0FWodzxuSiHS3c=":2,"O/ynEwzhifwXixFynPqJ/W/oWh4=":2,"O0wSnPIMZPh/STNUh0vac3hUGJA=":2,"OEU7USrAsrnhG8bqMiZ26hK2CNg=":2,"OGH8Nmp74ZiT2sjux1xx41S2tNw=":2,"OJcSYTQfOFc27T/8rITzt7968R8=":2,"OQmSZcXWlR6aMwil6XEKlWcjacg=":2,"OVBSN2PMsKlMAlmaAKYB1cRcoY4=":2,"Obd7ogklY6JivNJCQIXV8d0qDuk=":2,"OjHuY9k7IqD58ta4pJplHxor6YM=":2,"OrjPTpbv6b9JNjns2OKkVTiKM+s=":2,"Ow215V5uWo11K+h3r5uqPKLzJI0=":2,"OzlQr4k8StWsbx6xo25olxpqFPo=":2,"P20wwKcWg8wwuTQl2+Brvgsvt0I=":2,"P2fxs0FUJWvTtwxgQ60U8ShnO10=":2,"PDaqV454hbqksZYGhTh5MEKnTws=":2,"PP/b+e8PPjUMQYS2OBT8GhMPS1o=":2,"PZwAWgz5MHGCT1WnkwTC53E/m9M=":2,"Pmvf6keEdJ2RdJbIEPbC6yjlB2I=":2,"Pn/ePL4HFaa4hTTOIC1z+UcbhSE=":2,"Q7VBdSOn3tXuYecIipApfUrWc0E=":2,"QANgRaF/b2zkl6ZtfzavHjFDGww=":2,"QGhV7+yJFgHnsLlp61izzFLm+8M=":2,"QKSyrWjQ6MjhtW2FNppRoKVNRCY=":2,"Qbrqdt73OY7jzL0r98xuGkILcf0=":2,"QtCZzUY6hCGEqCUTc2M5HNrrs4w=":2,"QuBiJAmt3+xnOmt838WFWkZNBII=":2,"Quz0fwq2iFeVentUcxv7EtGXBgI=":2,"Qy0HTOBuuQRuxmyN6GCjTBI+2MQ=":2,"R7CcmUEwytA73udabElrP9G8sN0=":2,"RF2lGGs4R20QEkXEifuLc5MTiy4=":2,"RIrVY4vPSyEJqz7rQNux/M6K2Uc=":2,"RNUHLVNAftYYrVsfw0XdkUFumwo=":2,"RSTkS8lWrQGjrgVquWcQVopYcRc=":2,"RUj0ztXJ7+kOsCpP9Kv3TDeFJJg=":2,"RVzwez9xPSX1AEn5pHSL/PR1Ak0=":2,"RYWzXqC3fQdwkaxnwdmOPmZixUw=":2,"RbcSJm/cbTD27QN7lN6Us62QIlE=":2,"RnwhHERLjD4kuXuJm44mHsUem+Y=":2,"RpqgmmdI4JgMujDXyfPAuYlQsNc=":2,"RqXHWd3nIsw7tt+RmTWynHdd0X4=":2,"S3CW+p7BtwcbD0fgDCiZ0RAQyjE=":2,"SAo2aVtafLNYHW7zVkEhRT9bh2Y=":2,"SY+bhxGSSGCnz1kQKI5yVUmhEfE=":2,"SYm5CVFkFOVllamvQ9D/tRM1JDw=":2,"SdL3nSP2tifv3D4axuGNQnI2bUc=":2,"Sdit/gOF9Dasz7o9sp6F7f95VxU=":2,"Sf6QB4b+AtQzltHOGfemdKTv/FI=":2,"So1TyGdA4U1tMl43UysxLdrBD+8=":2,"SvBLShco9LDUjRwg1aaiMvtvTFo=":2,"T/wIOHUG39AOmrfsXhUAzuEQY68=":2,"T2+of555wmTbJ2TrkfFXZPtJe6w=":2,"T9Qe0SNV0OBiGFU2oks1F78khLA=":2,"TMo985XELW9v74mmn50qi7dfmbc=":2,"TXp5FPH1q8BqEe/vPr2XzQNN4DQ=":2,"TYN2QA74YpLLdgx/KIWyDC7yWrs=":2,"TmrP6vdRPLfVW5N55bGHKWuqKxY=":2,"ToVZFnRaRPFc+bC+kUfL0o6oVbY=":2,"Twx+PUyhAazRa7zunJLUk7AuLcc=":2,"U/HvDF5lgUDIOvDbP9v5BmirEUs=":2,"U/MXSpdHG3Qh2p/vzyc0aFq/U94=":2,"U3KMQW6Rs95g1UJIi3OsZRqYWvQ=":2,"U7ti2JIQ2rB+nGUoJfrARNYcm/o=":2,"U9A/mkuLQvuMuaD1/0NbkxKJwsk=":2,"UDzrIJUrsqeKvuc/bTIuZnU0+5Q=":2,"UHJJhRN9z3qlaau2hbL1mfcfrI4=":2,"USKrPvDKw/JS/mQnPgXXm0PjWhI=":2,"Ucs6z5K6yxsQzCuxBg8IhFUW1uY=":2,"UyrsycnE0Y34SKsZr4aPMI19T4Q=":2,"V2W3L8FR9XTVZQtEl9UZ76GRaOk=":2,"VC/PaSikiazeBowkWU8F8s8Fbdc=":2,"VXhkGMKyQv4EGmsqXOlEmAdtX8E=":2,"Vus+nTDrUYcfuhZkTwWq8pp72Fo=":2,"W/vJPSCn52d0z02T4zSZuXmUFIo=":2,"W3JXUQpisayYUb8fvciX7mz/LUw=":2,"W79Q1UtfGoRJvjuDwvvCFd/g0g8=":2,"WGcOskzornIFeV5Wbec+z/7T8yQ=":2,"WN6w7LqpMGoL89o4ulIxTcXAttM=":2,"WirG4pLCvHATRD/XepELhtbx2z4=":2,"WybscQ6r1DfHRHCfANqlzsLEfR4=":2,"X+IBU7yum6s8R9EIK1eZ5xNXHzY=":2,"X1hwqKxZESTzs9BvFVN1cudNbU0=":2,"X3CsotjCGLmix01VOhQnaVzerc4=":2,"X3r0cKrB50GCupilXtIT0OsNmNU=":2,"X88GhHdCWKsBm24R727HFAkDr7U=":2,"XIcpBEZDocLvzctDOSolZeZZGMM=":2,"XJGnm7SMThSxDgLYX1WCQCpXIeE=":2,"XXS4Q2MvRlQ3g/5H4ppGQKiDMuc=":2,"XdRdTTf2L82I/5T7+QKhT3Pho24=":2,"XiqKy7gubyO5rqh2hQCzWLmuRP0=":2,"XkVTCFQo/kf96t12VPlUHI7Bsoo=":2,"XlU2doslDe9k2Sjyz+HoF+s4Fuk=":2,"Xmi6obAjhT4C07AkOLr1DrZOYng=":2,"Y+3yeiQnPoLWrymZUS7uiptfvWE=":2,"Y9F1acusJNtR1MKQ9sV/LUbtLcU=":2,"YCITb6CU1HEkdv0e/aMbXU15Bsc=":2,"YCrDNn1PepBzFGwS4liz7EGhd20=":2,"YQX9fwmNvbp79I5BVuG+xSFVcjM=":2,"YXSX9V1CWZmwRJWSO+196koeC7Y=":2,"YeDH3FcQ76eu+6wKfeDV3Z75z4k=":2,"Yv9p2UhdpPR9HiQAehTqepmaOtk=":2,"Z1cXRToCPBewKDIjZhu01gzNgvM=":2,"ZAqPZQWJRYyqIy1vmo7cQCQVpEU=":2,"ZCc7WSp1R56ujdXzRr1nbB6X4PY=":2,"ZIWJDsMLDNK3inlfrSMccHToQv0=":2,"ZN87pxH8AlA0PR/ktFLGAjm8JDc=":2,"ZSyVOd9TPha8GxMzhtgZiF93aZg=":2,"ZcCE53MqfEUAG0OC9vuXsgNygQA=":2,"ZnEawSbVIhbrxvLmTU/51FR3PHc=":2,"Zntf7wQ+SmweAQbnVsys7KRLiCA=":2,"ZtCtW2Sze8YbTG1fS4loW1n3F4s=":2,"ZuT1OewLis1kVKZoBEacnH8c4oQ=":2,"a/06Cc1qCMoW5/jphsMeYfBLXrA=":2,"a13zReUtyPNWrTN/Br6vION4M9k=":2,"aMpjfejGmbvrz24NGwVgyoJWmB0=":2,"aOhZbO9SzuqTcdPglSVnbInJ0HY=":2,"akhZxq2ZypH9U+g8ptVEix2Ys30=":2,"b390+KlW3do0iY5dWxyw/Nvj8y8=":2,"b64LG8t0nZIMAH4frxWe0Xe0lVc=":2,"bAfivuZXv6xQHZCq1H7RdaBGeJs=":2,"bI1Vo/T/gZu6ziJq0A76h0bkQ3A=":2,"cDMRM41OYKodBqf5yPs7PXp7Ibc=":2,"cFGuCTImI1LKaInDPxQtiun7tc4=":2,"cFmOFeeAC2RTc++FepBrbqvZJu8=":2,"cS+k6IBZ28FX5Gu5yS+3rwfash0=":2,"cU2FpWNjt8mGURI0k5QPpMUA1p0=":2,"cVRrJOXl5PBGO3dbZJV8A5XlMQY=":2,"cYEiRDkwdEht5TZ8ftQ2T12/vmI=":2,"cZnefofy4yEnFmkQ0gaP7nfgGBQ=":2,"ccdh7Hta93FtJR+qwt7DElNPqBI=":2,"chKNF84vgaJ1RtQrKV4ytLiKjlk=":2,"ciN5+j5UQseF5/8p+leZThdpwLk=":2,"cnQYSsJdyO+otNbyW42g39tQHFw=":2,"dCGPD+ybLSgoWN7NZsSKWMIMa8g=":2,"dNRX77I/GjMbKJwIPRRuZQnef5k=":2,"dSgRwJW6QXt5Gyti9tvXKOSloVI=":2,"dULO06RXKgWKOnT+2EPWFhzSOzQ=":2,"ddNzLLovIOQAjI1Fuour/azCRPs=":2,"dfVd5Cks1FFJVdNmS+sD4zItmmQ=":2,"dhvEuIu4bREe/yc3n+uWgemDH+Y=":2,"e7QR994kinvEvNi5PEREfEgRBPk=":2,"eIkv3FutAxmGf2Mh7yo0HiDjrls=":2,"ePMMAHx9Ax6ezSppn6dpqbBnLhE=":2,"ex04CvLWFikDWXjGQ4RtjbOeRNM=":2,"f/TYvHakawJF91GiVgpjciGJPc8=":2,"f8cvQ/sraTsg0bwM+aS4D6pFT6I=":2,"f9ysKU6hcNbVfpf1njOmFQ2qbZ0=":2,"fBmcT7XNbLpOQsfKdgdXEdc1P38=":1,"fLj05EfmTLEt58m3jVUhPVS04sU=":2,"fMus4OBg1K5k+k8tLnAZyRBbnLY=":1,"fa4i6qfS5+dDiDVKFZDjsFnF6Rc=":2,"fnRvo3ItSPsvU3LKSXBRXJg0FUs=":2,"foNSnwHq8ph3wPaXJ8I88LehpI4=":2,"fuy5x4yKH5LLTw4kz6c1pnFiOcQ=":2,"g0FiO0sC3nMBLvy49sLKeESA7h0=":2,"gCgo0usJBkT8uf+0XUuS3gWGdoA=":2,"gJJSwVtCLng5e1xxugIzmlnHbd4=":2,"gJK5pMWuNFrD9OGNIgKananYNSo=":2,"gMpTRAKA7Ayl+W/YVqQhr5GU6x0=":2,"gSTTNamgmAMk2//gdb5jcZMN9AQ=":2,"gqGHjniFghep8E6txoAdzX/4h3M=":2,"gr0I/I6o5WZbCX3ANuvNoagEEe8=":2,"gsU6EH/i8w1ThrqsEm6GK79feO4=":2,"gtc5hvQud0vqhMhm2fmcV4S+Agc=":2,"gxn+9RnfotKjIQsWN6Ldd6tJFwQ=":2,"hGJJ6Hh+MF5i2sXu2g4Yz8nZwHs=":2,"hJM03Qy65rIixL+QnwFnZUWdS7o=":2,"hRdDjllKxVjmSDiRpxs+uOUT9Q4=":2,"hl/Ql44a9B+9BQR34dUhENrlIJ4=":2,"hmt01LHgEU30nJb6VMA41XMWRyg=":2,"ho9bP3IJ21F4d3qP3pTJA0JkTj4=":2,"htyr9QaPXQOHGsfVmr+97oeW0UM=":2,"iBD/DGiehe+56IosGVlv3c1wJ3Q=":2,"iD9S1fFa6FpM5DcIk5pQUCSj4aw=":2,"iGzRH+UPc4Ea3ApuY49us3/XCaA=":2,"iHnWlD4n0QHbXoUv3k90wclViuU=":2,"iXvZsH9NpG0qHURLzLTudfP9aeU=":2,"ihQuIV4rmAFYvTr6lwMV4HokREI=":2,"ihRhUKLVahjKDEOmS0BbYyhgv7k=":2,"ipbKvdY2LsQlCcEkuSqe8v4By6g=":2,"ipt6XYj9NCIb0hWN8BbyXEF5DfQ=":2,"irephTXGVO+MmlZ2AS7MbB5AyLM=":2,"j+6DOgEHMZgTIWSHhf9CjmUGIK8=":2,"j+GDvmG+Am9Xd+4Q/XDAlrQrFz4=":2,"jAuqNF/yhbdqVNpoWw+2Jo6e6bs=":2,"jEtGDH1uWCTHnmHc2bGPDrpEHCg=":2,"jODdAGIb3/eRchqP2DHAiTYlP0Y=":2,"jQfCzjp4d/PizsLo5UpdD2f8www=":2,"jUoBtJ03/Xr45tg4Dqenc5cYWAU=":2,"jVgQocUsQaH7V/2UxhLVOidhP20=":2,"jYhk6dm72WAaxSdjIvOSNJ3d0sE=":2,"jaMkW1knsztb/0+GNCKx6G/SzaI=":2,"jc0TPKjiMVneKPNeY2avjLI9KVY=":2,"jq2rGPyUu7grG5FJi/I/qcKLKg0=":2,"k/v8xkMt57fg28L2fh73gxXa4Yc=":2,"k1J17FRo3myPzj+UE+LXaZ9ohSc=":2,"k3bwFkPXH/EDNGF7Npn6kwKJu6Q=":2,"k7hYQMMCyKjXIXP+LR8U+d3GIzQ=":2,"kDJnIwokySTxXp20eRGTskuMM9c=":2,"kLV2LBNc1aIFljjZItvqx2bhY1U=":2,"kMGe+97jR78zimxmtL9Ak8a0OHw=":2,"kOvgd336AvzRZ7zhd6KqxVNyMiU=":2,"kYI0w0yGJWsEW8mUvaWKX5BGN34=":2,"kYvIeNAo8XJrY0sLt9RkQb/ArLk=":2,"kbEmSJ7AT4IyCib5dANoydcLsmE=":2,"kfmukk3rEZbsice63or/akfPSU0=":2,"l1TwOsy32JiZV/bM26UQ8oCnn7k=":2,"l1l9LWMnuHXWDBSLcfQ3Zp7bVVk=":2,"l38tVXmuuGlAgD9a3eXwX/jQwgI=":2,"lHA+dhHLhlHLq/O+0+Xz7buufJ4=":2,"lJcNksg20bY6CgGPqZu5aQHbRhE=":2,"lUbDYyCRhvBzS0nDrz8rx/nq0A0=":2,"lUfzJ3y5Jzs7p4PBHh4xhm+zoG8=":2,"lV/IOzmMkT+d9gXfFgqtsErYe2M=":2,"lY3+bGoDRF7A0eSICXUJ1yfpxo8=":2,"lZpQb3elaMvd1gsI/plZxcpUVwY=":2,"lcXOtK8KVWFVeHE4WLEewHPCWWY=":2,"ldPbP2/DX6N+AldQ7AFtoht/Bvc=":2,"lhONN2tBTBA/tSnMtizicuNBPLU=":2,"lmXhk+G6r/qbCMYZcVdJbnn+93I=":2,"mEj21qtta3LLlAxWkZ8sijZvktM=":2,"mSNPvAXxob4waWjBxs3ziW6z71g=":2,"mYby0t8WAz6jV9RgYIRRGyfeWB8=":2,"mg1zJLHTYaJIMLNxa+rsYWsZJhI=":2,"mh3wxEYkuAk6sRhlr/C5G/gxYRI=":2,"miEzBOZuMem0Cj9Uxw1LjN9S9cw=":2,"mlWAbHBzQ5Td8U9HSp8fcPdPyzQ=":2,"mmci9ejkh1yqEt/tTbqbQeSaSwI=":2,"mqI5UE1zlvwODeiYkE+97gk/N38=":2,"mv8xDlT2/YhQtkLKnptz6SQB5uM=":2,"nAj3Ny++JKnx/3X/T3HRcVSVXN0=":2,"nHcOob6uJ8APh5510nMH7Ikg5XI=":2,"nNG/hSMKDgXudXzByhmJ+8Udww8=":2,"o/9SDeB9XVwuJyTLitMsvbgaQKg=":2,"o1UwUqLfJmuxKSuFfNRz/EzR9So=":2,"oHsvpBtYgeqeqVOdT/DQDeNAyp8=":2,"oIsMwEfYOTvIzVNKHP6nF5RhkVk=":2,"oNPOB+kuiVqZt91Ceva1HD2babU=":2,"oNrKGepVbapve5qoLE4s7JK926I=":2,"oVr3ZmvWmeO5V4lOW6+8gEGE5YY=":2,"oX3Jk2hkzKOTCsCjIb8aBoEQxCY=":2,"oc/SFHoD/b37HnDYvDl1S+Ln8+o=":2,"odROFyqXD/frsFAhnWAK7yW9p1E=":2,"oibx5gMRdevDCHgIZ8xHbhmCom0=":2,"pCDKhit9yDclLI07LYJ2Arec58E=":2,"pFBMDn/qQ2sU3hbTzN0XE+gPNlE=":2,"pGtFao+Eqv0xw/MJ4ne73wMtss0=":2,"pKocQQbERh0k2bBtqqHvsL6IzwY=":2,"pQbhy62y3+Jaimld0fQXsr90MPU=":2,"pSQhqungWlpbyd5qgvoDgc7AE/E=":2,"pXA8CdPQ2YBCgTcuH0u3ji94FpM=":2,"pj/VyHVWYMY781dFmsalRMjAdng=":2,"po8Y5k48QpkNI3OQK3HJSajJvIk=":2,"qGuRw9GZC5DTd5qdb/ri4A76b90=":2,"qX+92itsZYUdfyqVnkRNS1z8pEg=":2,"qhL0XSJvQoCDATRSMO6uHK6s0AE=":2,"qnTJ6qWlEO3mGlvjzZxRj1SWBSg=":2,"qpvlQsYaJOxyL6Vr9sOa7itTjWg=":2,"qtTOojYzivrM05kWyMG+4B3oavI=":2,"qxM7PjtM2REivHU89TUKjRFyX/c=":2,"r2jAg5LKs99/R7UDy7n+RVExthw=":2,"r66x+/C7gcK0ek2UGYaFgDG9W7A=":2,"r7iJmf1gYZfcG8O+Vd5YotXOO98=":2,"r7yFRxkCgT3Oeq05RWA9OtXpSI0=":2,"rBvqswHFQGNJ+GA8LqPPr3KtF+8=":2,"rEMdbHd/v8VQAKMX0knLaZEP8KI=":2,"rFDwZivZT0u0vRe8Vj180HEOHEI=":2,"rPu9e+cSQCdzkKfYpDy9vIMdrTU=":2,"rSlZi3H7e2ESXD48TLSxA+uHjp0=":2,"rVsxB7wqXgKFK40cRaUdv5100/8=":2,"rXmjfschRYJInGVNNv9jGIRrjJ4=":2,"rXtx9FDQjNrYAd+Xt+sv0IjIaJ8=":2,"rc4WJXNzddjdAyW+WERMtKMaYYI=":2,"rjWw31OACJd76/zAEVPT3BCWrpE=":2,"rp1qUhW5AwlfEo+FC5F3v84IJG4=":2,"rzbYuWFx8KRHnLGL8HtL+0dJhIo=":2,"s6btLO7QAG1u99wehXlGkxKUb0Y=":2,"sD67cLr9VrAeoarwQnBVmBOjfCs=":2,"sDK4hQp8T2RmWpWvgnHk6FQ2iwM=":2,"sIl513b2C2/QeDrHSuBpH2c6C0k=":2,"sL1dde8EjkxF+Lb89yeCnsBYBOU=":2,"sNAV48ni/e0b7Gn9jEfM3Q3dVe8=":2,"sPTnbQmrNOyx/qW0Xu4g4cu0aR4=":2,"siHaDi1iEPE3xPgGISfpfwb8h4M=":2,"skXg82RVCi6BZHNRI23RIG2DRC4=":2,"sunLW+vgbWmbUrarV07NcFmnKgE=":2,"t/DNJowu9uHR/kBc3bc1Nm7+9lo=":2,"t97bh7mYz2gwiY6nU+/w1i9dgZU=":2,"tBZZ8SUVG/FjRUpROxHXX3KaCyw=":2,"tK2lpUcycitAF1Et7B+/ZhiQ0ZM=":2,"tPPRnCQb4zC0dD4BJYFC6KAMVWw=":1,"tR2fhHtwBTc9bKHWDB/g0JFDNBY=":2,"tWRGM3CFPPslofcsSqj6vpcd7JU=":2,"uBMu4M5/0KKZY37hxUNLN39LPtA=":2,"uKsvvIzSMOyMR+4LPExkT1A8iDA=":2,"uNmw0kNAuK13LWxLuTZiaO140LY=":2,"uSACpi6t4iSWKjHFN6UHju08OB4=":2,"uf4z/h0h9ZnyOD7ycAiwgx/aHFo=":2,"unvMMzjFrurZix1N1pOtUC+RriY=":2,"utfiG74gl+SIxnKipbPl66ZNVWc=":2,"v6RXBuPtNohU+Lb6MHwV9z4lt1w=":2,"vD6n6Z9JW8prLB0rVlTt/g+4cCI=":2,"vDX9FACK55aBjFOaPdncKX2o+Bg=":2,"vW9hX9bdu7jEnh05U+zjXI+SbA8=":2,"vWbt1X54cCEDXSdUl4qpqdCohNE=":2,"vYmUY3JR7HpU6cV3sp31ubgx+YE=":2,"vqAjPDOmXZGBn833qAWFeo1PtsU=":2,"vqaClXLm/YZ8MhiUAukne10yy/o=":2,"w1vJ0NG9kDFtUNHq8zCMuDUVb8M=":2,"wAsstIPtDtjSlxUGn0gh+TfTWmQ=":2,"wJ4TJKlTMrrNezUg8dfBuOltq4U=":2,"wK4Zb71UwMahGOQFp0E3RYeMfYw=":2,"wZinPjTdOm5rrXI4u1NIKiffmp8=":2,"wib9u5YbRGJAqT5Bvh9zNZp4iTY=":2,"wqO+JoG3Un7fd2bDdvRxfAhbJ3Q=":2,"wr9Z2KN9f3Tq2jo3nTe3DpsNr54=":2,"wv3DmXgFeOrq/dbsherqtSjmrO8=":2,"x4c04qHrWNjtvJ2XgQQpd7wW1rA=":2,"xFo5PPJwZaq7i4dWLyzXeywAOEY=":2,"xUJ/eh98DaHs0DxWLA9fYYD6PzM=":2,"xgEKSqpgWJmo+flxFClV2/NiOJk=":2,"xjHJCBSoTdEQjebMV8aARzFcEkA=":2,"xm3y8sIKteMNAiUYEkt/ocEG7VI=":2,"xoxgp5Cx/yYkyO4yumq70s+D5t0=":2,"xtOFUD8jRLwrgCyGI5QnD7K+CG0=":2,"y0OlqPMUw6B8jvG1d2F9DOvkDp4=":2,"y2Kf0efsIVsF8PYgZBOV7tc5AfM=":2,"y2QRZhLYezQlVyzaDO4PEKbAmAc=":2,"yAXQT+zYHydb1uUhkuwtxm5At5k=":2,"yAyH2ZVkhzgat7fcC+nSDXQ11jw=":2,"yKtZdPSQMfJNQVKjIJ6noDw07mQ=":2,"yM5jN0VjPFKIKpUqRuN5KyRPd94=":2,"yad44gD7FAnezf8DgiIRZiDGlRY=":2,"yekkHNxtLVYK9WvooNiEKVWXabA=":2,"ykSAQyJm33Umehd0Txp/8rpum2I=":2,"yx1gN4z+x0naLVTbhc4/HO1c7cY=":2,"yzJqCQsowhulZe3Hx/xsWOvlTbw=":2,"z6CTfToXHCMt/46aowVDcKOYuL8=":2,"zAmtiHUH7ncF4kcOLIROCCAtn5Y=":2,"zTzCkN1zga1linYQP6v2AyMYW5w=":2,"zd+y/4GyfV5LQFAHFVfIKQuur+U=":2,"zejOvMNeql2wesKjXICcANkzyPM=":2,"zvV3Pm+WpZE4xD79k4mjhrJu0gw=":2,"zwzjvFMamlRnd5MSmg2F0LgPqso=":2,"zydtsLKKSp4EUItk7o34H/+dTNQ=":2}}},"ukm":{"persisted_logs":[]},"uninstall_metrics":{"installation_date2":"1746408261"},"updateclientdata":{"apps":{"eeigpngbgcognadeebkilcpcaedhellh":{"cohort":"1:w59:","cohortname":"Auto","dlrc":6941,"fp":"1.4497d8060d0e53c12b4403aa9ebe7e827d4880bae3f4139a26a4feb7ed64c4a2","installdate":6698,"max_pv":"0.0.0.0","pf":"a18a9302-8930-4d47-8dad-ae5c037f8288","pv":"2025.6.13.84507"},"efniojlnjndmcbiieegkicadnoecjjef":{"cohort":"1:18ql:","cohortname":"Auto Stage3","dlrc":6941,"fp":"1.160aa782aaa39e7b812a5e5e2c7c2f8a56e21d5ea84b92cd1f493cb384b4fdbd","installdate":6698,"max_pv":"1517","pf":"d3608814-03d0-45fa-a937-18a328a350c8","pv":"1532"},"gcmjkmgdlgnkkcocmoeiminaijmmjnii":{"cohort":"1:bm1:","cohortname":"Stable","dlrc":6941,"fp":"1.ed43e732234cc8b79a137be0a0aab8f72b37ae6ca51caf1292986edbf618c1d1","installdate":6698,"max_pv":"9.62.0","pf":"92410523-c7cf-4845-93e0-e166f7a2caa7","pv":"9.64.0"},"ggkkehgbnfjpeggfpleeakpidbkibbmn":{"cohort":"1:ut9/1a0f:","cohortname":"M108 and Above","dlrc":6941,"fp":"1.4795b6d7d7c2e0878abbb461850eb2068971273643901fd992814b9bfaff202b","installdate":6698,"max_pv":"2025.12.11.120","pf":"017c06bb-7ef3-4a85-b46e-ee415dd73b0c","pv":"2025.12.25.121"},"giekcmmlnklenlaomppkphknjmnnpneh":{"cohort":"1:j5l:","cohortname":"Auto","dlrc":6941,"fp":"1.3eb16d6c28b502ac4cfee8f4a148df05f4d93229fa36a71db8b08d06329ff18a","installdate":6698,"max_pv":"0.0.0.0","pf":"5b85f272-0b12-40e6-a508-cb6aee6f1dd8","pv":"7"},"gonpemdgkjcecdgbnaabipppbmgfggbe":{"cohort":"1:z1x:","cohortname":"Auto","dlrc":6941,"fp":"1.56c21927faa028be6ce18c931660eec37e41da4bfbfd47cafa48350f828c0dbd","installdate":6698,"max_pv":"0.0.0.0","pf":"e0898faf-4433-43cd-a722-850bb9cc7b9f","pv":"2025.7.24.0"},"hfnkpimlhhgieaddgfemjhofmfblmnib":{"cohort":"1:287f:","cohortname":"Auto full","dlrc":6941,"fp":"1.d45446da660d25c2ffbc0689c5012ae33485ad69449cc0792b1f38bebd04da9d","installdate":6698,"max_pv":"10244","pf":"87be194c-7660-44d6-82b8-fa10f7ce138e","pv":"10255"},"jamhcnnkihinmdlkakkaopbjbbcngflc":{"cohort":"1:wvr:","cohortname":"Auto","dlrc":6941,"fp":"1.c52c62a7c50daf7d3f73ec16977cd4b0ea401710807d5dbe3850941dd1b73a70","installdate":6698,"max_pv":"0.0.0.0","pf":"74774881-7e5e-4f77-920f-83969fd395e9","pv":"120.0.6050.0"},"jflhchccmppkfebkiaminageehmchikm":{"cohort":"1:26yf:","cohortname":"Stable","dlrc":6941,"fp":"1.4a06cfbce6f26c81ec6cba52e84985c0111183e0b06a953b14992b4511bb78af","installdate":6698,"max_pv":"2025.10.5.1","pf":"5ff45e3b-8abd-4fc2-9145-4f761dd45949","pv":"2025.10.7.1"},"jflookgnkcckhobaglndicnbbgbonegd":{"cohort":"1:s7x:","cohortname":"Auto","dlrc":6941,"fp":"1.220f906777a5ca8a28c0d7bb742912805fb6f93b262abc897f372213fc9841ef","installdate":6698,"max_pv":"3087","pf":"4a5a5130-5796-4521-80d6-a91611f8d6d9","pv":"3088"},"khaoiebndkojlmppeemjhbpbandiljpe":{"cohort":"1:cux:","cohortname":"Auto","dlrc":6941,"fp":"1.03c55f4f45c2a62c467f5bcf7e3fbee31e9ec27abeccefed06adc927cdf52968","installdate":6698,"max_pv":"67","pf":"77d0eff6-4989-4f04-895c-86a49db4ca67","pv":"144.0.7512.1"},"kiabhabjdbkjdpjbpigfodbdjmbglcoo":{"cohort":"1:v3l:","cohortname":"Auto","dlrc":6941,"fp":"1.caf22da361a099ee7f504cfd6018872cff61e16946d0a5a57fb07c529bfa8072","installdate":6698,"max_pv":"2025.8.25.1","pf":"8c55dcaf-cd47-442e-80db-ae4b86a81ffe","pv":"2025.9.29.1"},"laoigpblnllgcgjnjnllmfolckpjlhki":{"cohort":"1:10zr:","cohortname":"Auto","dlrc":6941,"fp":"1.e444ba601ac72b669514e6788bc458ac6b4a3f4400f18ad9b297a84eb27009e5","installdate":6698,"max_pv":"0.0.0.0","pf":"0045fe12-9d84-4570-b32c-224956ad397e","pv":"1.0.7.1744928549"},"llkgjffcdpffmhiakmfcdcblohccpfmo":{"cohort":"1::","cohortname":"","dlrc":6941,"fp":"1.2be74d0afadd4c9b2ee33695e1f81fc5ce5dc3016cd8a13cfa0e1f0b571834ea","installdate":6698,"max_pv":"1.0.0.18","pf":"07e12423-fca7-403e-aae9-bf22a1333eef","pv":"1.0.0.19"},"lmelglejhemejginpboagddgdfbepgmp":{"cohort":"1:lwl:","cohortname":"Auto","dlrc":6941,"fp":"1.bb4ff4726d6f232b7d6976a7f467ea619b7c696aa18848229e3adb9fb191336e","installdate":6698,"max_pv":"595","pf":"5d7cde47-b231-4cdd-848f-1f2ae99b67d2","pv":"599"},"mfhmdacoffpmifoibamicehhklffanao":{"cohort":"1:1ge3:","cohortname":"Stable","dlrc":6941,"fp":"1.a10a891103c69736b97d77dd5fa1ce1ffd77a0c8bc3aea6162df0423933e0755","installdate":6698,"max_pv":"140.10","pf":"347dd84a-4c4c-4818-8765-5efce2e4a1c2","pv":"140.12"},"niikhdgajlphfehepabhhblakbdgeefj":{"cohort":"1:1uh3:","cohortname":"Auto Main Cohort.","dlrc":6941,"fp":"1.38c89b12bb20a8f2751c9c7cd2e31c173a47af08c115e1ecccc2f5151a2cf2c6","installdate":6698,"max_pv":"0.0.0.0","pf":"76d4401a-7cb4-44bd-a220-7e55e37c3a3f","pv":"2025.6.16.0"},"obedbbhbpmojnkanicioggnmelmoomoc":{"cohort":"1:s6f:3cr3@0.025","cohortname":"Auto","dlrc":6941,"fp":"1.f0fac1ffee516ccd1505ec8a51acfa6d9c4fca45d78de2059eceaf3dde376216","installdate":6698,"max_pv":"0.0.0.0","pf":"a5202619-6bf1-4cd1-99e8-409cba20935d","pv":"20250629.778704241.14"},"oimompecagnajdejgnnjijobebaeigek":{"cohort":"1:3cjr:","cohortname":"Auto","dlrc":6941,"fp":"1.92ac4503d850d61341c2b89b0ca25ae45a875f85e7ab7018354cef9a0b37bba7","installdate":6698,"max_pv":"4.10.2891.0","pf":"cae51630-5641-4c06-8c64-4e585905582b","pv":"4.10.2934.0"},"ojhpjlocmbogdgmfpkhlaaeamibhnphh":{"cohort":"1:w0x:","cohortname":"All users","dlrc":6941,"fp":"1.545666a4efd056351597bb386aea1368105ededc976ed5650d8682daab9f37ff","installdate":6698,"max_pv":"0.0.0.0","pf":"4f233212-d3a0-49f5-864a-dfa4ea09ad6a","pv":"3"}}},"user_experience_metrics":{"limited_entropy_randomization_source":"347548CD8B793C0E43E5BEDEBC391338","low_entropy_source3":5052,"machine_id":5183260,"pseudo_low_entropy_source":2545,"session_id":539,"stability":{"browser_last_live_timestamp":"13411820814764378","exited_cleanly":true,"stats_buildtime":"1736279424","stats_version":"132.0.6834.83-64-devel","system_crash_count":0}},"variations_crash_streak":595,"variations_google_groups":{"Default":[]},"variations_limited_entropy_synthetic_trial_seed_v2":"48","was":{"restarted":false}} \ No newline at end of file +{"accessibility":{"captions":{"soda_registered_language_packs":["en-US"]},"screen_ai":{"last_used_time":"13411823812828618"}},"autofill":{"ablation_seed":"TALAAWR3U5o=","states_data_dir":"C:\\Users\\Administrator\\MCreatorWorkspaces\\AxisInnovatorsBox\\library\\jcef\\cache\\AutofillStates\\2025.6.13.84507"},"background_tracing":{"session_state":{"privacy_filter":false,"state":0}},"breadcrumbs":{"enabled":false,"enabled_time":"13410596638238299"},"browser":{"shortcut_migration_version":"132.0.6834.83"},"chrome_labs_activation_threshold":44,"hardware_acceleration_mode_previous":true,"legacy":{"profile":{"name":{"migrated":true}}},"local":{"password_hash_data_list":[]},"management":{"platform":{"azure_active_directory":0,"enterprise_mdm_win":0}},"optimization_guide":{"model_store_metadata":{},"on_device":{"last_version":"132.0.6834.83","model_crash_count":0,"performance_class":7}},"origin_trials":{"disabled_features":["CanvasTextNg","WebAssemblyCustomDescriptors"]},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAADBwqsP1QzrT6MWcdZVJfu5EAAAABIAAABDAGgAcgBvAG0AaQB1AG0AAAAQZgAAAAEAACAAAACB1ryRyzwij1C09/fW7Nq6xYWNYBouyiCtBQVy/dm3CQAAAAAOgAAAAAIAACAAAADbFABSUOggpWGtdyt8gjY1U0KOsQGeTko2gmAW90ZayTAAAADFq9PcgOxeNssHaxgGBueXV4hvHQJJpmfEMZ+q1Evd16SVsDQI/5ryEswRmAd6zwNAAAAAOuqKXbFa23SsXpgg7Pl2JS8o587xUaAWaRKpBdtanJxeqCeHs86s5Xb7UUFCatlPZCByX+JyuenI90CW2C8Ncw=="},"policy":{"last_statistics_update":"13411820814994139"},"privacy_budget":{"meta_experiment_activation_salt":0.8784738491452397},"profile":{"info_cache":{"Default":{"active_time":1763794268.852173,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_26","background_apps":false,"force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","metrics_bucket_index":1,"name":"Person 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":["Default"],"metrics":{"next_bucket_index":2},"profile_counts_reported":"13411820815005226","profiles_order":["Default"],"show_picker_on_startup":false},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"session_id_generator_last_value":"1067275204","signin":{"active_accounts_last_emitted":"13411820814826676"},"subresource_filter":{"ruleset_version":{"checksum":1588750443,"content":"9.64.0","format":36}},"tab_stats":{"discards_external":0,"discards_frozen":0,"discards_proactive":0,"discards_suggested":0,"discards_urgent":0,"last_daily_sample":"13411820814933199","max_tabs_per_window":1,"reloads_external":0,"reloads_frozen":0,"reloads_proactive":0,"reloads_suggested":0,"reloads_urgent":0,"total_tab_count_max":1,"window_count_max":1},"tpcd":{"metadata":{"cohorts":{"+85uj8UpFJFs1LbZzRODD1aQ+Vs=":2,"+EvRah+wIaVJthrhxHGvfjZWQqY=":2,"+Goy06x/MCwrTV/aHU6CfXEkvHs=":2,"+OlMW5y2ANwBFsH03kShVXYVYM4=":2,"+WavPWcVf6qGVorrutx5lkDvL8g=":2,"+exM1B26jXxhR2Ux05ie/WWp0x0=":2,"+mNvpfM3JkKTeK+6ohl+LXstAC8=":2,"+qkOunaBVbv6XoaIwvMn3m6HluM=":2,"+tsbvVZgVIUs6CaBR9z7zuZH70o=":2,"+xOc8Z8Bc8iWT3jhs1SRha/IbDM=":2,"/AzXcP7UuUNwY1auU8IKM+kO+4A=":2,"/Bvm/Rrh3ZMwqH+/+4QOIcUQPPk=":2,"/FeZnUMHLubMD1MVDBjadEPAlVo=":2,"/HAmLxXpHT88v9y7xE9hHTkgIvM=":2,"/Qdp4MAUrNtjqZV9mfb20WAMugw=":2,"/QxFmTaKVmgoQI7u32pqfP+71Bc=":2,"/aGCDNLRew1LLZH+59lHCuAYNdk=":2,"/hbF3j5JOvAak7vNsAbK79bOP34=":2,"/llw2C0PMltsatGnpTHqrkbluYM=":2,"/oHhyW5YAQhdBpgYcbm1vJyiP+Q=":2,"/rtQf7RE4vMc92KjutC8LkjUZgQ=":2,"/xVDyosmqM6bfIMKyDuRAUI1Qyo=":2,"0Eq8eriICMngC2bt8vmV6V5tJCc=":2,"0OWhcqeF92w5b13FI7cuw0wYOiM=":2,"0b9gyhS7XLqmkmOe5OQuD409YLc=":2,"0gnBMXopl7lReGu+XSk/UzZakLk=":2,"0o2/D9RwYjAcr69AeW+JJDm3uHQ=":2,"0y3W2Bn1Kfxh/5CIvP2vZz5fwTE=":2,"164zkQ1BuqOVnZxlkMScGNXYC8Y=":2,"190T6zIzSL3PTH7lqquaA8KAqVg=":2,"1KHE7JEW3MsvkGFH8et2wPovDqk=":2,"1MfDQw3vHCQqaDa7CJ05y8CkuJs=":2,"1XfEZ7+2f5d1GWbkN5KoDjaQBL8=":2,"1v+25/b3OROEvLwpc+58pTQHvUQ=":2,"24O8PXrKNoFD7n9OiIn/kPM8q1E=":2,"26KadWj8dsla9qY4pbLWwc3WCQY=":2,"2EnXui3e9m8cVkso31bGopul3g0=":2,"2PGjwY0nYdnDLk59gOOl/h012PY=":2,"2W5F+NooL0WF8r0ykkHsqw75NVM=":2,"2ks61ETyiwJVBKjWdeLi+jBzvHw=":2,"2ogzRk2u3FpQekT714FkK0vkFy8=":2,"3IgtLbRDI7pm77T7imadPrRxR5E=":2,"3LIGdlgJ5Rw05ZwZulvKp0JajOw=":2,"3UWlaBDJKI5jNgpXTezvx7uZ7L8=":2,"3dFQSDfXS18fA563uc5mxhMXjLk=":2,"3iGyG3EVKY4vxn8RarUIggZVVkY=":2,"3pCe5f7oscOC94pJnWvhlszLhr0=":2,"3qs39ewgIOr/6zygzv+0ltu0SjE=":2,"3vvP54USUtSZlm/osFRbdXjCN/U=":2,"4+yW/l/2EqzM0fGVj0BcXV5TqDI=":2,"44pYIrJiSE08LkH770bq0wwoNEA=":2,"4TwK5fjrPUvueMXp4HZKGWvCJ0M=":2,"4ZC+GtEmLmHToJys2q2fbofqXeE=":2,"4eXKnzRS6ifFncgprkihsauqdGE=":2,"4qJ4K07ijGN6GmvmTNYzTJYmtRw=":2,"4rqrzEd2r2LoSpwBy3Wd1v4Drtc=":2,"4tQsYPAXpmciDFIC4nUACa9X4Wo=":2,"4vXUVM3Beyj2Rn+4lrrMuX455kY=":2,"55tALpi6iGTNuAMJkIQHrV/h8Zw=":2,"5Mo2uOqOAgDMAFR9xJxpj+Ps9vw=":2,"5Roy+ahYhL8V+JUUKT4pljRssYk=":2,"5UJk8zfVHpYxYI3tEGAQfMrks6k=":2,"6/9fhC6bkvQ+GDnCZzKV5b1uEs4=":2,"6218Tv51tHCkvM+pj15cmmrEp44=":2,"6AuvpHbKzPKvnQ5Iq4ZnJrH7VJc=":2,"6DjDzfLMbfYOmlGOJVAk9WK0yxs=":2,"6Edcp8jwSlxhClh0ZABA7VHryeY=":2,"6HE+xAlLmyPiZz4+IOE6QJR2+qU=":2,"6MJKJThHrZ77JxHeDkpqjqsJmPc=":2,"6S99zH9nPCcQM3Z3Z1tFjU0qI/8=":2,"6WtNqNcKg7znf4yFj/CmTJII+Ik=":2,"6iyZ50rVcsj89+phE3AIAQJ5Rl8=":2,"6sUp2EUK4KkR37GrEyH5Yoqc+Vg=":2,"74ScHGU1kOsGMCDn6+SMbExuJ0Y=":2,"74kVp2Qz/ClJ+826v36FnrVlEmU=":2,"7G9aQ3bdYQZRR5Xfs9AsSwsaPRs=":2,"7JjfkitOjBaGC/olVMv7P7VXegA=":2,"7Q3tTd5EeObvMV4js0wywUGWCDo=":2,"7ZvG0q9vmUTKE/kR/8lnxgr+W9g=":2,"7trRGs2suPfs2j1Fw8il8Ct2I4w=":2,"7ypMXoaWrM++zdAbjUUcvDdl6DA=":2,"84VFR/BgNC855g31gNI+lcgcvK0=":2,"8EArI4IQxFb1Jy5KKpgqxnjYqU8=":2,"8WDNGSYrBtXaSuNuCUcuENOqzbE=":2,"8jVuTrHMGXgJ62nUXx9V7cN/mzM=":2,"8nS7YyD+ru/R67lIeZKe30RKet8=":2,"8tt9aAK5Lm7Zcy9hZvUy06bgxCU=":2,"8ur3KjsVLO0lz7bfhzH5Rz06+fM=":2,"9J2Hjgd0WomJNXCVXUnnFp7HblY=":2,"9MZYN7ZW722NmXNr0I0a6xNGHw8=":2,"9PrZjFg2RssHXVdygP2FMo63tHk=":2,"9UuNM5QRWcp6mYkcu/t/I7FADLw=":2,"9V5BfQG4ZefovfNaXdHkf3YSIbM=":2,"9fj5AS7ShECezTEbos0drF7hGYo=":2,"9kQgpCCVk03s/PvG6sFZp1HUjFU=":2,"9rJ/kzjFOsSGSnyRLXimccFODIk=":2,"A24Vd0mboNwTK86qjAnL5NPT0ew=":2,"A7mJev6l+9dO4av3/tE3zj9JzLY=":2,"ANAAVt1I64nz8zJraV4+sB3bn5M=":2,"AgtaUdyyXGWAAMwjRWqwR8Ni8fk=":2,"AsgodONRHQuPbpgDwflsruAzPns=":2,"BJMwY+kVmXIH7sXwmXK/Q13fPkY=":2,"BVHoUpngEWtu0oY2qTH5s35an88=":2,"Bg6wgMZDYx0+/TxkfcfpqINBID0=":2,"BhE51h7DPwhQMQULRUIC2yvAK0Y=":2,"Bpex3OdFL9MLPykjDHF83THK4XU=":2,"Bxd9P1pUJldfaa0T/bjJ4RryaWE=":2,"C3WnzDhbWkxjLSTmT0Q4X+C5Y0g=":2,"CAPrE/fqgLuDiAW9p2hVJvKDVow=":2,"CBUdQZWRoFXyEsfV+uWNQuCMeFA=":2,"CFfzn2HEP0aH/l6Ix4YZ61KhVaM=":2,"CHJAmkWmDHuhYsu3pfxXnIh7HZQ=":2,"COZfIR9QIUwbad3hWuzoXMpnAN8=":2,"CQDGAq5GGMwFpHfW1z5j8CT63sM=":2,"Cjr9Pmookm1kE1NrmqrajTbbNGQ=":2,"CkEWJOcxrLmlVHE98ZW0fCC7cLo=":2,"CpdpCv4T0/puu4pnh4QKOoEMmAY=":2,"CvqZCPmZan5z33NXlrLvk5mzYrc=":2,"Cvywmg5xUNWlVmE1IlOnnaftKTc=":2,"Cz5dAHQlqdvtLvLtHPDUZiiiu+8=":2,"D7m1f2X1ZclMkgJz6eoxMvjV/BY=":2,"DBJzFXqFvKfiVCuXYUaENduUW+4=":2,"DK9He0ANXehmcN8YZhoASlkBlBo=":2,"DjMDHHpf+nnOnHxm/T1q8y5AoGs=":2,"DptldxPMxrOcxrsoRizh9K9nzEs=":2,"E+JAai/R1FoHjUcPV6PvZ+pFENY=":2,"E6/wFsja05ZZziyq3W/qhIfGjWM=":2,"E6h3qgjEj/9/yT6FUGw6YpUCrEU=":2,"E90biI3zHl/mrbRJIr35sUO1G2A=":2,"ECSWj1Bohkn3n1AWHIMEKlbepxQ=":2,"ELx9iaWnrWA5GpWryrvIbwgayb0=":2,"EYpM3f28E5iXkICbU1lbq13/xDs=":2,"EcH6B6F0qgOh+aDUV+DrOVR8Ag0=":2,"EdIuR7LPx1E9lRrlGHXSFSHL2zo=":2,"EkweGdn7Hj2CcJIpLShtXcn4Z5U=":2,"ErqMWkx4Pxb7qmvS+z+hDqzHXtM=":2,"Ew5jcdiDb1RN24kn4qz0nvhVBRg=":2,"Ewtt2SfL5QqYenyxIDEkC9k3tXs=":2,"F+TX3oARl/flaR0nHt5Js6PSCF0=":2,"FBC4lg/vz1H0FxdIxuTqNU4ZEB8=":2,"FJGJZYWxDCoJrYWPy2BUgtq1HM0=":2,"FRQtGBzKKPjy+HEtL7DsX3Felx0=":2,"FcelBmyYBLBRw/HaUwB9s6j5p3Q=":2,"FmvG9vz/LOjYYeU35txjwm9nZRQ=":2,"Fo02W4qlJUivZslOW61nZcCyA9I=":2,"FxMDzlEZgYp2JToAhAg+/yUllRU=":2,"G37v4qWLagnhBfOYr/ow2BEX8wQ=":2,"G3w71gAwbEQRQHACN74TIHrskus=":2,"GA+aolhIHd7aBXICZM5+0OrHfac=":2,"GBKfC442lwAxRkYbckvrizRO9s0=":2,"GVXlVv4EGFdKXDT5DPw/i710C9c=":2,"GWb9dIET7NeLkFZHxmz/DyBcwvw=":2,"GYhBRDeJahYz7i3JJ/8IyE2P5Oc=":2,"GgzZdRVruTyuSjP6N/LfEPt+Rw8=":2,"Gpss+UglPt1UUU2jy1ZlC2Haaos=":2,"GtCeVEmWQHdw3rryz0AuH5gyJxM=":2,"H3GqtTSpNlUUna7Umw0oI+0NgR4=":2,"H4j81ysGT6UYvop5kplp6lxlqXg=":2,"HABGlXq1BaOVH1Ifx+TyX6oI1c8=":2,"HKs5tNwpPQnqsBWBwrTC+hZGTTk=":2,"HM/pWnlnNgRgj3BUP0fYxxzl73Q=":2,"HPKcn8DkK6LusgLP9nDxVh2uJC8=":2,"HSh4Zm3wQfJIatvBZlrOfUeOfwk=":2,"HeMPvC/blr02FSRJtCharxgmzco=":2,"HmcCaa4SwSvvXXelNnwnv7AJeY8=":2,"Ht53X4lOUdtiGjATCg1fkJrokAU=":2,"HwkleqQc/sC85c17L6GdLZZRy14=":2,"I+7UKSXKSzGBgefFdkILZwsI9bs=":2,"I/ZGfrelShQUfRY9aoFBE2Ey1es=":2,"I5BwwRq++KWQv4ptZSLHGgVymIs=":2,"I9HlcZVHx3L832KLRSQTyyKcszM=":2,"IR5VBOOYDolqu3h+57TkJv62y4Y=":2,"IVYz/Wpt7sibxI0sN4+ORgouym4=":2,"IXYNhiWHet2dJvLpHZUkTrdX3T8=":2,"IYpFc21SFnpXN7O5VIPFH6jzdDU=":2,"IZM2fgogPf28F3qsGfathZESrto=":2,"IbS6gvfuP5iBCntJRl7/kGFWfU0=":2,"IpkxtRCHzfxeCqhGtGlgTZho5PA=":2,"Is6xz79EUUUlkrq+vTsITATIXy0=":2,"IvBIWWt8SMIZYO4zi8CNRQBdMa4=":2,"J0sdM/l3EGX6Frv/rSg7j7GL01Y=":2,"J6lcmiUnipJu3gVcoFiUbu+lbDs=":2,"JCDhMYyv6cBx12AS4NeS46EYq1U=":2,"JNVlxkqEWTvStjmY4qJmC71fnzo=":2,"JTODY14/ed4R5V5Q07Wyq1nHZCs=":2,"JWymogHaDHPgCtgoLPRcgF77J7g=":2,"JX1E7bBowYq/NXrg6uP+3EJOu1E=":2,"JgkRGWnXEHJQ70T82y1m8BrqX3Q=":2,"JslOsSCDdI34ClPlNXHA44C8BdM=":2,"K/m4A4gm9l73A6cVZkwC06VtJOU=":2,"K0pey71AM2vyu7pnYfphijaZFQQ=":2,"KCVNDq0FuwrUaqe8KovMG7Uj3F4=":2,"KCmDv40c4KHL+sZ06jr0iETCE/o=":2,"KHAia59NLQnyXDqGRHyg0ZiaTFA=":2,"KJyIq4mOXhu24VxX9gSFD3D93v4=":2,"KfKkkVLOQcHL8t9vHg9yVAoakwQ=":2,"KixfNZ8p0zlprYxunHrPzxobaq4=":2,"KmZM9Qj7kdUlBfwHt3Ha5IOIaXo=":2,"KnVtOxTqcw8Bj0cILIShIFWDZRU=":2,"Koq5VrYu1jgSuPxzC8JneftbXrY=":2,"KqtJUSyT2ifVLtE+YTa+Jwrew0k=":2,"L/1K37AEimYFLDPtWP00QHs4Y68=":2,"L2SILwi57slYAS17LPKLyjzn//M=":2,"L67fEFjVgKvKrPk8WOq+ypaV0dc=":2,"L8Sb2X7fKyM5N332D0ndTxRV6UY=":2,"LBcANp6Rge+D7JyH+lPItmNHsqw=":2,"LH6IDw2lqWicdgcu+tSQmhjaVvs=":2,"LI77XnWaUgy77p5DAeqIO7vOH14=":2,"LIcUrXtcBWBDTsYmK/hSjTpkhOQ=":2,"LK/nTUZLp4wQL8LSp6SlGXML0Xo=":2,"LLWfG5BXDbqHYtiETKDto5KENC0=":2,"LPP/dWFPHE2kpSUwpzspR7jegbE=":2,"LW/7lCwmMHUj5quQrOys8yKgpSU=":2,"LYaNdeviHa0JUthz/IPOwEOXmQQ=":2,"LZMdcjkdapf2PBM+TcQgrrw5l1Q=":2,"LadD1LUTKp90k3P8uJv25vGYSHI=":2,"LcbdMwrGmghZm+QEi615YhcnzP0=":2,"LhU39BVBhzq0HvhANd7D6dP5Qu4=":2,"LtHcu/ZmzB4KTac2VXn1G9F2+yE=":2,"LxPYBWzEULXwJn7iyMSa8QtD+kg=":2,"M+ZG7S72MQJCJe2aQVcvZoKftWA=":2,"M/Wjwu0AfUQ2o20egq9z+7bIzRE=":2,"MVHNDtRF1gJXlUK/+UZ6MIq+cMk=":2,"MXK6lMxDUXU9R5KLAL2bNOMx//A=":2,"MYnF7KiFcThaEWDO9xNzhikWzZg=":2,"McPp8MRX+uUUktsdxYDRi8o+eos=":2,"MftGgIb+TIwSyHnx7apoYs9NrDA=":2,"MpWCvxXFEf9daTeLjHcm3R/E81U=":2,"MqHL/cxomXHa8ev3atB93jJzbZI=":2,"MuDS3URWGZcyPBilzs4FXRzmboc=":2,"MuuNU16haFees5FcNMYXYToRZfY=":2,"N8NipVw4J3jV3lwC90mjPwfCHxg=":2,"NEHnjJf0uubHBmHAJBilzidYpks=":2,"NF8b22VZThqOOVOFtwz90G+TnlE=":2,"NMjxROmwGnztdYpQh/UAc4Bbnr4=":2,"NQamteBltpv0Ps+H619TiFUCf+I=":2,"NdXqc2xTrq/FN6tgl0gsTiq3F38=":2,"Ne1UYIth2fIOE+GqWmLouOzVGoM=":2,"NeSyTyiMagGROQJlNI8QSaSlBSw=":2,"NgAzcAy15WMJsY2pkT/2GxdgG04=":2,"NmMsYpAfxlJVp0FWodzxuSiHS3c=":2,"O/ynEwzhifwXixFynPqJ/W/oWh4=":2,"O0wSnPIMZPh/STNUh0vac3hUGJA=":2,"OEU7USrAsrnhG8bqMiZ26hK2CNg=":2,"OGH8Nmp74ZiT2sjux1xx41S2tNw=":2,"OJcSYTQfOFc27T/8rITzt7968R8=":2,"OQmSZcXWlR6aMwil6XEKlWcjacg=":2,"OVBSN2PMsKlMAlmaAKYB1cRcoY4=":2,"Obd7ogklY6JivNJCQIXV8d0qDuk=":2,"OjHuY9k7IqD58ta4pJplHxor6YM=":2,"OrjPTpbv6b9JNjns2OKkVTiKM+s=":2,"Ow215V5uWo11K+h3r5uqPKLzJI0=":2,"OzlQr4k8StWsbx6xo25olxpqFPo=":2,"P20wwKcWg8wwuTQl2+Brvgsvt0I=":2,"P2fxs0FUJWvTtwxgQ60U8ShnO10=":2,"PDaqV454hbqksZYGhTh5MEKnTws=":2,"PP/b+e8PPjUMQYS2OBT8GhMPS1o=":2,"PZwAWgz5MHGCT1WnkwTC53E/m9M=":2,"Pmvf6keEdJ2RdJbIEPbC6yjlB2I=":2,"Pn/ePL4HFaa4hTTOIC1z+UcbhSE=":2,"Q7VBdSOn3tXuYecIipApfUrWc0E=":2,"QANgRaF/b2zkl6ZtfzavHjFDGww=":2,"QGhV7+yJFgHnsLlp61izzFLm+8M=":2,"QKSyrWjQ6MjhtW2FNppRoKVNRCY=":2,"Qbrqdt73OY7jzL0r98xuGkILcf0=":2,"QtCZzUY6hCGEqCUTc2M5HNrrs4w=":2,"QuBiJAmt3+xnOmt838WFWkZNBII=":2,"Quz0fwq2iFeVentUcxv7EtGXBgI=":2,"Qy0HTOBuuQRuxmyN6GCjTBI+2MQ=":2,"R7CcmUEwytA73udabElrP9G8sN0=":2,"RF2lGGs4R20QEkXEifuLc5MTiy4=":2,"RIrVY4vPSyEJqz7rQNux/M6K2Uc=":2,"RNUHLVNAftYYrVsfw0XdkUFumwo=":2,"RSTkS8lWrQGjrgVquWcQVopYcRc=":2,"RUj0ztXJ7+kOsCpP9Kv3TDeFJJg=":2,"RVzwez9xPSX1AEn5pHSL/PR1Ak0=":2,"RYWzXqC3fQdwkaxnwdmOPmZixUw=":2,"RbcSJm/cbTD27QN7lN6Us62QIlE=":2,"RnwhHERLjD4kuXuJm44mHsUem+Y=":2,"RpqgmmdI4JgMujDXyfPAuYlQsNc=":2,"RqXHWd3nIsw7tt+RmTWynHdd0X4=":2,"S3CW+p7BtwcbD0fgDCiZ0RAQyjE=":2,"SAo2aVtafLNYHW7zVkEhRT9bh2Y=":2,"SY+bhxGSSGCnz1kQKI5yVUmhEfE=":2,"SYm5CVFkFOVllamvQ9D/tRM1JDw=":2,"SdL3nSP2tifv3D4axuGNQnI2bUc=":2,"Sdit/gOF9Dasz7o9sp6F7f95VxU=":2,"Sf6QB4b+AtQzltHOGfemdKTv/FI=":2,"So1TyGdA4U1tMl43UysxLdrBD+8=":2,"SvBLShco9LDUjRwg1aaiMvtvTFo=":2,"T/wIOHUG39AOmrfsXhUAzuEQY68=":2,"T2+of555wmTbJ2TrkfFXZPtJe6w=":2,"T9Qe0SNV0OBiGFU2oks1F78khLA=":2,"TMo985XELW9v74mmn50qi7dfmbc=":2,"TXp5FPH1q8BqEe/vPr2XzQNN4DQ=":2,"TYN2QA74YpLLdgx/KIWyDC7yWrs=":2,"TmrP6vdRPLfVW5N55bGHKWuqKxY=":2,"ToVZFnRaRPFc+bC+kUfL0o6oVbY=":2,"Twx+PUyhAazRa7zunJLUk7AuLcc=":2,"U/HvDF5lgUDIOvDbP9v5BmirEUs=":2,"U/MXSpdHG3Qh2p/vzyc0aFq/U94=":2,"U3KMQW6Rs95g1UJIi3OsZRqYWvQ=":2,"U7ti2JIQ2rB+nGUoJfrARNYcm/o=":2,"U9A/mkuLQvuMuaD1/0NbkxKJwsk=":2,"UDzrIJUrsqeKvuc/bTIuZnU0+5Q=":2,"UHJJhRN9z3qlaau2hbL1mfcfrI4=":2,"USKrPvDKw/JS/mQnPgXXm0PjWhI=":2,"Ucs6z5K6yxsQzCuxBg8IhFUW1uY=":2,"UyrsycnE0Y34SKsZr4aPMI19T4Q=":2,"V2W3L8FR9XTVZQtEl9UZ76GRaOk=":2,"VC/PaSikiazeBowkWU8F8s8Fbdc=":2,"VXhkGMKyQv4EGmsqXOlEmAdtX8E=":2,"Vus+nTDrUYcfuhZkTwWq8pp72Fo=":2,"W/vJPSCn52d0z02T4zSZuXmUFIo=":2,"W3JXUQpisayYUb8fvciX7mz/LUw=":2,"W79Q1UtfGoRJvjuDwvvCFd/g0g8=":2,"WGcOskzornIFeV5Wbec+z/7T8yQ=":2,"WN6w7LqpMGoL89o4ulIxTcXAttM=":2,"WirG4pLCvHATRD/XepELhtbx2z4=":2,"WybscQ6r1DfHRHCfANqlzsLEfR4=":2,"X+IBU7yum6s8R9EIK1eZ5xNXHzY=":2,"X1hwqKxZESTzs9BvFVN1cudNbU0=":2,"X3CsotjCGLmix01VOhQnaVzerc4=":2,"X3r0cKrB50GCupilXtIT0OsNmNU=":2,"X88GhHdCWKsBm24R727HFAkDr7U=":2,"XIcpBEZDocLvzctDOSolZeZZGMM=":2,"XJGnm7SMThSxDgLYX1WCQCpXIeE=":2,"XXS4Q2MvRlQ3g/5H4ppGQKiDMuc=":2,"XdRdTTf2L82I/5T7+QKhT3Pho24=":2,"XiqKy7gubyO5rqh2hQCzWLmuRP0=":2,"XkVTCFQo/kf96t12VPlUHI7Bsoo=":2,"XlU2doslDe9k2Sjyz+HoF+s4Fuk=":2,"Xmi6obAjhT4C07AkOLr1DrZOYng=":2,"Y+3yeiQnPoLWrymZUS7uiptfvWE=":2,"Y9F1acusJNtR1MKQ9sV/LUbtLcU=":2,"YCITb6CU1HEkdv0e/aMbXU15Bsc=":2,"YCrDNn1PepBzFGwS4liz7EGhd20=":2,"YQX9fwmNvbp79I5BVuG+xSFVcjM=":2,"YXSX9V1CWZmwRJWSO+196koeC7Y=":2,"YeDH3FcQ76eu+6wKfeDV3Z75z4k=":2,"Yv9p2UhdpPR9HiQAehTqepmaOtk=":2,"Z1cXRToCPBewKDIjZhu01gzNgvM=":2,"ZAqPZQWJRYyqIy1vmo7cQCQVpEU=":2,"ZCc7WSp1R56ujdXzRr1nbB6X4PY=":2,"ZIWJDsMLDNK3inlfrSMccHToQv0=":2,"ZN87pxH8AlA0PR/ktFLGAjm8JDc=":2,"ZSyVOd9TPha8GxMzhtgZiF93aZg=":2,"ZcCE53MqfEUAG0OC9vuXsgNygQA=":2,"ZnEawSbVIhbrxvLmTU/51FR3PHc=":2,"Zntf7wQ+SmweAQbnVsys7KRLiCA=":2,"ZtCtW2Sze8YbTG1fS4loW1n3F4s=":2,"ZuT1OewLis1kVKZoBEacnH8c4oQ=":2,"a/06Cc1qCMoW5/jphsMeYfBLXrA=":2,"a13zReUtyPNWrTN/Br6vION4M9k=":2,"aMpjfejGmbvrz24NGwVgyoJWmB0=":2,"aOhZbO9SzuqTcdPglSVnbInJ0HY=":2,"akhZxq2ZypH9U+g8ptVEix2Ys30=":2,"b390+KlW3do0iY5dWxyw/Nvj8y8=":2,"b64LG8t0nZIMAH4frxWe0Xe0lVc=":2,"bAfivuZXv6xQHZCq1H7RdaBGeJs=":2,"bI1Vo/T/gZu6ziJq0A76h0bkQ3A=":2,"cDMRM41OYKodBqf5yPs7PXp7Ibc=":2,"cFGuCTImI1LKaInDPxQtiun7tc4=":2,"cFmOFeeAC2RTc++FepBrbqvZJu8=":2,"cS+k6IBZ28FX5Gu5yS+3rwfash0=":2,"cU2FpWNjt8mGURI0k5QPpMUA1p0=":2,"cVRrJOXl5PBGO3dbZJV8A5XlMQY=":2,"cYEiRDkwdEht5TZ8ftQ2T12/vmI=":2,"cZnefofy4yEnFmkQ0gaP7nfgGBQ=":2,"ccdh7Hta93FtJR+qwt7DElNPqBI=":2,"chKNF84vgaJ1RtQrKV4ytLiKjlk=":2,"ciN5+j5UQseF5/8p+leZThdpwLk=":2,"cnQYSsJdyO+otNbyW42g39tQHFw=":2,"dCGPD+ybLSgoWN7NZsSKWMIMa8g=":2,"dNRX77I/GjMbKJwIPRRuZQnef5k=":2,"dSgRwJW6QXt5Gyti9tvXKOSloVI=":2,"dULO06RXKgWKOnT+2EPWFhzSOzQ=":2,"ddNzLLovIOQAjI1Fuour/azCRPs=":2,"dfVd5Cks1FFJVdNmS+sD4zItmmQ=":2,"dhvEuIu4bREe/yc3n+uWgemDH+Y=":2,"e7QR994kinvEvNi5PEREfEgRBPk=":2,"eIkv3FutAxmGf2Mh7yo0HiDjrls=":2,"ePMMAHx9Ax6ezSppn6dpqbBnLhE=":2,"ex04CvLWFikDWXjGQ4RtjbOeRNM=":2,"f/TYvHakawJF91GiVgpjciGJPc8=":2,"f8cvQ/sraTsg0bwM+aS4D6pFT6I=":2,"f9ysKU6hcNbVfpf1njOmFQ2qbZ0=":2,"fBmcT7XNbLpOQsfKdgdXEdc1P38=":1,"fLj05EfmTLEt58m3jVUhPVS04sU=":2,"fMus4OBg1K5k+k8tLnAZyRBbnLY=":1,"fa4i6qfS5+dDiDVKFZDjsFnF6Rc=":2,"fnRvo3ItSPsvU3LKSXBRXJg0FUs=":2,"foNSnwHq8ph3wPaXJ8I88LehpI4=":2,"fuy5x4yKH5LLTw4kz6c1pnFiOcQ=":2,"g0FiO0sC3nMBLvy49sLKeESA7h0=":2,"gCgo0usJBkT8uf+0XUuS3gWGdoA=":2,"gJJSwVtCLng5e1xxugIzmlnHbd4=":2,"gJK5pMWuNFrD9OGNIgKananYNSo=":2,"gMpTRAKA7Ayl+W/YVqQhr5GU6x0=":2,"gSTTNamgmAMk2//gdb5jcZMN9AQ=":2,"gqGHjniFghep8E6txoAdzX/4h3M=":2,"gr0I/I6o5WZbCX3ANuvNoagEEe8=":2,"gsU6EH/i8w1ThrqsEm6GK79feO4=":2,"gtc5hvQud0vqhMhm2fmcV4S+Agc=":2,"gxn+9RnfotKjIQsWN6Ldd6tJFwQ=":2,"hGJJ6Hh+MF5i2sXu2g4Yz8nZwHs=":2,"hJM03Qy65rIixL+QnwFnZUWdS7o=":2,"hRdDjllKxVjmSDiRpxs+uOUT9Q4=":2,"hl/Ql44a9B+9BQR34dUhENrlIJ4=":2,"hmt01LHgEU30nJb6VMA41XMWRyg=":2,"ho9bP3IJ21F4d3qP3pTJA0JkTj4=":2,"htyr9QaPXQOHGsfVmr+97oeW0UM=":2,"iBD/DGiehe+56IosGVlv3c1wJ3Q=":2,"iD9S1fFa6FpM5DcIk5pQUCSj4aw=":2,"iGzRH+UPc4Ea3ApuY49us3/XCaA=":2,"iHnWlD4n0QHbXoUv3k90wclViuU=":2,"iXvZsH9NpG0qHURLzLTudfP9aeU=":2,"ihQuIV4rmAFYvTr6lwMV4HokREI=":2,"ihRhUKLVahjKDEOmS0BbYyhgv7k=":2,"ipbKvdY2LsQlCcEkuSqe8v4By6g=":2,"ipt6XYj9NCIb0hWN8BbyXEF5DfQ=":2,"irephTXGVO+MmlZ2AS7MbB5AyLM=":2,"j+6DOgEHMZgTIWSHhf9CjmUGIK8=":2,"j+GDvmG+Am9Xd+4Q/XDAlrQrFz4=":2,"jAuqNF/yhbdqVNpoWw+2Jo6e6bs=":2,"jEtGDH1uWCTHnmHc2bGPDrpEHCg=":2,"jODdAGIb3/eRchqP2DHAiTYlP0Y=":2,"jQfCzjp4d/PizsLo5UpdD2f8www=":2,"jUoBtJ03/Xr45tg4Dqenc5cYWAU=":2,"jVgQocUsQaH7V/2UxhLVOidhP20=":2,"jYhk6dm72WAaxSdjIvOSNJ3d0sE=":2,"jaMkW1knsztb/0+GNCKx6G/SzaI=":2,"jc0TPKjiMVneKPNeY2avjLI9KVY=":2,"jq2rGPyUu7grG5FJi/I/qcKLKg0=":2,"k/v8xkMt57fg28L2fh73gxXa4Yc=":2,"k1J17FRo3myPzj+UE+LXaZ9ohSc=":2,"k3bwFkPXH/EDNGF7Npn6kwKJu6Q=":2,"k7hYQMMCyKjXIXP+LR8U+d3GIzQ=":2,"kDJnIwokySTxXp20eRGTskuMM9c=":2,"kLV2LBNc1aIFljjZItvqx2bhY1U=":2,"kMGe+97jR78zimxmtL9Ak8a0OHw=":2,"kOvgd336AvzRZ7zhd6KqxVNyMiU=":2,"kYI0w0yGJWsEW8mUvaWKX5BGN34=":2,"kYvIeNAo8XJrY0sLt9RkQb/ArLk=":2,"kbEmSJ7AT4IyCib5dANoydcLsmE=":2,"kfmukk3rEZbsice63or/akfPSU0=":2,"l1TwOsy32JiZV/bM26UQ8oCnn7k=":2,"l1l9LWMnuHXWDBSLcfQ3Zp7bVVk=":2,"l38tVXmuuGlAgD9a3eXwX/jQwgI=":2,"lHA+dhHLhlHLq/O+0+Xz7buufJ4=":2,"lJcNksg20bY6CgGPqZu5aQHbRhE=":2,"lUbDYyCRhvBzS0nDrz8rx/nq0A0=":2,"lUfzJ3y5Jzs7p4PBHh4xhm+zoG8=":2,"lV/IOzmMkT+d9gXfFgqtsErYe2M=":2,"lY3+bGoDRF7A0eSICXUJ1yfpxo8=":2,"lZpQb3elaMvd1gsI/plZxcpUVwY=":2,"lcXOtK8KVWFVeHE4WLEewHPCWWY=":2,"ldPbP2/DX6N+AldQ7AFtoht/Bvc=":2,"lhONN2tBTBA/tSnMtizicuNBPLU=":2,"lmXhk+G6r/qbCMYZcVdJbnn+93I=":2,"mEj21qtta3LLlAxWkZ8sijZvktM=":2,"mSNPvAXxob4waWjBxs3ziW6z71g=":2,"mYby0t8WAz6jV9RgYIRRGyfeWB8=":2,"mg1zJLHTYaJIMLNxa+rsYWsZJhI=":2,"mh3wxEYkuAk6sRhlr/C5G/gxYRI=":2,"miEzBOZuMem0Cj9Uxw1LjN9S9cw=":2,"mlWAbHBzQ5Td8U9HSp8fcPdPyzQ=":2,"mmci9ejkh1yqEt/tTbqbQeSaSwI=":2,"mqI5UE1zlvwODeiYkE+97gk/N38=":2,"mv8xDlT2/YhQtkLKnptz6SQB5uM=":2,"nAj3Ny++JKnx/3X/T3HRcVSVXN0=":2,"nHcOob6uJ8APh5510nMH7Ikg5XI=":2,"nNG/hSMKDgXudXzByhmJ+8Udww8=":2,"o/9SDeB9XVwuJyTLitMsvbgaQKg=":2,"o1UwUqLfJmuxKSuFfNRz/EzR9So=":2,"oHsvpBtYgeqeqVOdT/DQDeNAyp8=":2,"oIsMwEfYOTvIzVNKHP6nF5RhkVk=":2,"oNPOB+kuiVqZt91Ceva1HD2babU=":2,"oNrKGepVbapve5qoLE4s7JK926I=":2,"oVr3ZmvWmeO5V4lOW6+8gEGE5YY=":2,"oX3Jk2hkzKOTCsCjIb8aBoEQxCY=":2,"oc/SFHoD/b37HnDYvDl1S+Ln8+o=":2,"odROFyqXD/frsFAhnWAK7yW9p1E=":2,"oibx5gMRdevDCHgIZ8xHbhmCom0=":2,"pCDKhit9yDclLI07LYJ2Arec58E=":2,"pFBMDn/qQ2sU3hbTzN0XE+gPNlE=":2,"pGtFao+Eqv0xw/MJ4ne73wMtss0=":2,"pKocQQbERh0k2bBtqqHvsL6IzwY=":2,"pQbhy62y3+Jaimld0fQXsr90MPU=":2,"pSQhqungWlpbyd5qgvoDgc7AE/E=":2,"pXA8CdPQ2YBCgTcuH0u3ji94FpM=":2,"pj/VyHVWYMY781dFmsalRMjAdng=":2,"po8Y5k48QpkNI3OQK3HJSajJvIk=":2,"qGuRw9GZC5DTd5qdb/ri4A76b90=":2,"qX+92itsZYUdfyqVnkRNS1z8pEg=":2,"qhL0XSJvQoCDATRSMO6uHK6s0AE=":2,"qnTJ6qWlEO3mGlvjzZxRj1SWBSg=":2,"qpvlQsYaJOxyL6Vr9sOa7itTjWg=":2,"qtTOojYzivrM05kWyMG+4B3oavI=":2,"qxM7PjtM2REivHU89TUKjRFyX/c=":2,"r2jAg5LKs99/R7UDy7n+RVExthw=":2,"r66x+/C7gcK0ek2UGYaFgDG9W7A=":2,"r7iJmf1gYZfcG8O+Vd5YotXOO98=":2,"r7yFRxkCgT3Oeq05RWA9OtXpSI0=":2,"rBvqswHFQGNJ+GA8LqPPr3KtF+8=":2,"rEMdbHd/v8VQAKMX0knLaZEP8KI=":2,"rFDwZivZT0u0vRe8Vj180HEOHEI=":2,"rPu9e+cSQCdzkKfYpDy9vIMdrTU=":2,"rSlZi3H7e2ESXD48TLSxA+uHjp0=":2,"rVsxB7wqXgKFK40cRaUdv5100/8=":2,"rXmjfschRYJInGVNNv9jGIRrjJ4=":2,"rXtx9FDQjNrYAd+Xt+sv0IjIaJ8=":2,"rc4WJXNzddjdAyW+WERMtKMaYYI=":2,"rjWw31OACJd76/zAEVPT3BCWrpE=":2,"rp1qUhW5AwlfEo+FC5F3v84IJG4=":2,"rzbYuWFx8KRHnLGL8HtL+0dJhIo=":2,"s6btLO7QAG1u99wehXlGkxKUb0Y=":2,"sD67cLr9VrAeoarwQnBVmBOjfCs=":2,"sDK4hQp8T2RmWpWvgnHk6FQ2iwM=":2,"sIl513b2C2/QeDrHSuBpH2c6C0k=":2,"sL1dde8EjkxF+Lb89yeCnsBYBOU=":2,"sNAV48ni/e0b7Gn9jEfM3Q3dVe8=":2,"sPTnbQmrNOyx/qW0Xu4g4cu0aR4=":2,"siHaDi1iEPE3xPgGISfpfwb8h4M=":2,"skXg82RVCi6BZHNRI23RIG2DRC4=":2,"sunLW+vgbWmbUrarV07NcFmnKgE=":2,"t/DNJowu9uHR/kBc3bc1Nm7+9lo=":2,"t97bh7mYz2gwiY6nU+/w1i9dgZU=":2,"tBZZ8SUVG/FjRUpROxHXX3KaCyw=":2,"tK2lpUcycitAF1Et7B+/ZhiQ0ZM=":2,"tPPRnCQb4zC0dD4BJYFC6KAMVWw=":1,"tR2fhHtwBTc9bKHWDB/g0JFDNBY=":2,"tWRGM3CFPPslofcsSqj6vpcd7JU=":2,"uBMu4M5/0KKZY37hxUNLN39LPtA=":2,"uKsvvIzSMOyMR+4LPExkT1A8iDA=":2,"uNmw0kNAuK13LWxLuTZiaO140LY=":2,"uSACpi6t4iSWKjHFN6UHju08OB4=":2,"uf4z/h0h9ZnyOD7ycAiwgx/aHFo=":2,"unvMMzjFrurZix1N1pOtUC+RriY=":2,"utfiG74gl+SIxnKipbPl66ZNVWc=":2,"v6RXBuPtNohU+Lb6MHwV9z4lt1w=":2,"vD6n6Z9JW8prLB0rVlTt/g+4cCI=":2,"vDX9FACK55aBjFOaPdncKX2o+Bg=":2,"vW9hX9bdu7jEnh05U+zjXI+SbA8=":2,"vWbt1X54cCEDXSdUl4qpqdCohNE=":2,"vYmUY3JR7HpU6cV3sp31ubgx+YE=":2,"vqAjPDOmXZGBn833qAWFeo1PtsU=":2,"vqaClXLm/YZ8MhiUAukne10yy/o=":2,"w1vJ0NG9kDFtUNHq8zCMuDUVb8M=":2,"wAsstIPtDtjSlxUGn0gh+TfTWmQ=":2,"wJ4TJKlTMrrNezUg8dfBuOltq4U=":2,"wK4Zb71UwMahGOQFp0E3RYeMfYw=":2,"wZinPjTdOm5rrXI4u1NIKiffmp8=":2,"wib9u5YbRGJAqT5Bvh9zNZp4iTY=":2,"wqO+JoG3Un7fd2bDdvRxfAhbJ3Q=":2,"wr9Z2KN9f3Tq2jo3nTe3DpsNr54=":2,"wv3DmXgFeOrq/dbsherqtSjmrO8=":2,"x4c04qHrWNjtvJ2XgQQpd7wW1rA=":2,"xFo5PPJwZaq7i4dWLyzXeywAOEY=":2,"xUJ/eh98DaHs0DxWLA9fYYD6PzM=":2,"xgEKSqpgWJmo+flxFClV2/NiOJk=":2,"xjHJCBSoTdEQjebMV8aARzFcEkA=":2,"xm3y8sIKteMNAiUYEkt/ocEG7VI=":2,"xoxgp5Cx/yYkyO4yumq70s+D5t0=":2,"xtOFUD8jRLwrgCyGI5QnD7K+CG0=":2,"y0OlqPMUw6B8jvG1d2F9DOvkDp4=":2,"y2Kf0efsIVsF8PYgZBOV7tc5AfM=":2,"y2QRZhLYezQlVyzaDO4PEKbAmAc=":2,"yAXQT+zYHydb1uUhkuwtxm5At5k=":2,"yAyH2ZVkhzgat7fcC+nSDXQ11jw=":2,"yKtZdPSQMfJNQVKjIJ6noDw07mQ=":2,"yM5jN0VjPFKIKpUqRuN5KyRPd94=":2,"yad44gD7FAnezf8DgiIRZiDGlRY=":2,"yekkHNxtLVYK9WvooNiEKVWXabA=":2,"ykSAQyJm33Umehd0Txp/8rpum2I=":2,"yx1gN4z+x0naLVTbhc4/HO1c7cY=":2,"yzJqCQsowhulZe3Hx/xsWOvlTbw=":2,"z6CTfToXHCMt/46aowVDcKOYuL8=":2,"zAmtiHUH7ncF4kcOLIROCCAtn5Y=":2,"zTzCkN1zga1linYQP6v2AyMYW5w=":2,"zd+y/4GyfV5LQFAHFVfIKQuur+U=":2,"zejOvMNeql2wesKjXICcANkzyPM=":2,"zvV3Pm+WpZE4xD79k4mjhrJu0gw=":2,"zwzjvFMamlRnd5MSmg2F0LgPqso=":2,"zydtsLKKSp4EUItk7o34H/+dTNQ=":2}}},"ukm":{"persisted_logs":[]},"uninstall_metrics":{"installation_date2":"1746408261"},"updateclientdata":{"apps":{"eeigpngbgcognadeebkilcpcaedhellh":{"cohort":"1:w59:","cohortname":"Auto","dlrc":6941,"fp":"1.4497d8060d0e53c12b4403aa9ebe7e827d4880bae3f4139a26a4feb7ed64c4a2","installdate":6698,"max_pv":"0.0.0.0","pf":"ff445340-0088-4cc8-824e-7fa70eaea60f","pv":"2025.6.13.84507"},"efniojlnjndmcbiieegkicadnoecjjef":{"cohort":"1:18ql:","cohortname":"Auto Stage3","dlrc":6941,"fp":"1.160aa782aaa39e7b812a5e5e2c7c2f8a56e21d5ea84b92cd1f493cb384b4fdbd","installdate":6698,"max_pv":"1517","pf":"8385c4ec-1259-4010-8f64-2504d9ccc16b","pv":"1532"},"gcmjkmgdlgnkkcocmoeiminaijmmjnii":{"cohort":"1:bm1:","cohortname":"Stable","dlrc":6941,"fp":"1.ed43e732234cc8b79a137be0a0aab8f72b37ae6ca51caf1292986edbf618c1d1","installdate":6698,"max_pv":"9.62.0","pf":"8c11f183-d016-46d7-bf09-ce9e4764606e","pv":"9.64.0"},"ggkkehgbnfjpeggfpleeakpidbkibbmn":{"cohort":"1:ut9/1a0f:","cohortname":"M108 and Above","dlrc":6941,"fp":"1.1a9b02293d39d659a2f69fbe670d6a6816b0f83ff69f6ed0aec9e19329353851","installdate":6698,"max_pv":"2025.12.25.121","pf":"7951fb55-6f3a-47d9-bbf0-db9cb072d0b2","pv":"2025.12.29.121"},"giekcmmlnklenlaomppkphknjmnnpneh":{"cohort":"1:j5l:","cohortname":"Auto","dlrc":6941,"fp":"1.3eb16d6c28b502ac4cfee8f4a148df05f4d93229fa36a71db8b08d06329ff18a","installdate":6698,"max_pv":"0.0.0.0","pf":"c7a601c9-059a-47a6-a0f5-b8e7a60f03c7","pv":"7"},"gonpemdgkjcecdgbnaabipppbmgfggbe":{"cohort":"1:z1x:","cohortname":"Auto","dlrc":6941,"fp":"1.56c21927faa028be6ce18c931660eec37e41da4bfbfd47cafa48350f828c0dbd","installdate":6698,"max_pv":"0.0.0.0","pf":"cf40859f-de94-4124-8b56-ac81b90c0e18","pv":"2025.7.24.0"},"hfnkpimlhhgieaddgfemjhofmfblmnib":{"cohort":"1:287f:","cohortname":"Auto full","dlrc":6941,"fp":"1.d45446da660d25c2ffbc0689c5012ae33485ad69449cc0792b1f38bebd04da9d","installdate":6698,"max_pv":"10244","pf":"24759852-d41c-4288-86e0-996bb93875e9","pv":"10255"},"jamhcnnkihinmdlkakkaopbjbbcngflc":{"cohort":"1:wvr:","cohortname":"Auto","dlrc":6941,"fp":"1.c52c62a7c50daf7d3f73ec16977cd4b0ea401710807d5dbe3850941dd1b73a70","installdate":6698,"max_pv":"0.0.0.0","pf":"99b53e0f-a046-4700-9a12-627facd8f345","pv":"120.0.6050.0"},"jflhchccmppkfebkiaminageehmchikm":{"cohort":"1:26yf:","cohortname":"Stable","dlrc":6941,"fp":"1.4a06cfbce6f26c81ec6cba52e84985c0111183e0b06a953b14992b4511bb78af","installdate":6698,"max_pv":"2025.10.5.1","pf":"fb1177a9-a7e8-44f8-8536-9fe0df19166e","pv":"2025.10.7.1"},"jflookgnkcckhobaglndicnbbgbonegd":{"cohort":"1:s7x:","cohortname":"Auto","dlrc":6941,"fp":"1.d77d063235a7f16202526fb276f08bf219ba82ec65268695841ce285c5588d0d","installdate":6698,"max_pv":"3088","pf":"f572d78e-1e98-4d4b-9a7a-2b1eb201a6ca","pv":"3089"},"khaoiebndkojlmppeemjhbpbandiljpe":{"cohort":"1:cux:","cohortname":"Auto","dlrc":6941,"fp":"1.03c55f4f45c2a62c467f5bcf7e3fbee31e9ec27abeccefed06adc927cdf52968","installdate":6698,"max_pv":"67","pf":"56cffabe-d4df-4718-90a7-ba2e97ddfcae","pv":"144.0.7512.1"},"kiabhabjdbkjdpjbpigfodbdjmbglcoo":{"cohort":"1:v3l:","cohortname":"Auto","dlrc":6941,"fp":"1.caf22da361a099ee7f504cfd6018872cff61e16946d0a5a57fb07c529bfa8072","installdate":6698,"max_pv":"2025.8.25.1","pf":"241dad66-a664-410c-a720-e1f09a766103","pv":"2025.9.29.1"},"laoigpblnllgcgjnjnllmfolckpjlhki":{"cohort":"1:10zr:","cohortname":"Auto","dlrc":6941,"fp":"1.e444ba601ac72b669514e6788bc458ac6b4a3f4400f18ad9b297a84eb27009e5","installdate":6698,"max_pv":"0.0.0.0","pf":"bdc88538-f2bd-4cb4-ae50-317e14997e3f","pv":"1.0.7.1744928549"},"llkgjffcdpffmhiakmfcdcblohccpfmo":{"cohort":"1::","cohortname":"","dlrc":6941,"fp":"1.2be74d0afadd4c9b2ee33695e1f81fc5ce5dc3016cd8a13cfa0e1f0b571834ea","installdate":6698,"max_pv":"1.0.0.18","pf":"64413316-ca76-4eb9-a43d-3b2de3a474a2","pv":"1.0.0.19"},"lmelglejhemejginpboagddgdfbepgmp":{"cohort":"1:lwl:","cohortname":"Auto","dlrc":6941,"fp":"1.bb4ff4726d6f232b7d6976a7f467ea619b7c696aa18848229e3adb9fb191336e","installdate":6698,"max_pv":"595","pf":"0c2f637c-2834-447b-9a90-d16a6cafba20","pv":"599"},"mfhmdacoffpmifoibamicehhklffanao":{"cohort":"1:1ge3:","cohortname":"Stable","dlrc":6941,"fp":"1.a10a891103c69736b97d77dd5fa1ce1ffd77a0c8bc3aea6162df0423933e0755","installdate":6698,"max_pv":"140.10","pf":"be387320-6ab8-4149-9b77-1dd430f5e9d7","pv":"140.12"},"niikhdgajlphfehepabhhblakbdgeefj":{"cohort":"1:1uh3:","cohortname":"Auto Main Cohort.","dlrc":6941,"fp":"1.38c89b12bb20a8f2751c9c7cd2e31c173a47af08c115e1ecccc2f5151a2cf2c6","installdate":6698,"max_pv":"0.0.0.0","pf":"fed92ed2-8ffb-48b9-9daa-69992d474a0e","pv":"2025.6.16.0"},"obedbbhbpmojnkanicioggnmelmoomoc":{"cohort":"1:s6f:3cr3@0.025","cohortname":"Auto","dlrc":6941,"fp":"1.f0fac1ffee516ccd1505ec8a51acfa6d9c4fca45d78de2059eceaf3dde376216","installdate":6698,"max_pv":"0.0.0.0","pf":"53b1316c-6220-4fb5-880b-06167e81b7ae","pv":"20250629.778704241.14"},"oimompecagnajdejgnnjijobebaeigek":{"cohort":"1:3cjr:","cohortname":"Auto","dlrc":6941,"fp":"1.92ac4503d850d61341c2b89b0ca25ae45a875f85e7ab7018354cef9a0b37bba7","installdate":6698,"max_pv":"4.10.2891.0","pf":"ec7a1169-9e32-44bf-ab28-286508164f93","pv":"4.10.2934.0"},"ojhpjlocmbogdgmfpkhlaaeamibhnphh":{"cohort":"1:w0x:","cohortname":"All users","dlrc":6941,"fp":"1.545666a4efd056351597bb386aea1368105ededc976ed5650d8682daab9f37ff","installdate":6698,"max_pv":"0.0.0.0","pf":"933635fb-ad40-479c-96e3-1809bb377863","pv":"3"}}},"user_experience_metrics":{"limited_entropy_randomization_source":"347548CD8B793C0E43E5BEDEBC391338","low_entropy_source3":5052,"machine_id":5183260,"pseudo_low_entropy_source":2545,"session_id":541,"stability":{"browser_last_live_timestamp":"13411823812118035","exited_cleanly":true,"stats_buildtime":"1736279424","stats_version":"132.0.6834.83-64-devel","system_crash_count":0}},"variations_crash_streak":597,"variations_google_groups":{"Default":[]},"variations_limited_entropy_synthetic_trial_seed_v2":"48","was":{"restarted":false}} \ No newline at end of file diff --git a/library/jcef/cache/Variations b/library/jcef/cache/Variations index c46edf6..9a0f18d 100644 --- a/library/jcef/cache/Variations +++ b/library/jcef/cache/Variations @@ -1 +1 @@ -{"user_experience_metrics.stability.exited_cleanly":false,"variations_crash_streak":595} \ No newline at end of file +{"user_experience_metrics.stability.exited_cleanly":false,"variations_crash_streak":597} \ No newline at end of file diff --git a/library/jcef/cache/chrome_debug.log b/library/jcef/cache/chrome_debug.log index 4ce7507..71a9e70 100644 --- a/library/jcef/cache/chrome_debug.log +++ b/library/jcef/cache/chrome_debug.log @@ -1,4 +1,3 @@ -[4944:21460:0102/174655.052:WARNING:account_consistency_mode_manager.cc(77)] Desktop Identity Consistency cannot be enabled as no OAuth client ID and client secret have been configured. -[4944:21460:0102/174655.144:WARNING:extension_service.cc(2065)] Found external version of extension ncennffkjdiamlpmcbajkmaiiiddgioothat is older than current version. Current version is: 3.52.14. New version is: 3.52.5. Keeping current version. -[5764:9508:0102/174655.913:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning) -[5060:21232:0102/174855.188:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning) +[21000:23644:0102/183652.188:WARNING:account_consistency_mode_manager.cc(77)] Desktop Identity Consistency cannot be enabled as no OAuth client ID and client secret have been configured. +[21000:23644:0102/183652.220:WARNING:extension_service.cc(2065)] Found external version of extension ncennffkjdiamlpmcbajkmaiiiddgioothat is older than current version. Current version is: 3.52.14. New version is: 3.52.5. Keeping current version. +[16896:6088:0102/183652.521:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning) diff --git a/library/jcef/cache/first_party_sets.db b/library/jcef/cache/first_party_sets.db index 6a55f9b..6a79eb2 100644 Binary files a/library/jcef/cache/first_party_sets.db and b/library/jcef/cache/first_party_sets.db differ diff --git a/library/jcef/cache/segmentation_platform/ukm_db b/library/jcef/cache/segmentation_platform/ukm_db index 0f3c73f..6d2c3db 100644 Binary files a/library/jcef/cache/segmentation_platform/ukm_db and b/library/jcef/cache/segmentation_platform/ukm_db differ diff --git a/sql_learning.lock.db b/sql_learning.lock.db index 2561941..51fbda8 100644 --- a/sql_learning.lock.db +++ b/sql_learning.lock.db @@ -1,6 +1,6 @@ #FileLock -#Fri Jan 02 17:46:53 CST 2026 +#Fri Jan 02 18:36:51 CST 2026 hostName=192.168.116.1 -id=19b7e1a4b3ed8755d1cb7723021bb5b3ae83bb80d46 +id=19b7e480ce06e1cbe3dba3b505e2cafb4d7d6da1e3d method=file -server=192.168.116.1\:64658 +server=192.168.116.1\:52019 diff --git a/sql_learning.trace.db b/sql_learning.trace.db index 4163caf..105f993 100644 --- a/sql_learning.trace.db +++ b/sql_learning.trace.db @@ -198,3 +198,21 @@ DELETE TABLE add [42001-220] 2025-12-15 10:39:48 jdbc[3]: exception org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "DELETE [*]/?"; expected "identifier"; SQL statement: DELETE /? [42001-220] +2026-01-02 17:47:29 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]dec"; expected "DELETE, DROP, DECLARE, DEALLOCATE"; SQL statement: +dec [42001-220] +2026-01-02 17:47:36 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]DISTINCT"; SQL statement: +DISTINCT [42000-220] +2026-01-02 17:47:44 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]DISTINCT INFORMATION_SCHEMA"; SQL statement: +DISTINCT INFORMATION_SCHEMA [42000-220] +2026-01-02 17:48:07 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "Structure[*]; ;"; SQL statement: +Structure; ; [42000-220] +2026-01-02 17:48:10 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]Structure"; expected "SAVEPOINT, SCRIPT, SHUTDOWN, SHOW"; SQL statement: +Structure [42001-220] +2026-01-02 18:37:21 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]ues PUBLIC"; expected "UPDATE, USE"; SQL statement: +ues PUBLIC [42001-220] diff --git a/src/main/java/com/axis/innovators/box/python/PyLocalSide.java b/src/main/java/com/axis/innovators/box/python/PyLocalSide.java index 503a240..73a5364 100644 --- a/src/main/java/com/axis/innovators/box/python/PyLocalSide.java +++ b/src/main/java/com/axis/innovators/box/python/PyLocalSide.java @@ -3,6 +3,8 @@ package com.axis.innovators.box.python; import com.axis.innovators.box.AxisInnovatorsBox; import com.axis.innovators.box.window.MainWindow; import com.axis.innovators.box.register.LanguageManager; +import com.axis.innovators.box.window.util.ToolCategory; +import com.axis.innovators.box.window.util.ToolItem; import javax.swing.*; import java.awt.event.ActionEvent; @@ -22,11 +24,11 @@ public class PyLocalSide { ); LanguageManager.addLanguage(language); } - public static MainWindow.ToolCategory getToolCategory(String name, - String icon, - String description) { + public static ToolCategory getToolCategory(String name, + String icon, + String description) { - return new MainWindow.ToolCategory(name, icon, description); + return new ToolCategory(name, icon, description); } public static Action getAction(Runnable runnable){ @@ -37,16 +39,16 @@ public class PyLocalSide { } }; } - public static MainWindow.ToolItem getToolItem(String title, + public static ToolItem getToolItem(String title, String icon, String description, int id, Action action){ System.out.println(action); - return new MainWindow.ToolItem(title, icon, description, id, action); + return new ToolItem(title, icon, description, id, action); } - public static void addToolCategory(MainWindow.ToolCategory category, String registeredName){ + public static void addToolCategory(ToolCategory category, String registeredName){ AxisInnovatorsBox.getMain(). getRegistrationTool().addToolCategory(category, registeredName); } diff --git a/src/main/java/com/axis/innovators/box/register/RegistrationTool.java b/src/main/java/com/axis/innovators/box/register/RegistrationTool.java index 6c7abff..81220f1 100644 --- a/src/main/java/com/axis/innovators/box/register/RegistrationTool.java +++ b/src/main/java/com/axis/innovators/box/register/RegistrationTool.java @@ -10,6 +10,8 @@ import com.axis.innovators.box.window.JarApiProfilingWindow; import com.axis.innovators.box.window.MainWindow; import com.axis.innovators.box.plugins.PluginDescriptor; import com.axis.innovators.box.window.TaskbarAppearanceWindow; +import com.axis.innovators.box.window.util.ToolCategory; +import com.axis.innovators.box.window.util.ToolItem; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.tzd.lm.LM; @@ -27,7 +29,7 @@ import java.util.UUID; */ public class RegistrationTool { private static final Logger logger = LogManager.getLogger(RegistrationTool.class); - private final List toolCategories = new ArrayList<>(); + private final List toolCategories = new ArrayList<>(); private final AxisInnovatorsBox main; private final List uuidList = new ArrayList<>(); private final List registeredNameList = new ArrayList<>(); @@ -39,11 +41,11 @@ public class RegistrationTool { // 判断系统是否支持 if (BuildInformation.isMatchSystem(BuildSystem.WINDOWS) || BuildInformation.isMatchSystem(BuildSystem.UNKNOWN)) { - MainWindow.ToolCategory debugCategory = new MainWindow.ToolCategory("调试工具", + ToolCategory debugCategory = new ToolCategory("调试工具", "debug/debug.png", "用于调试指定Windows工具的一个分类"); - debugCategory.addTool(new MainWindow.ToolItem("Frida注入工具", "debug/frida/frida_main.png", + debugCategory.addTool(new ToolItem("Frida注入工具", "debug/frida/frida_main.png", "使用frida注入目标进程的脚本程序 " + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -54,10 +56,10 @@ public class RegistrationTool { } })); - MainWindow.ToolCategory programmingToolsCategory = new MainWindow.ToolCategory("编程工具", + ToolCategory programmingToolsCategory = new ToolCategory("编程工具", "programming/programming.png", "编程工具"); - programmingToolsCategory.addTool(new MainWindow.ToolItem("JarApi查看器", "programming/JarApiViewer/JarApi_Viewer.png", + programmingToolsCategory.addTool(new ToolItem("JarApi查看器", "programming/JarApiViewer/JarApi_Viewer.png", "查看Jar内的方法以及其注解" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -68,7 +70,7 @@ public class RegistrationTool { } })); - programmingToolsCategory.addTool(new MainWindow.ToolItem("C语言编辑器", "programming/LanguageEditor/file-editing.png", + programmingToolsCategory.addTool(new ToolItem("C语言编辑器", "programming/LanguageEditor/file-editing.png", "C语言编译器,智能化的idea" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -78,7 +80,7 @@ public class RegistrationTool { } })); - programmingToolsCategory.addTool(new MainWindow.ToolItem("多语言在线执行(当遇到无限循环时会抛出错误)", "programming/LanguageEditor/file-editing.png", + programmingToolsCategory.addTool(new ToolItem("多语言在线执行(当遇到无限循环时会抛出错误)", "programming/LanguageEditor/file-editing.png", "多语言在线执行,当遇到无限循环时会抛出错误" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -88,7 +90,7 @@ public class RegistrationTool { } })); - programmingToolsCategory.addTool(new MainWindow.ToolItem("数据库管理工具", "programming/programming_dark.png", + programmingToolsCategory.addTool(new ToolItem("数据库管理工具", "programming/programming_dark.png", "用于管理数据库" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -98,7 +100,7 @@ public class RegistrationTool { } })); - programmingToolsCategory.addTool(new MainWindow.ToolItem("Linux终端工具", "programming/linux.png", + programmingToolsCategory.addTool(new ToolItem("Linux终端工具", "programming/linux.png", "用于启动一个Linux终端" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -108,7 +110,7 @@ public class RegistrationTool { } })); - programmingToolsCategory.addTool(new MainWindow.ToolItem("MySql控制台", "programming/mysql.png", + programmingToolsCategory.addTool(new ToolItem("MySql控制台", "programming/mysql.png", "用于启动一个MySql控制台" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -118,11 +120,11 @@ public class RegistrationTool { } })); - MainWindow.ToolCategory aICategory = new MainWindow.ToolCategory("AI工具", + ToolCategory aICategory = new ToolCategory("AI工具", "ai/ai.png", "人工智能/大语言模型"); - aICategory.addTool(new MainWindow.ToolItem("本地AI执行工具", "ai/local/local_main.png", + aICategory.addTool(new ToolItem("本地AI执行工具", "ai/local/local_main.png", "在本机对开源大语言模型进行推理" + "\n作者:tzdwindows 7", ++id, new AbstractAction() { @Override @@ -144,12 +146,12 @@ public class RegistrationTool { } })); - MainWindow.ToolCategory hahahah = new MainWindow.ToolCategory( + ToolCategory hahahah = new ToolCategory( "good工具", "haha/ok.png", "good " ); - hahahah.addTool(new MainWindow.ToolItem("123", "ai/local/local_main.png", + hahahah.addTool(new ToolItem("123", "ai/local/local_main.png", "456789" + "\n作者:Vinfya", ++id, new AbstractAction() { @Override @@ -162,10 +164,10 @@ public class RegistrationTool { })); - MainWindow.ToolCategory systemCategory = new MainWindow.ToolCategory("系统工具", + ToolCategory systemCategory = new ToolCategory("系统工具", "windows/windows.png", "系统工具"); - systemCategory.addTool(new MainWindow.ToolItem("任务栏主题设置", "windows/windowsOptimization/windowsOptimization.png", + systemCategory.addTool(new ToolItem("任务栏主题设置", "windows/windowsOptimization/windowsOptimization.png", "可以设置Windows任务栏的颜色等各种信息", ++id, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { @@ -187,7 +189,7 @@ public class RegistrationTool { * 注册ToolCategory * @param toolCategory ToolCategory */ - private boolean addSystemToolCategory(MainWindow.ToolCategory toolCategory, + private boolean addSystemToolCategory(ToolCategory toolCategory, String registeredName) { registeredName = "system:" + registeredName; if (!main.isWindow()) { @@ -208,7 +210,7 @@ public class RegistrationTool { * 注册ToolCategory * @param toolCategory ToolCategory */ - public boolean addToolCategory(MainWindow.ToolCategory toolCategory, + public boolean addToolCategory(ToolCategory toolCategory, String registeredName) { if (!main.isWindow()) { if (registeredNameList.contains(registeredName)) { @@ -228,7 +230,7 @@ public class RegistrationTool { * 注册ToolCategory * @param toolCategory ToolCategory */ - public void addToolCategory(MainWindow.ToolCategory toolCategory, + public void addToolCategory(ToolCategory toolCategory, PluginDescriptor pluginDescriptor, String registeredName) { if (addToolCategory(toolCategory, @@ -243,9 +245,9 @@ public class RegistrationTool { * @param id UUID * @return ToolCategory对象 */ - public MainWindow.ToolCategory getToolCategory(UUID id) { + public ToolCategory getToolCategory(UUID id) { if (!main.isWindow()) { - for (MainWindow.ToolCategory toolCategory : toolCategories) { + for (ToolCategory toolCategory : toolCategories) { if (toolCategory.getId().equals(id)) { return toolCategory; } @@ -274,7 +276,7 @@ public class RegistrationTool { return null; } - public List getToolCategories() { + public List getToolCategories() { return toolCategories; } } diff --git a/src/main/java/com/axis/innovators/box/window/MainWindow.java b/src/main/java/com/axis/innovators/box/window/MainWindow.java index be796e6..93384cb 100644 --- a/src/main/java/com/axis/innovators/box/window/MainWindow.java +++ b/src/main/java/com/axis/innovators/box/window/MainWindow.java @@ -4,6 +4,7 @@ import com.axis.innovators.box.AxisInnovatorsBox; import com.axis.innovators.box.events.*; import com.axis.innovators.box.register.LanguageManager; import com.axis.innovators.box.register.RegistrationSettingsItem; +import com.axis.innovators.box.window.util.*; import com.formdev.flatlaf.FlatClientProperties; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -16,12 +17,10 @@ import javax.swing.event.DocumentListener; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.LayerUI; import javax.swing.plaf.PanelUI; -import javax.swing.plaf.basic.BasicScrollBarUI; import javax.swing.plaf.basic.BasicTabbedPaneUI; import java.awt.*; import java.awt.event.*; -import java.awt.geom.AffineTransform; -import java.awt.geom.Point2D; +import java.awt.geom.Area; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.awt.image.ConvolveOp; @@ -31,14 +30,12 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; /** - * MainWindow - 现代化 UI(修正版) - * 变更要点: - * - 使用 JLayeredPane + cardsPanel(CardLayout) 来展示分类,并在 layeredPane 上添加动画覆盖层,避免 CardLayout add 的约束错误 - * - 设置 UIManager 的默认字体来解决中文乱码(优先微软雅黑/Segoe UI) - * - 侧栏颜色使用 #3C3F41(按你的要求) - * - 搜索框以居中为主,聚焦时带放大动画与圆角外观 - * - 尽量避免离屏绘制遗留(使用 component.printAll() 截图) - * - 添加背景图片和玻璃模糊效果支持 + * MainWindow - Modern UI Refactored + * 现代化 UI 重构版 + * - 采用 Fluent Design 风格侧边栏(胶囊式选中) + * - 优化卡片渲染与阴影 + * - 现代化设置界面布局 + * * @author tzdwindows 7 */ public class MainWindow extends JFrame { @@ -56,7 +53,7 @@ public class MainWindow extends JFrame { private String currentCategoryId = null; private JLayeredPane layeredPane; - private JPanel cardsPanel; // 使用 CardLayout 管理每个分类的 JScrollPane + private JPanel cardsPanel; private CardLayout cardsLayout; private JPanel sideBar; @@ -75,12 +72,12 @@ public class MainWindow extends JFrame { private WindowsJDialog dialog; public MainWindow() { - // 增强字体设置逻辑:优先使用系统支持的中文字体 - String[] fontNames = {"Microsoft YaHei", "微软雅黑", "PingFang SC", "SimHei", "宋体", "新宋体", "SansSerif"}; - Font defaultFont = selectFont(fontNames, 14); // 增加默认字号 + // 字体配置:优先使用无衬线现代字体 + String[] fontNames = {"Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Segoe UI", "SansSerif"}; + Font defaultFont = selectFont(fontNames, 14); - // 创建字体资源并设置UI默认字体 FontUIResource fontRes = new FontUIResource(defaultFont); + // 批量设置全局字体 Enumeration keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); @@ -90,65 +87,47 @@ public class MainWindow extends JFrame { } } - // 确保特定组件字体被覆盖 + // 局部覆盖 UIManager.put("Label.font", fontRes); UIManager.put("Button.font", fontRes); - UIManager.put("TextField.font", fontRes); - UIManager.put("TextArea.font", fontRes); - UIManager.put("TabbedPane.font", fontRes); - UIManager.put("TitledBorder.font", fontRes); + UIManager.put("TabbedPane.font", fontRes.deriveFont(14f)); // 设置略大 UIManager.put("ScrollPane.border", BorderFactory.createEmptyBorder()); UIManager.put("Panel.border", BorderFactory.createEmptyBorder()); - // 图标 setIconImage(LoadIcon.loadIcon("logo.png", 32).getImage()); - - // 避免在有装饰的 frame 上调用 setBackground(alpha) 导致异常 setUndecorated(false); - // 尺寸变化时重置卡片缩放(防止变形) + // 窗口尺寸监听 addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { - if (cardScales != null) { - for (JComponent c : cardScales.keySet()) { - cardScales.put(c, 1.0f); - c.repaint(); - } - } - // keep layered bounds synced - if (layeredPane != null && cardsPanel != null) { - cardsPanel.setBounds(0, 0, layeredPane.getWidth(), layeredPane.getHeight()); - } - // 窗口大小改变时重新生成模糊背景 + resetCardScales(); if (backgroundImage != null) { cachedBlurredBackground = null; repaint(); } + syncLayeredBounds(); } - }); - //setLocationRelativeTo(null); - - addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { - // 确保只执行一次 removeComponentListener(this); setLocationRelativeTo(null); + syncLayeredBounds(); } }); setDefaultCloseOperation(DISPOSE_ON_CLOSE); - setSize(1060, 670); + setSize(1080, 720); // 稍微增大默认尺寸以适应现代布局 + } + + private void resetCardScales() { + for (JComponent c : cardScales.keySet()) { + cardScales.put(c, 1.0f); + c.repaint(); + } } - /** - * 设置背景图片和玻璃模糊效果 - * @param backgroundImage 背景图片 - * @param blurAmount 模糊程度 (0.0f - 1.0f),0为不模糊,1为最大模糊 - * @param opacity 透明度 (0.0f - 1.0f),0为完全透明,1为完全不透明 - */ public void setBackgroundWithGlassEffect(Image backgroundImage, float blurAmount, float opacity) { this.backgroundImage = backgroundImage; this.blurAmount = Math.max(0.0f, Math.min(1.0f, blurAmount)); @@ -158,17 +137,10 @@ public class MainWindow extends JFrame { AxisInnovatorsBox.getMain().reloadAllWindow(); } - /** - * 移除背景图片 - */ public void removeBackground() { this.backgroundImage = null; this.cachedBlurredBackground = null; this.cachedBackgroundSize = null; - - // 这是段重复的石山代码我不想改了,作用用py想都知道是更新窗口渲染 - // 别问我为什么不用AxisInnovatorsBox.getMain().reloadAllWindow(); - // 因为AxisInnovatorsBox.getMain().reloadAllWindow();会广播到所有窗口 getContentPane().removeAll(); repaint(); initUI(); @@ -176,22 +148,12 @@ public class MainWindow extends JFrame { revalidate(); } - /** - * 应用高斯模糊到图片 - */ private BufferedImage applyGaussianBlur(BufferedImage image, float blurFactor) { if (blurFactor <= 0.0f) return image; - - // 根据模糊因子计算模糊半径 (1-15像素) int radius = Math.max(1, (int)(blurFactor * 15)); - - // 确保半径为奇数 if (radius % 2 == 0) radius++; - int size = radius * 2 + 1; float[] data = new float[size * size]; - - // 计算高斯核 float sigma = radius / 3.0f; float twoSigmaSquare = 2.0f * sigma * sigma; float sigmaRoot = (float) Math.sqrt(twoSigmaSquare * Math.PI); @@ -205,64 +167,37 @@ public class MainWindow extends JFrame { total += data[(i + radius) * size + (j + radius)]; } } - - // 归一化 for (int i = 0; i < data.length; i++) { data[i] /= total; } - Kernel kernel = new Kernel(size, size, data); ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); return convolve.filter(image, null); } - /** - * 创建带模糊效果的背景图片 - */ private BufferedImage createBlurredBackground(Dimension size) { if (backgroundImage == null) return null; - - // 如果尺寸相同且已有缓存,直接返回缓存 - if (cachedBlurredBackground != null && cachedBackgroundSize != null && - cachedBackgroundSize.equals(size)) { + if (cachedBlurredBackground != null && cachedBackgroundSize != null && cachedBackgroundSize.equals(size)) { return cachedBlurredBackground; } - - // 创建背景图片 BufferedImage bgImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = bgImage.createGraphics(); - - // 设置渲染质量 - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); - - // 绘制原始背景图片(缩放以适应窗口) g2d.drawImage(backgroundImage, 0, 0, size.width, size.height, null); g2d.dispose(); - // 应用模糊效果 if (blurAmount > 0.0f) { bgImage = applyGaussianBlur(bgImage, blurAmount); } - - // 缓存结果 cachedBlurredBackground = bgImage; cachedBackgroundSize = new Dimension(size); - return bgImage; } - /** - * 添加工具分类(接口保持不变) - */ public void addToolCategory(ToolCategory category) { categories.add(category); } - /** - * 初始化并显示 UI - */ public void initUI() { categoryScrollPanes.clear(); categoryToolPanels.clear(); @@ -271,81 +206,59 @@ public class MainWindow extends JFrame { cardElevations.clear(); currentCategoryId = null; - // 清除现有UI组件 - if (layeredPane != null) { - layeredPane.removeAll(); - } + if (layeredPane != null) layeredPane.removeAll(); getContentPane().removeAll(); setTitle(LanguageManager.getLoadedLanguages().getText("mainWindow.title")); - // 主容器 - 使用自定义面板以支持背景绘制 + // 主容器:负责绘制背景 JPanel mainPanel = new JPanel(new BorderLayout()) { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); - - // 如果有背景图片,绘制背景 if (backgroundImage != null) { Graphics2D g2d = (Graphics2D) g.create(); - - // 设置透明度 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, backgroundOpacity)); - - // 获取带模糊效果的背景 Dimension size = getSize(); BufferedImage bg = createBlurredBackground(size); - - if (bg != null) { - g2d.drawImage(bg, 0, 0, null); - } - + if (bg != null) g2d.drawImage(bg, 0, 0, null); g2d.dispose(); } } }; - mainPanel.setBorder(BorderFactory.createEmptyBorder()); - mainPanel.setOpaque(true); - - // 设置背景色(如果有背景图片,则使用半透明背景) + // 背景色逻辑优化 + Color baseBg = UIManager.getColor("Panel.background"); + if (baseBg == null) baseBg = new Color(245, 246, 248); if (backgroundImage != null) { - // 当有背景图片时,使用半透明的背景色 - Color panelBg = UIManager.getColor("Panel.background"); - if (panelBg != null) { - // 降低背景色的不透明度,让背景图片透出来 - Color semiTransparentBg = new Color( - panelBg.getRed(), - panelBg.getGreen(), - panelBg.getBlue(), - (int)(200 * backgroundOpacity) // 调整透明度 - ); - mainPanel.setBackground(semiTransparentBg); - } + mainPanel.setOpaque(false); + mainPanel.setBackground(new Color(0,0,0,0)); } else { - // 没有背景图片时使用正常背景色 - Color panelBg = UIManager.getColor("Panel.background"); - if (panelBg == null) panelBg = new Color(245, 246, 248); - mainPanel.setBackground(panelBg); + mainPanel.setOpaque(true); + // 获取主题中最深的背景色(通常是 Window 的背景,比 Panel 深) + Color deepBg = UIManager.getColor("Window.background"); + // 如果获取不到,就用一个极深的颜色兜底 + if (deepBg == null) deepBg = new Color(24, 24, 24); + mainPanel.setBackground(deepBg); } + mainPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - mainPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12)); - + // 头部 mainPanel.add(createHeader(), BorderLayout.NORTH); - // 中间区域:侧边栏 + 内容区 - JPanel center = new JPanel(new BorderLayout(12, 12)); + // 中间区域 + JPanel center = new JPanel(new BorderLayout(0, 0)); center.setOpaque(false); + // 侧边栏 sideBar = createSideBar(); center.add(sideBar, BorderLayout.WEST); - // cardsPanel(CardLayout)放入 layeredPane,动画时把 overlay 放在 layeredPane 的较高层 + // 内容区 cardsLayout = new CardLayout(); cardsPanel = new JPanel(cardsLayout); cardsPanel.setOpaque(false); - // 创建分类内容并添加到 cardsPanel for (ToolCategory category : categories) { JPanel toolsPanel = createToolsPanel(category); toolsPanel.setOpaque(false); @@ -355,6 +268,7 @@ public class MainWindow extends JFrame { scrollPane.setBorder(null); scrollPane.setOpaque(false); scrollPane.getViewport().setOpaque(false); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrollPane.getVerticalScrollBar().setUI(new CustomScrollBarUI()); scrollPane.getHorizontalScrollBar().setUnitIncrement(16); @@ -363,194 +277,126 @@ public class MainWindow extends JFrame { cardsPanel.add(scrollPane, category.getId().toString()); } - // layeredPane 管理卡片层与 overlay 层 layeredPane = new JLayeredPane(); - layeredPane.setLayout(null); // 使用绝对布局,手动设置 bounds + layeredPane.setLayout(null); layeredPane.add(cardsPanel, JLayeredPane.DEFAULT_LAYER); - // 初始 bounds 将在后面同步 - cardsPanel.setBounds(0, 0, 900, 600); - // 内容面板放入 layeredPane contentPanel = new JPanel(new BorderLayout()); contentPanel.setOpaque(false); + contentPanel.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 12)); // 内容区左右边距 contentPanel.add(layeredPane, BorderLayout.CENTER); - center.add(contentPanel, BorderLayout.CENTER); + center.add(contentPanel, BorderLayout.CENTER); mainPanel.add(center, BorderLayout.CENTER); mainPanel.add(createFooter(), BorderLayout.SOUTH); add(mainPanel); - // 同步 layeredPane 与 cardsPanel 大小 - addComponentListener(new ComponentAdapter() { - @Override - public void componentShown(ComponentEvent e) { - SwingUtilities.invokeLater(() -> syncLayeredBounds()); - } - - @Override - public void componentResized(ComponentEvent e) { - SwingUtilities.invokeLater(() -> syncLayeredBounds()); - } - }); - // 立刻 sync + // 初始同步 SwingUtilities.invokeLater(this::syncLayeredBounds); - // 默认选中第一个分类 if (!categories.isEmpty()) { String firstId = categories.get(0).getId().toString(); SwingUtilities.invokeLater(() -> switchCategory(firstId, true)); } - // 更新 UI 字体样式(确保生效) SwingUtilities.updateComponentTreeUI(this); - } - /** - * 更新主题 - */ public void updateTheme() { - // 1. 更新UI管理器默认值 - Font defaultFont = selectFont(new String[]{"Microsoft YaHei", "微软雅黑", "PingFang SC", "SimHei", "宋体", "新宋体", "SansSerif"}, 14); + Font defaultFont = selectFont(new String[]{"Microsoft YaHei", "Segoe UI"}, 14); FontUIResource fontRes = new FontUIResource(defaultFont); UIManager.put("Label.font", fontRes); UIManager.put("Button.font", fontRes); UIManager.put("TextField.font", fontRes); - UIManager.put("TextArea.font", fontRes); - UIManager.put("TabbedPane.font", fontRes); - UIManager.put("TitledBorder.font", fontRes); - // 2. 强制更新所有UI组件 SwingUtilities.updateComponentTreeUI(this); - // 3. 手动更新关键组件 - - // 更新搜索框 if (searchField != null) { searchField.defaultBorderColor = UIManager.getColor("TextField.borderColor"); - if (searchField.defaultBorderColor == null) { - searchField.defaultBorderColor = new Color(180, 180, 180); - } searchField.repaint(); } - // 4. 特殊处理卡片颜色 - for (JComponent card : cardScales.keySet()) { - card.repaint(); - } - - // 5. 更新分类滚动面板 - for (JScrollPane scrollPane : categoryScrollPanes.values()) { - scrollPane.getVerticalScrollBar().setUI(new CustomScrollBarUI()); - scrollPane.repaint(); - } - - // 6. 更新主面板背景 - Component content = getContentPane(); - if (content instanceof JComponent) { - JComponent contentPane = (JComponent) content; - Color panelBg = UIManager.getColor("Panel.background"); - if (panelBg == null) panelBg = new Color(245, 246, 248); - - // 如果有背景图片,使用半透明背景 - if (backgroundImage != null) { - Color semiTransparentBg = new Color( - panelBg.getRed(), - panelBg.getGreen(), - panelBg.getBlue(), - (int)(200 * backgroundOpacity) - ); - contentPane.setBackground(semiTransparentBg); - } else { - contentPane.setBackground(panelBg); - } - contentPane.repaint(); - } - - // 7. 更新所有按钮状态 - for (JButton btn : sideButtons.values()) { - btn.setForeground(Optional.ofNullable(UIManager.getColor("textText")) - .orElse(new Color(0xE0E0E0))); - btn.repaint(); - } - - // 8. 更新当前分类显示 - if (currentCategoryId != null) { - JScrollPane currentPane = categoryScrollPanes.get(currentCategoryId); - if (currentPane != null) { - cardsLayout.show(cardsPanel, currentCategoryId); - currentPane.repaint(); - } - } - + // 更新侧边栏颜色 if (sideBar != null) { - if (backgroundImage != null) { - sideBar.setOpaque(false); - } else { - sideBar.setOpaque(true); - sideBar.setBackground(getSidebarColor()); - } + sideBar.setBackground(getSidebarColor()); sideBar.repaint(); } - // 9. 确保窗口正确重绘 + // 更新按钮选中态颜色 + updateSideSelection(currentCategoryId); + revalidate(); repaint(); } private Color getSidebarColor() { - return Optional.ofNullable(UIManager.getColor("Panel.background")) - .orElse(new Color(0x3C3F41)); + // 如果有背景图,侧边栏半透明;否则使用深色或浅色主题色 + if (backgroundImage != null) { + return new Color(30, 30, 35, 100); + } + return isDarkTheme() ? new Color(45, 48, 50) : new Color(242, 242, 247); } private void syncLayeredBounds() { - if (layeredPane == null) return; + if (layeredPane == null || contentPanel == null) return; Dimension d = contentPanel.getSize(); - // contentPanel may be zero when not displayed; use cardsPanel preferred as fallback - if (d.width <= 0 || d.height <= 0) { - d = getContentPane().getSize(); - if (d.width <= 0 || d.height <= 0) d = new Dimension(900, 600); - } + // Fallback size check + if (d.width <= 0) d = new Dimension(800, 600); + layeredPane.setBounds(0, 0, d.width, d.height); - layeredPane.setPreferredSize(d); + // Important: Update cardsPanel size explicitly cardsPanel.setBounds(0, 0, d.width, d.height); - layeredPane.revalidate(); + cardsPanel.revalidate(); layeredPane.repaint(); } - // ---------- Header (包含圆角搜索框) ---------- + // ---------- Header ---------- private JPanel createHeader() { - JPanel header = new JPanel(new BorderLayout(8, 8)); + JPanel header = new JPanel(new BorderLayout(16, 0)); header.setOpaque(false); - header.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); + header.setBorder(BorderFactory.createEmptyBorder(12, 20, 12, 20)); JLabel title = new JLabel(LanguageManager.getLoadedLanguages().getText("mainWindow.title.2")); - title.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 18).getName(), Font.BOLD, 18)); - //title.setForeground(UIManager.getColor("Label.foreground")); + title.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei").getName(), Font.BOLD, 20)); + title.setForeground(UIManager.getColor("Label.foreground")); - JPanel left = new JPanel(new FlowLayout(FlowLayout.LEFT, 8, 0)); + JPanel left = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); left.setOpaque(false); left.add(title); - // 圆角搜索框容器(居中) - searchField = new RoundedSearchField(360, 34); - searchField.setToolTipText("搜索当前分类工具(回车或实时过滤)"); + searchField = new RoundedSearchField(320, 36); + + // --- 修复开始 --- + // 1. 使用深色半透明背景 (黑色,透明度 80/255),保证在亮色背景图上能看清 + searchField.setBackground(new Color(0, 0, 0, 80)); + // 2. 文字强制设为白色 + searchField.setForeground(Color.WHITE); + // 3. 添加一个淡淡的白色边框,增加轮廓感 + searchField.setBorder(BorderFactory.createCompoundBorder( + BorderFactory.createLineBorder(new Color(255, 255, 255, 50), 1, true), + BorderFactory.createEmptyBorder(4, 10, 4, 10) + )); + // --- 修复结束 --- + + // 如果您的组件支持 setPlaceholder + searchField.putClientProperty("JTextField.placeholderText", "Search tools..."); + searchField.addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { filterCurrentCategory(searchField.getText()); } @Override public void removeUpdate(DocumentEvent e) { filterCurrentCategory(searchField.getText()); } @Override public void changedUpdate(DocumentEvent e) { filterCurrentCategory(searchField.getText()); } }); - searchField.addActionListener(e -> filterCurrentCategory(searchField.getText())); JPanel center = new JPanel(new GridBagLayout()); center.setOpaque(false); center.add(searchField); - JButton settings = new JButton(LoadIcon.loadIcon("settings.png", 24)); + JButton settings = new JButton(LoadIcon.loadIcon("settings.png", 22)); settings.putClientProperty(FlatClientProperties.BUTTON_TYPE, FlatClientProperties.BUTTON_TYPE_BORDERLESS); settings.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); settings.setContentAreaFilled(false); + settings.setFocusPainted(false); settings.addActionListener(e -> showSettings()); header.add(left, BorderLayout.WEST); @@ -560,190 +406,47 @@ public class MainWindow extends JFrame { return header; } - private static class RoundedSearchField extends JPanel { - private final JTextField textField; - private int targetWidth; - private float animProgress = 0f; - private Timer animTimer; - private final int baseWidth; - private final int heightPx; - - // 动画相关变量 - private float glowPosition = 0f; - private final Timer glowTimer; - private Color defaultBorderColor; - private boolean focused = false; - - RoundedSearchField(int baseWidth, int heightPx) { - this.baseWidth = baseWidth; - this.heightPx = heightPx; - this.targetWidth = baseWidth; - setOpaque(false); - setLayout(new BorderLayout()); - - // 获取系统默认边框色 - defaultBorderColor = UIManager.getColor("TextField.borderColor"); - if (defaultBorderColor == null) { - defaultBorderColor = new Color(180, 180, 180); // 备用默认色 - } - - textField = new JTextField(); - textField.setBorder(BorderFactory.createEmptyBorder(6, 10, 6, 10)); - textField.setOpaque(false); - textField.setFont(UIManager.getFont("TextField.font")); - setPreferredSize(new Dimension(baseWidth, heightPx)); - add(textField, BorderLayout.CENTER); - - // 焦点监听器 - textField.addFocusListener(new FocusAdapter() { - @Override - public void focusGained(FocusEvent e) { - focused = true; - animateTo(baseWidth + 80); - glowTimer.start(); - } - - @Override - public void focusLost(FocusEvent e) { - focused = false; - animateTo(baseWidth); - glowTimer.stop(); - repaint(); - } - }); - - // 点击面板聚焦文本框 - addMouseListener(new MouseAdapter() { - @Override public void mouseClicked(MouseEvent e) { - textField.requestFocusInWindow(); - } - }); - - // 尺寸动画定时器 - animTimer = new Timer(16, ae -> { - int curW = getWidth(); - int diff = targetWidth - curW; - if (Math.abs(diff) <= 1) { - setPreferredSize(new Dimension(targetWidth, heightPx)); - revalidate(); - repaint(); - animTimer.stop(); - } else { - int step = Math.max(1, Math.abs(diff) / 6); - int newW = curW + (diff > 0 ? step : -step); - setPreferredSize(new Dimension(newW, heightPx)); - revalidate(); - repaint(); - } - }); - - // 发光动画定时器 - glowTimer = new Timer(30, e -> { - glowPosition = (glowPosition + 0.03f) % 1f; - repaint(); - }); - } - - public void updateThemeColors() { - defaultBorderColor = UIManager.getColor("TextField.borderColor"); - if (defaultBorderColor == null) { - defaultBorderColor = new Color(180, 180, 180); - } - repaint(); - } - - @Override - protected void paintComponent(Graphics g) { - super.paintComponent(g); - Graphics2D g2d = (Graphics2D) g.create(); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - - int arc = heightPx / 2; // 圆角半径 - int borderThickness = focused ? 2 : 1; - - // 绘制背景 - g2d.setColor(getBackground()); - g2d.fillRoundRect(0, 0, getWidth(), getHeight(), arc, arc); - - // 绘制边框 - if (focused) { - // 流动彩虹渐变 - float[] fractions = {0f, 0.25f, 0.5f, 0.75f, 1f}; - Color[] colors = { - new Color(255, 0, 0, 200), // 红 - new Color(255, 165, 0, 200), // 橙 - new Color(0, 255, 0, 200), // 绿 - new Color(0, 191, 255, 200), // 蓝 - new Color(148, 0, 211, 200) // 紫 - }; - - // 创建循环渐变 - Point2D start = new Point2D.Float(getWidth() * glowPosition, 0); - Point2D end = new Point2D.Float(getWidth() * glowPosition + getWidth(), 0); - LinearGradientPaint gradient = new LinearGradientPaint( - start, end, fractions, colors - ); - - g2d.setPaint(gradient); - g2d.setStroke(new BasicStroke(2.5f)); - } else { - g2d.setColor(defaultBorderColor); - g2d.setStroke(new BasicStroke(1f)); - } - - g2d.drawRoundRect(borderThickness/2, borderThickness/2, - getWidth() - borderThickness, getHeight() - borderThickness, - arc, arc); - - // 添加发光效果 - if (focused) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); - g2d.setStroke(new BasicStroke(4f)); - g2d.drawRoundRect(0, 0, getWidth(), getHeight(), arc, arc); - } - - g2d.dispose(); - } - - void animateTo(int w) { - this.targetWidth = w; - if (!animTimer.isRunning()) animTimer.start(); - } - - public String getText() { return textField.getText(); } - public void setText(String t) { textField.setText(t); } - public void addActionListener(ActionListener l) { textField.addActionListener(l); } - public void addDocumentListener(DocumentListener dl) { textField.getDocument().addDocumentListener(dl); } - } - - // ---------- 侧边栏 ---------- + // ---------- SideBar (Modern Pill Style) ---------- private JPanel createSideBar() { - JPanel sidebar = new JPanel(new BorderLayout()); - sidebar.setOpaque(true); - //sidebar.setBackground(SIDEBAR_COLOR); - sidebar.setPreferredSize(new Dimension(220, getHeight())); - sidebar.setBorder(null); + JPanel sidebar = new JPanel(new BorderLayout()) { + @Override + protected void paintComponent(Graphics g) { + // 如果有背景图片,绘制半透明遮罩 + if (backgroundImage != null) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setColor(new Color(20, 20, 20, 150)); // 加深遮罩,防止背景图干扰文字 + g2.fillRect(0, 0, getWidth(), getHeight()); + g2.dispose(); + } else { + // --- 修复重点:没有背景图时,侧边栏完全透明,只画右侧的一条淡淡的线 --- + Graphics2D g2 = (Graphics2D) g.create(); + // 线条颜色:白色,透明度 10% (非常淡,若隐若现) + g2.setColor(new Color(255, 255, 255, 25)); + g2.drawLine(getWidth() - 1, 0, getWidth() - 1, getHeight()); + g2.dispose(); + } + } + }; - // top: logo + app name - JPanel top = new JPanel(new BorderLayout()); + // 关键:设置为透明,让它直接显示窗口的深色底色 + sidebar.setOpaque(false); + sidebar.setPreferredSize(new Dimension(240, getHeight())); + + // --- Logo 和 列表代码保持不变 --- + JPanel top = new JPanel(); + top.setLayout(new BoxLayout(top, BoxLayout.Y_AXIS)); top.setOpaque(false); + top.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); - JPanel centerPanel = new JPanel(); - centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS)); - centerPanel.setOpaque(false); - - JLabel logo = new JLabel(LoadIcon.loadIcon("logo.png", 60)); - logo.setBorder(BorderFactory.createEmptyBorder(10, 6, 10 + 10, 6)); + JLabel logo = new JLabel(LoadIcon.loadIcon("logo.png", 52)); logo.setAlignmentX(Component.CENTER_ALIGNMENT); - centerPanel.add(logo); - top.add(centerPanel, BorderLayout.CENTER); + top.add(logo); sidebar.add(top, BorderLayout.NORTH); - // list of categories JPanel listPanel = new JPanel(); listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS)); listPanel.setOpaque(false); - listPanel.setBorder(BorderFactory.createEmptyBorder(8, 6, 8, 6)); + listPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); for (ToolCategory category : categories) { JButton btn = createSideButton(category); @@ -755,240 +458,111 @@ public class MainWindow extends JFrame { JScrollPane listScroll = new JScrollPane(listPanel); listScroll.setBorder(null); listScroll.setOpaque(false); - listScroll.getViewport().setOpaque(false); // 确保视口透明 + listScroll.getViewport().setOpaque(false); listScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - listScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); listScroll.getVerticalScrollBar().setUI(new CustomScrollBarUI()); - listScroll.setBackground(new Color(0, 0, 0, 0)); sidebar.add(listScroll, BorderLayout.CENTER); - // bottom = settings / about - JPanel bottom = new JPanel(); - bottom.setOpaque(false); - bottom.setLayout(new BoxLayout(bottom, BoxLayout.Y_AXIS)); - bottom.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); - - sidebar.add(bottom, BorderLayout.SOUTH); - return sidebar; } private JButton createSideButton(ToolCategory category) { - // 竖杠距离按钮左侧位置 - final int BAR_X = 8; - // 竖杠宽度 - final int BAR_WIDTH = 5; - // 竖杠到图标的空隙 - final int GAP_BAR_TO_ICON = 12; - final Color SELECT_FILL = new Color(0, 120, 215, 20); - Color HOVER_FILL;// 悬停颜色 - if (isDarkTheme()) { - HOVER_FILL = new Color(0x535360); - } else { - HOVER_FILL = new Color(0xD0E0F6); - } + JButton button = new JButton(category.getName()) { + @Override + protected void paintComponent(Graphics g) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - JButton button = new JButton(category.getName()); + boolean isSelected = Objects.equals(currentCategoryId, category.getId().toString()); + boolean isHover = getMousePosition() != null; - button.setMaximumSize(new Dimension(Integer.MAX_VALUE, 44)); - button.setHorizontalAlignment(SwingConstants.LEFT); + // 1. 先绘制背景 + if (isSelected) { + // 选中状态:使用 FlatLaf 的强调色或默认蓝色,带一点透明度让背景图透出来一点点 + g2.setColor(new Color(0, 120, 215, 200)); + g2.fillRoundRect(0, 0, getWidth(), getHeight(), 12, 12); + } else if (isHover) { + // 悬停状态:淡淡的白色/灰色 + g2.setColor(new Color(255, 255, 255, 30)); + g2.fillRoundRect(0, 0, getWidth(), getHeight(), 12, 12); + } - // 原始图标 + g2.dispose(); + + // 2. 再调用 super 绘制文字和图标 + super.paintComponent(g); + } + }; + + // 处理图标 ImageIcon rawIcon = category.getIconImage() != null ? category.getIconImage() : LoadIcon.loadIcon(category.getIcon(), 18); - int rawIconWidth = (rawIcon != null) ? rawIcon.getIconWidth() : 18; - final int ICON_PADDING_LEFT = BAR_X + BAR_WIDTH + GAP_BAR_TO_ICON; // 左侧为图标预留的偏移 - // 包装一个带左侧内边距的 Icon,使图标整体右移 - Icon paddedIcon = new Icon() { - @Override - public void paintIcon(Component c, Graphics g, int x, int y) { - if (rawIcon != null) { - int dy = (getIconHeight() - rawIcon.getIconHeight()) / 2; - rawIcon.paintIcon(c, g, x + ICON_PADDING_LEFT, y + dy); - } - } - - @Override - public int getIconWidth() { - return ICON_PADDING_LEFT + rawIconWidth; - } - - @Override - public int getIconHeight() { - return (rawIcon != null) ? rawIcon.getIconHeight() : 18; - } - }; - - button.setIcon(paddedIcon); - button.setHorizontalTextPosition(SwingConstants.RIGHT); - button.setIconTextGap(16); + button.setIcon(rawIcon); + button.setHorizontalAlignment(SwingConstants.LEFT); + button.setIconTextGap(12); button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - // 自定义 Border:只在当前被选中时绘制左侧竖杠 - Border indicatorBorder = new Border() { - @Override - public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { - if (Objects.equals(currentCategoryId, category.getId().toString())) { - Graphics2D g2 = (Graphics2D) g.create(); - try { - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2.setColor(new Color(0x0162F1)); - g2.fillRect(BAR_X, y, BAR_WIDTH, height); - } finally { - g2.dispose(); - } - } - } + // 强制设置字体颜色,防止在深色背景上变成黑色文字 + // FlatLaf Mac Dark 主题下,Label.foreground 通常是白色的 + button.setForeground(UIManager.getColor("Label.foreground")); + button.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei").getName(), Font.BOLD, 13)); - @Override - public Insets getBorderInsets(Component c) { - return new Insets(0, 0, 0, 0); - } + // 关键布局修复: + // 1. 设置对其方式,防止 BoxLayout 左右乱跑 + button.setAlignmentX(Component.LEFT_ALIGNMENT); + // 2. 强制指定高度,防止被压缩 + Dimension size = new Dimension(220, 42); // 宽度稍微小于侧边栏宽度 + button.setPreferredSize(size); + button.setMaximumSize(size); + button.setMinimumSize(size); - @Override - public boolean isBorderOpaque() { - return false; - } - }; - - // 将自定义竖杠 Border 和 内边距 EmptyBorder 组合 - button.setBorder(BorderFactory.createCompoundBorder( - indicatorBorder, - BorderFactory.createEmptyBorder(8, 8, 8, 20) - )); - - // 样式 - button.setForeground(Optional.ofNullable(UIManager.getColor("textText")) - .orElse(new Color(0xE0E0E0))); - // 初始设为不填充,由 updateSelection 决定是否填充背景 - button.setOpaque(false); - button.setContentAreaFilled(true); // 允许根据 opaque/background 填充(mouse/selected 状态会切换 opaque) + button.setBorder(BorderFactory.createEmptyBorder(0, 16, 0, 16)); button.setFocusPainted(false); - button.setFont(new Font( - selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 13).getName(), - Font.PLAIN, 13 - )); + button.setContentAreaFilled(false); + button.setOpaque(false); - // helper: 更新选中/未选中时的外观(填充透明浅蓝或透明) - Runnable updateSelection = () -> { - boolean selected = Objects.equals(currentCategoryId, category.getId().toString()); - if (selected) { - button.setOpaque(true); - /** - * Java我草泥马,你马死了 - */ - if (backgroundImage == null) { - button.setBackground(SELECT_FILL); - } else { - button.setBackground(new Color(0, 120, 215, 255)); - } - } else { - button.setOpaque(false); - // 为避免残留,仍设置透明背景(透明颜色) - button.setBackground(new Color(0, 0, 0, 0)); - } - button.repaint(); - }; - - // 初始状态 - updateSelection.run(); - - // 点击 button.addActionListener(e -> { searchField.setText(""); switchCategory(category.getId().toString(), false); - // 更新自己(外部如果也改变 currentCategoryId,外部应确保调用所有按钮的 repaint) - updateSelection.run(); }); - // 悬停:仅在未选中时显示 hover 填充;离开时恢复选中/未选中外观 button.addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - if (!Objects.equals(currentCategoryId, category.getId().toString())) { - button.setOpaque(true); - button.setBackground(HOVER_FILL); - button.repaint(); - } - } - @Override - public void mouseExited(MouseEvent e) { - // 恢复到选中/未选中状态 - updateSelection.run(); - } + public void mouseEntered(MouseEvent e) { button.repaint(); } + public void mouseExited(MouseEvent e) { button.repaint(); } }); return button; } - private void styleSideSmallButton(JButton btn) { - btn.setMaximumSize(new Dimension(Integer.MAX_VALUE, 36)); - btn.setAlignmentX(Component.LEFT_ALIGNMENT); - btn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - btn.setForeground(Color.DARK_GRAY); - btn.setBackground(new Color(0xF4F4F4)); - btn.setFocusPainted(false); - btn.setBorder(BorderFactory.createLineBorder(new Color(220,220,220))); - btn.setOpaque(true); - btn.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 12).getName(), Font.PLAIN, 12)); + private void updateSideSelection(String categoryId) { + // 由于使用了 paintComponent 自定义绘制,这里只需要设置前景色 + // 并触发 repaint 即可 + for (Map.Entry e : sideButtons.entrySet()) { + JButton btn = e.getValue(); + boolean isSelected = Objects.equals(e.getKey(), categoryId); + + if (isSelected) { + btn.setForeground(Color.WHITE); // 选中时文字变白 + } else { + btn.setForeground(UIManager.getColor("Label.foreground")); + } + btn.repaint(); + } } - // ---------- 工具卡/面板 ---------- + // ---------- Tools Panel & Cards ---------- private JPanel createToolsPanel(ToolCategory category) { - JPanel panel = new JPanel(new WrapLayout(FlowLayout.LEFT, 16, 16)) { - @Override - public Dimension getPreferredSize() { - // 计算容器宽度以恰好容纳3个卡片和间隙 - int cardWidth = 240; // 卡片宽度 - int gap = 16; - return new Dimension(cardWidth * 3 + gap * 2, super.getPreferredSize().height); - } - }; - panel.setOpaque(false); - panel.setBorder(null); + ResponsivePanel panel = new ResponsivePanel(); for (ToolItem tool : category.getTools()) { - JPanel card = createToolCard(tool); - panel.add(card); + panel.add(createToolCard(tool)); } - JPanel wrapper = new JPanel(new BorderLayout()); - wrapper.setOpaque(false); - wrapper.add(panel, BorderLayout.NORTH); - return wrapper; - } - - - /** - * 判断设置界面是否打开 - * @return 设置界面是否可见 - */ - public boolean isSettingsVisible(){ - if (dialog == null) { - return false; - } - - if (!dialog.isDisplayable()) { - dialog = null; - return false; - } - - if (!dialog.isVisible()) { - return false; - } - try { - if (dialog.getParent() != this && dialog.getOwner() != this) { - dialog = null; - return false; - } - } catch (Exception e) { - dialog = null; - return false; - } - return true; + // 直接返回这个面板,不要再套任何 BorderLayout 了,否则会破坏 Scrollable 接口 + return panel; } private JPanel createToolCard(ToolItem tool) { @@ -996,342 +570,293 @@ public class MainWindow extends JFrame { @Override protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); - try { - int w = getWidth(), h = getHeight(); - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - // 动态获取当前主题颜色 - Color cardBg = getCardBg(); - Color cardBorder = getCardBorder(); - Color shadowColor = isDarkTheme() ? new Color(30, 30, 30) : Color.BLACK; + int w = getWidth(); + int h = getHeight(); + int arc = 18; // 圆角稍微大一点,更现代 - // 如果有背景图片,卡片背景使用半透明 - if (backgroundImage != null) { - cardBg = new Color(cardBg.getRed(), cardBg.getGreen(), cardBg.getBlue(), - (int)(200 * backgroundOpacity)); - cardBorder = new Color(cardBorder.getRed(), cardBorder.getGreen(), - cardBorder.getBlue(), (int)(200 * backgroundOpacity)); - } - - // 1. 绘制阴影(根据主题调整透明度) - g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, isDarkTheme() ? 0.12f : 0.06f)); - g2.setColor(shadowColor); - for (int i = 0; i < 3; i++) { - g2.fill(new RoundRectangle2D.Float(i, i, w - i*2, h - i*2, 12, 12)); - } - - // 2. 绘制卡片背景(动态适应主题) - g2.setComposite(AlphaComposite.SrcOver); - g2.setColor(cardBg); - g2.fill(new RoundRectangle2D.Float(0, 0, w, h, 12, 12)); - - // 3. 绘制边框(优化为单次绘制) - g2.setColor(cardBorder); - g2.setStroke(new BasicStroke(1f)); - g2.draw(new RoundRectangle2D.Float(0.5f, 0.5f, w - 1, h - 1, 12, 12)); - - // 4. 绘制内容(通过super.paintComponent) - super.paintComponent(g); - } finally { - g2.dispose(); + // --- 修复重点:使用叠加色 --- + if (backgroundImage != null) { + // 背景图模式:较重的磨砂黑 + g2.setColor(new Color(30, 30, 30, 180)); + } else { + // 纯色模式:不要用实色,用半透明的白色覆盖在深色背景上 + // 这种技术叫 Surface Overlay,能保证色调绝对统一 + // 12/255 ≈ 5% 的白色,形成自然的层级感 + g2.setColor(new Color(255, 255, 255, 12)); } + + // 填充背景 + g2.fillRoundRect(0, 0, w, h, arc, arc); + + // 绘制极淡的边框 (增加精致感) + g2.setColor(new Color(255, 255, 255, 30)); // 12% 透明度的白边 + g2.drawRoundRect(0, 0, w-1, h-1, arc, arc); + + // 如果鼠标悬停(根据 cardElevations 判断),加深一点高亮 + if (cardElevations.getOrDefault(this, 2) > 2) { + g2.setColor(new Color(255, 255, 255, 10)); // 叠加一层高亮 + g2.fillRoundRect(0, 0, w, h, arc, arc); + } + + super.paintComponent(g); + g2.dispose(); } @Override public boolean isOpaque() { return false; } }; - card.setOpaque(false); - card.setLayout(new BorderLayout(10, 8)); - card.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - card.setPreferredSize(new Dimension(240, 140)); + + // --- 内容布局保持不变 --- + card.setLayout(new BorderLayout(12, 10)); + card.setBorder(BorderFactory.createEmptyBorder(16, 16, 16, 16)); + card.setPreferredSize(new Dimension(260, 110)); card.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); JLabel iconLabel; if (tool.getIcon() == null) { iconLabel = new JLabel(tool.getImageIcon()); } else { - iconLabel = new JLabel(LoadIcon.loadIcon(tool.getIcon(), 48)); + iconLabel = new JLabel(LoadIcon.loadIcon(tool.getIcon(), 40)); } - iconLabel.setBorder(BorderFactory.createEmptyBorder(4,4,4,4)); - iconLabel.setHorizontalAlignment(SwingConstants.LEFT); + iconLabel.setVerticalAlignment(SwingConstants.TOP); + + JPanel textPanel = new JPanel(new BorderLayout(0, 4)); + textPanel.setOpaque(false); - JPanel centerPanel = new JPanel(new BorderLayout()); - centerPanel.setOpaque(false); JLabel titleLabel = new JLabel(tool.getTitle()); - titleLabel.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 15).getName(), Font.BOLD, 15)); - titleLabel.setForeground(UIManager.getColor("Label.foreground")); + titleLabel.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei").getName(), Font.BOLD, 15)); + // 强制标题稍亮 + titleLabel.setForeground(new Color(240, 240, 240)); + JTextArea descArea = new JTextArea(tool.getDescription()); - descArea.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 13).getName(), Font.PLAIN, 13)); - titleLabel.setForeground(Optional.ofNullable(UIManager.getColor("textText")) - .orElse(new Color(0xE0E0E0))); - descArea.setForeground(Optional.ofNullable(UIManager.getColor("textText")) - .orElse(new Color(0xE0E0E0)).darker()); - descArea.setForeground(new Color(100,100,105)); + descArea.setFont(new Font(selectFont("Segoe UI").getName(), Font.PLAIN, 12)); + // 描述文字稍暗,形成对比 + descArea.setForeground(new Color(170, 170, 170)); descArea.setLineWrap(true); descArea.setWrapStyleWord(true); descArea.setEditable(false); descArea.setOpaque(false); descArea.setBorder(null); - descArea.setRows(3); + descArea.setRows(2); - centerPanel.add(titleLabel, BorderLayout.NORTH); - centerPanel.add(descArea, BorderLayout.CENTER); + textPanel.add(titleLabel, BorderLayout.NORTH); + textPanel.add(descArea, BorderLayout.CENTER); card.add(iconLabel, BorderLayout.WEST); - card.add(centerPanel, BorderLayout.CENTER); + card.add(textPanel, BorderLayout.CENTER); - card.setToolTipText(createToolTipHTML(tool)); + card.setToolTipText(tool.getName()); - // 初始化状态 cardScales.put(card, 1.0f); cardElevations.put(card, 2); - // 点击动画与动作触发 CardMouseAdapter adapter = new CardMouseAdapter(card, tool); card.addMouseListener(adapter); - // 保留 PanelUI 钩子(事件总线) + card.addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { animateCardElevation(card, 8); } + @Override + public void mouseExited(MouseEvent e) { animateCardElevation(card, 2); } + }); + + // 保留事件总线逻辑 card.setUI(new PanelUI() { @Override public void installUI(JComponent c) { GlobalEventBus.EVENT_BUS.post(new TABUIEvents(card, c)); super.installUI(c); } - @Override public void update(Graphics g, JComponent c) { - GlobalEventBus.EVENT_BUS.post(new TABUIEvents.update(g, c)); - super.update(g, c); - } - }); - - // 悬停时增强阴影(动画) - card.addMouseListener(new CardMouseAdapter(card, tool) { - @Override public void mouseEntered(MouseEvent e) { - cardElevations.put(card, 8); - animateCardElevation(card, 8); - } - @Override public void mouseExited(MouseEvent e) { - animateCardElevation(card, 2); - } }); return card; } - private static boolean isDarkTheme() { - return AxisInnovatorsBox.getMain().getRegistrationTopic().isDarkMode(); + private static class ResponsivePanel extends JPanel implements Scrollable { + // 使用我们刚刚添加的 WrapLayout,左对齐,间距 20 + public ResponsivePanel() { + super(new WrapLayout(FlowLayout.LEFT, 20, 20)); + setOpaque(false); + } + + @Override + public Dimension getPreferredScrollableViewportSize() { + return getPreferredSize(); + } + + @Override + public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { + return 20; + } + + @Override + public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { + return 100; + } + + @Override + public boolean getScrollableTracksViewportWidth() { + // 必须返回 true,这样 WrapLayout 才知道宽度受限,需要换行 + return true; + } + + @Override + public boolean getScrollableTracksViewportHeight() { + return false; + } } - private Color getCardBg() { - return Optional.ofNullable(UIManager.getColor("control")) - .map(bg -> ThemeColors.brighten(bg, 0.1f)) - .orElse(new Color(0x4A4D50)); - } - - private Color getCardBorder() { - return Optional.ofNullable(UIManager.getColor("controlHighlight")) - .orElse(new Color(0x5C5F61)); - } - - private String createToolTipHTML(ToolItem tool) { - return "" + - "

" + escapeHtml(tool.getName()) + "

" + - "
" + escapeHtml(tool.getDescription()) + "
" + - ""; - } - - private String escapeHtml(String s) { - if (s == null) return ""; - return s.replace("&","&").replace("<","<").replace(">",">").replace("\n","
"); - } - - // 卡片放大/阴影动画(合并) private void animateCardElevation(JComponent card, int targetElevation) { - new Timer(12, new AbstractAction() { - private int currentElevation = cardElevations.getOrDefault(card, 2); + new Timer(15, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if (currentElevation < targetElevation) currentElevation++; - else if (currentElevation > targetElevation) currentElevation--; - cardElevations.put(card, currentElevation); - - float targetScale = 1.0f + (currentElevation - 2) * 0.0065f; - float cur = cardScales.getOrDefault(card, 1.0f); - float diff = targetScale - cur; - float step = diff * 0.28f; - if (Math.abs(diff) < 0.001f) cardScales.put(card, targetScale); - else cardScales.put(card, cur + step); - + int current = cardElevations.getOrDefault(card, 2); + if (current == targetElevation) { + ((Timer)e.getSource()).stop(); + return; + } + int next = current < targetElevation ? current + 1 : current - 1; + cardElevations.put(card, next); card.repaint(); - if (currentElevation == targetElevation && Math.abs(cardScales.get(card) - targetScale) < 0.002f) ((Timer)e.getSource()).stop(); } - }).start(); } - // 切换分类(使用 layeredPane 添加 overlay 动画) + // ---------- Settings (Redesigned) ---------- + public boolean isSettingsVisible() { + return dialog != null && dialog.isVisible(); + } + + public void showSettings() { + if (dialog == null || AxisInnovatorsBox.getMain().isWindowStartup(dialog)) { + dialog = new WindowsJDialog(this, LanguageManager.getLoadedLanguages().getText("mainWindow.settings.title"), true); + } + dialog.setTitle(LanguageManager.getLoadedLanguages().getText("mainWindow.settings.title")); + dialog.setSize(850, 600); + dialog.setLocationRelativeTo(this); + + // 获取当前主题的背景色(FlatMacDark 下通常是深灰色) + Color themeBg = UIManager.getColor("Panel.background"); + // 为了确保不透明且覆盖背景图,这里强制设为不透明 + if (themeBg == null) themeBg = new Color(40, 40, 45); + + JPanel container = new JPanel(new BorderLayout()); + container.setOpaque(false); // 容器本身透明,由 FadeLayerUI 绘制背景 + + JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT); + tabbedPane.putClientProperty(FlatClientProperties.TABBED_PANE_TAB_TYPE, FlatClientProperties.TABBED_PANE_TAB_TYPE_UNDERLINED); + tabbedPane.putClientProperty(FlatClientProperties.TABBED_PANE_TAB_ALIGNMENT, SwingConstants.LEFT); + tabbedPane.putClientProperty(FlatClientProperties.TABBED_PANE_TAB_WIDTH_MODE, FlatClientProperties.TABBED_PANE_TAB_WIDTH_MODE_COMPACT); + + // 设置 Tab 区域背景为透明或侧边栏颜色,根据 FlatLaf 版本可能需要调整 + tabbedPane.setBackground(new Color(0,0,0,0)); + + UIManager.put("TabbedPane.tabInsets", new Insets(12, 16, 12, 16)); + UIManager.put("TabbedPane.tabAreaInsets", new Insets(10, 0, 0, 0)); + + tabbedPane.setOpaque(false); // 关键 + tabbedPane.setBorder(BorderFactory.createEmptyBorder()); + + List items = RegistrationSettingsItem.getRegistrationSettingsItemList(); + for (RegistrationSettingsItem item : items) { + item.registration(tabbedPane); + } + + container.add(tabbedPane, BorderLayout.CENTER); + GlobalEventBus.EVENT_BUS.post(new SettingsLoadEvents(dialog, container)); + + FadeLayerUI fadeUI = new FadeLayerUI(); + // 关键:将当前的背景色传递给 FadeLayerUI + fadeUI.setBackgroundColor(themeBg); + + JLayer layer = new JLayer<>(container, fadeUI); + dialog.setContentPane(layer); + + triggerFadeInAnimation(fadeUI, layer); + + if (AxisInnovatorsBox.getMain().isWindowStartup(dialog)) { + AxisInnovatorsBox.getMain().popupWindow(dialog); + } + } + + + // 动画逻辑辅助类 + private static class FadeLayerUI extends LayerUI { + private float alpha = 0f; + private int translateY = 30; + private Color backgroundColor = Color.DARK_GRAY; // 默认值 + + public void setAlpha(float alpha) { this.alpha = alpha; } + public void setTranslateY(int y) { this.translateY = y; } + public void setBackgroundColor(Color c) { this.backgroundColor = c; } + + @Override + public void paint(Graphics g, JComponent c) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + // 这里的逻辑是: + // 我们希望在动画开始前背景是透明的(为了淡入), + // 但动画结束后应该是实心背景色覆盖住主窗口。 + + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); + g2.translate(0, translateY); + + // 绘制圆角背景 + g2.setColor(backgroundColor); + // 填满整个区域 + g2.fillRect(0, 0, c.getWidth(), c.getHeight()); + + super.paint(g2, c); + g2.dispose(); + } + } + + private void triggerFadeInAnimation(FadeLayerUI ui, JComponent target) { + Timer timer = new Timer(10, null); + long start = System.currentTimeMillis(); + timer.addActionListener(e -> { + float t = (System.currentTimeMillis() - start) / 300f; + if (t > 1f) t = 1f; + + // Cubic ease-out + float val = 1 - (float) Math.pow(1 - t, 3); + + ui.setAlpha(val); + ui.setTranslateY((int)((1 - val) * 30)); + target.repaint(); + + if (t >= 1f) timer.stop(); + }); + timer.start(); + } + + // ---------- Utilities ---------- + private void switchCategory(String categoryId, boolean immediate) { if (Objects.equals(currentCategoryId, categoryId)) return; - JScrollPane newPane = categoryScrollPanes.get(categoryId); - if (newPane == null) return; - - Component currentComp = null; - if (currentCategoryId != null) currentComp = categoryScrollPanes.get(currentCategoryId); - currentCategoryId = categoryId; updateSideSelection(categoryId); - if (immediate || currentComp == null) { - cardsLayout.show(cardsPanel, categoryId); - return; - } + // 简单切换,如果需要复杂动画可保留原有的 Overlay 逻辑 + cardsLayout.show(cardsPanel, categoryId); - // 先隐藏新面板 - cardsPanel.setVisible(false); - - // 创建 overlay(自定义绘制旧/新快照) - final JComponent oldComp = (JComponent) currentComp; - final JComponent newComp = newPane; - - // overlay 覆盖在 cardsPanel 之上 - JComponent overlay = new JComponent() { - private float progress = 0f; - @Override protected void paintComponent(Graphics g) { - super.paintComponent(g); - Graphics2D g2 = (Graphics2D) g.create(); - int w = getWidth(), h = getHeight(); - - BufferedImage oldImg = createComponentImage(oldComp, w, h); - BufferedImage newImg = createComponentImage(newComp, w, h); - - if (oldImg != null) { - float alphaOld = Math.max(0f, 1f - progress); - int xOld = (int) (-progress * w * 0.2f); - g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaOld)); - g2.drawImage(oldImg, xOld, 0, w, h, null); - } - if (newImg != null) { - float alphaNew = Math.min(1f, progress); - int xNew = (int) ((1f - progress) * w * 0.08f); - g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaNew)); - g2.drawImage(newImg, xNew, 0, w, h, null); - } - g2.dispose(); - } - }; - - // set bounds and add to layeredPane at PALETTE_LAYER - Dimension size = cardsPanel.getSize(); - overlay.setBounds(0, 0, size.width, size.height); - layeredPane.add(overlay, JLayeredPane.PALETTE_LAYER); - layeredPane.revalidate(); - layeredPane.repaint(); - - // animate overlay.progress from 0 -> 1 - Timer t = new Timer(16, null); - final long start = System.currentTimeMillis(); - t.addActionListener(e -> { - float raw = (System.currentTimeMillis() - start) / 320f; - float eased = Math.min(1f, (float)(1 - Math.pow(1 - raw, 3))); - try { - java.lang.reflect.Field f = overlay.getClass().getDeclaredField("progress"); - f.setAccessible(true); - f.setFloat(overlay, eased); - } catch (Exception ex) { - // ignore - } - overlay.repaint(); - if (raw >= 1f) { - ((Timer)e.getSource()).stop(); - layeredPane.remove(overlay); - layeredPane.revalidate(); - layeredPane.repaint(); - // 动画完成后才显示新面板 - cardsPanel.setVisible(true); - cardsLayout.show(cardsPanel, categoryId); - } - }); - t.start(); + // 确保视图滚动回顶部 + JScrollPane pane = categoryScrollPanes.get(categoryId); + if (pane != null) pane.getVerticalScrollBar().setValue(0); } - // 使用 printAll 截图组件,避免渲染残留 - private BufferedImage createComponentImage(Component comp, int targetW, int targetH) { - if (comp == null) return null; - Dimension size = comp.getSize(); - if (size.width <= 0 || size.height <= 0) { - size = cardsPanel.getSize(); - if (size.width <= 0 || size.height <= 0) return null; - } - int w = Math.max(1, size.width); - int h = Math.max(1, size.height); - BufferedImage img = new BufferedImage(Math.max(w, targetW), Math.max(h, targetH), BufferedImage.TYPE_INT_ARGB); - Graphics2D g = img.createGraphics(); - // 使用 printAll 完整绘制子组件,从而避免轻/重组件混合导致的渲染残留 - comp.printAll(g); - g.dispose(); - return img; - } - - private JPanel createFooter() { - JPanel footer = new JPanel(new BorderLayout()); - footer.setOpaque(false); - footer.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - status = new JLabel("Ready"); - status.setFont(new Font(selectFont("Segoe UI", "Microsoft YaHei", "SansSerif", 12).getName(), Font.PLAIN, 12)); - status.setForeground(UIManager.getColor("Label.foreground")); - footer.add(status, BorderLayout.WEST); - return footer; - } - - /** - * 更新状态 - * @param text 状态名称 - */ - public void updataStatus(String text) { - status.setText(text); - } - - private void updateSideSelection(String categoryId) { - for (Map.Entry e : sideButtons.entrySet()) { - String id = e.getKey(); - JButton btn = e.getValue(); - if (Objects.equals(id, categoryId)) { - btn.setOpaque(true); - btn.setBackground(new Color(0x4A90E2)); // 选中时蓝色条(也可以改为其他色) - btn.setBorder(BorderFactory.createMatteBorder(0, 4, 0, 0, new Color(0x0A66C2))); - // 动画提示 - animateButtonPulse(btn); - } else { - btn.setOpaque(false); - btn.setBackground(new Color(0,0,0,0)); - btn.setBorder(BorderFactory.createEmptyBorder(0,4,0,0)); - } - } - } - - private void animateButtonPulse(JButton btn) { - Timer t = new Timer(14, null); - final long start = System.currentTimeMillis(); - Font base = btn.getFont(); - t.addActionListener(e -> { - float p = Math.min(1f, (System.currentTimeMillis() - start) / 260f); - float eased = (float)(1 - Math.pow(1 - p, 3)); - float s = 1f + 0.03f * (float)Math.sin(eased * Math.PI); - btn.setFont(base.deriveFont(base.getSize2D() * s)); - if (p >= 1f) { - ((Timer)e.getSource()).stop(); - btn.setFont(base); - } - }); - t.start(); - } - - // 搜索过滤当前分类(按 title/name) private void filterCurrentCategory(String query) { if (currentCategoryId == null) return; String q = query == null ? "" : query.trim().toLowerCase(); - ToolCategory category = categories.stream().filter(tc -> Objects.equals(tc.getId().toString(), currentCategoryId)).findFirst().orElse(null); + ToolCategory category = categories.stream() + .filter(tc -> Objects.equals(tc.getId().toString(), currentCategoryId)) + .findFirst().orElse(null); + if (category == null) return; SwingUtilities.invokeLater(() -> { - JPanel newPanel = new JPanel(new WrapLayout(FlowLayout.LEFT, 16, 16)); + JPanel newPanel = new JPanel(new WrapLayout(FlowLayout.LEFT, 20, 20)); newPanel.setOpaque(false); for (ToolItem tool : category.getTools()) { if (q.isEmpty() || tool.getTitle().toLowerCase().contains(q) || tool.getName().toLowerCase().contains(q)) { @@ -1345,381 +870,81 @@ public class MainWindow extends JFrame { JScrollPane scrollPane = categoryScrollPanes.get(currentCategoryId); if (scrollPane != null) { scrollPane.setViewportView(wrapper); - scrollPane.revalidate(); - scrollPane.repaint(); } }); } - // ---------- 字体选择工具(返回 Font) ---------- + private Font selectFont(String[] names, int size) { + for (String name : names) { + Font f = new Font(name, Font.PLAIN, size); + if (f.canDisplay('中')) return f; + } + return new Font(Font.SANS_SERIF, Font.PLAIN, size); + } + private Font selectFont(Object... namesAndSize) { - int size = 13; - for (Object obj : namesAndSize) { - if (obj instanceof Integer) { - size = (Integer) obj; - } - } - Font systemFont = UIManager.getFont("Label.font"); - if (systemFont != null && canDisplayChinese(systemFont)) { - return systemFont.deriveFont(Font.PLAIN, size); - } - try { - return new Font("Microsoft YaHei", Font.PLAIN, size); - } catch (Exception e) { - return new Font("微软雅黑", Font.PLAIN, size); - } + // Helper specifically for your code style + return selectFont(new String[]{"Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI"}, 14); } - /** 检查字体是否能显示中文 */ - private static boolean canDisplayChinese(Font font) { - return font.canDisplay('中') && font.canDisplay('文'); // 测试常见汉字 + private JPanel createFooter() { + JPanel footer = new JPanel(new BorderLayout()); + footer.setOpaque(false); + footer.setBorder(BorderFactory.createEmptyBorder(6, 12, 6, 12)); + + status = new JLabel("Ready"); + status.setFont(new Font("Segoe UI", Font.PLAIN, 12)); + status.setForeground(UIManager.getColor("Label.disabledForeground")); + + footer.add(status, BorderLayout.WEST); + return footer; } - private boolean isFontAvailable(String fontName) { - if (fontName == null) return false; - try { - return Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(fontName); - } catch (Exception e) { - return false; - } + public void updataStatus(String text) { + if (status != null) status.setText(text); } - // ---------- showSettings 实现 ---------- - public void showSettings() { - if (dialog == null || AxisInnovatorsBox.getMain().isWindowStartup(dialog)) { - dialog = new WindowsJDialog(this, - LanguageManager.getLoadedLanguages().getText("mainWindow.settings.title"), true); - } - dialog.setTitle(LanguageManager.getLoadedLanguages().getText("mainWindow.settings.title")); - dialog.setSize(750, 550); - dialog.setLocationRelativeTo(this); - - // 使用 JLayer + LayerUI 来对整个内容做统一的淡入 + 下滑(仿 Apple 风格)动画, - // 这样子组件也会跟随一起动画,而不是只有背景绘制发生变化。 - JPanel inner = new JPanel(new BorderLayout()); - inner.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12)); - inner.setOpaque(false); // 背景在 LayerUI 中绘制以便做阴影/圆角 - - - JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT); - tabbedPane.setOpaque(false); - tabbedPane.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); - - List registrationSettingsItemList - = RegistrationSettingsItem.getRegistrationSettingsItemList(); - for (RegistrationSettingsItem registrationSettingsItem : registrationSettingsItemList) { - registrationSettingsItem.registration(tabbedPane); - } - - inner.add(tabbedPane, BorderLayout.CENTER); - GlobalEventBus.EVENT_BUS.post(new SettingsLoadEvents(dialog, inner)); - - // LayerUI 实现:负责绘制圆角背景、阴影,并在 paint 中使用 alpha + translate 来实现动画 - class FadeLayerUI extends LayerUI { - private float alpha = 0f; - private int translateY = 20; - - public void setAlpha(float alpha) { this.alpha = Math.max(0f, Math.min(1f, alpha)); } - public void setTranslateY(int y) { this.translateY = y; } - - @Override - public void paint (Graphics g, JComponent c) { - Graphics2D g2 = (Graphics2D) g.create(); - int w = c.getWidth(); - int h = c.getHeight(); - - // 平滑处理 - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - - // 先绘制柔和阴影(透明度与 alpha 关联) - int arc = 16; - float shadowAlpha = Math.min(0.35f, alpha * 0.35f); - if (shadowAlpha > 0f) { - g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, shadowAlpha)); - g2.setColor(new Color(0, 0, 0, 255)); - // 画一个稍微向下偏移的矩形作为阴影基础 - g2.fillRoundRect(8, 10 + translateY/3, w - 16, h - 20, arc, arc); - } - - // 应用下滑位移 + 透明度到后续的内容绘制(包括子组件) - g2.translate(0, translateY); - g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); - - Color panelBg = UIManager.getColor("Panel.background"); - if (panelBg == null) - panelBg = new Color(245, 246, 248); - // 绘制半透明/圆角的主背景 - g2.setColor(panelBg); - g2.fillRoundRect(0, 0, w, h, arc, arc); - - // 把转换后的 Graphics 传给 super.paint 来绘制子组件(子组件会被 alpha & translate 影响) - super.paint(g2, c); - g2.dispose(); - } - } - - FadeLayerUI fadeUI = new FadeLayerUI(); - JLayer layered = new JLayer<>(inner, fadeUI); - layered.setOpaque(false); - - dialog.getContentPane().removeAll(); - dialog.getContentPane().setBackground(new Color(0,0,0,0)); // 保持透明(视平台支持情况) - dialog.add(layered); - - // 动画 Timer:350ms 的淡入 + 下滑(使用 ease-out 曲线) - final int duration = 350; // ms - final long start = System.currentTimeMillis(); - Timer timer = new Timer(16, null); // ~60fps - timer.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - float t = (System.currentTimeMillis() - start) / (float) duration; - if (t >= 1f) t = 1f; - // ease-out (cubic) - float eased = 1 - (float) Math.pow(1 - t, 3); - - fadeUI.setAlpha(eased); - // translate 从 20 -> 0 - fadeUI.setTranslateY((int) ((1 - eased) * 20)); - - layered.repaint(); - - if (t >= 1f) { - ((Timer) e.getSource()).stop(); - } - } - }); - timer.setCoalesce(true); - - // 初始状态隐藏内容(alpha=0),启动动画 - fadeUI.setAlpha(0f); - fadeUI.setTranslateY(20); - layered.setVisible(true); - timer.start(); - - dialog.revalidate(); - if (AxisInnovatorsBox.getMain().isWindowStartup(dialog)) { - AxisInnovatorsBox.getMain().popupWindow(dialog); - } + private static boolean isDarkTheme() { + return AxisInnovatorsBox.getMain().getRegistrationTopic().isDarkMode(); } - - // ---------- 内部类:ToolCategory, ToolItem 等(保持原结构) ---------- - public static class ToolCategory { - private final String name; - private final String icon; - private final ImageIcon iconImage; - private final String description; - private final UUID id = UUID.randomUUID(); - private final List tools = new ArrayList<>(); - - /** - * 分类 - * @param name 分类名称 - * @param icon 分类的图标 - * @param description 分类的描述 - */ - public ToolCategory(String name, String icon, String description) { - this.name = name; this.icon = icon; this.description = description; this.iconImage = null; - } - public ToolCategory(String name, ImageIcon icon, String description) { - this.name = name; this.iconImage = icon; this.description = description; this.icon = null; - } - - /** - * 在当前分类中创建一个新的工具卡片 - * @param tool 工具卡片 - */ - public void addTool(ToolItem tool) { tools.add(tool); } - public String getDescription() { return description; } - public String getIcon() { - if (isDarkTheme()) { - return icon.replace(".png", "_dark.png"); - } - return icon; - } - public String getName() { return name; } - public List getTools() { return tools; } - public ImageIcon getIconImage() { return iconImage; } - public UUID getId() { return id; } - } - - public static class ToolItem { - private final ImageIcon imageIcon; - private final String title; - private final String icon; - private final String description; - private final int id; - private final Action action; - - /** - * 创建一个新的工具 - * @param title 工具的标题 - * @param icon 工具的图标 - * @param description 工具的介绍 - * @param id 工具的id(不要重复即可) - * @param action 点击工具卡片后触发的事件 - */ - public ToolItem(String title, String icon, String description, int id, Action action) { - this.title = title; this.icon = icon; this.description = description; this.id = id; this.action = action; this.imageIcon = null; - } - public ToolItem(String title, ImageIcon icon, String description, int id, Action action) { - this.title = title; this.imageIcon = icon; this.description = description; this.id = id; this.action = action; this.icon = null; - } - public String getTitle() { return title; } - public ImageIcon icon() { return imageIcon; } - public String getIcon() { return icon; } - public Action getAction() { return action; } - public ImageIcon getImageIcon() { return imageIcon; } - public int getId() { return id; } - public String getDescription() { return description; } - public String getName() { return title; } - } - - // ---------- 自定义 Tab UI(保留) ---------- - public static class CustomTabbedPaneUI extends BasicTabbedPaneUI { - private static final Color SELECTED_COLOR = new Color(183, 202, 221); - private static final Color UNSELECTED_COLOR = new Color(125, 174, 237); - @Override protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { - Graphics2D g2d = (Graphics2D) g.create(); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2d.setColor(isSelected ? SELECTED_COLOR : UNSELECTED_COLOR); - g2d.fillRoundRect(x + 2, y + 2, w - 4, h - 4, 10, 10); - g2d.dispose(); - } - } - - // ---------- 自定义滚动条 ---------- - public static class CustomScrollBarUI extends BasicScrollBarUI { - @Override protected void configureScrollBarColors() { - this.thumbColor = UIManager.getColor("ScrollBar.thumb"); - if (thumbColor == null) thumbColor = new Color(160, 160, 180); - - this.trackColor = UIManager.getColor("ScrollBar.track"); - if (trackColor == null) trackColor = new Color(245, 245, 248); - } - @Override protected JButton createDecreaseButton(int orientation) { return createInvisibleButton(); } - @Override protected JButton createIncreaseButton(int orientation) { return createInvisibleButton(); } - private JButton createInvisibleButton() { - JButton btn = new JButton(); btn.setPreferredSize(new Dimension(0,0)); btn.setBorder(null); return btn; - } - @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { - Graphics2D g2 = (Graphics2D) g.create(); - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2.setColor(thumbColor); - g2.fillRoundRect(thumbBounds.x + 2, thumbBounds.y + 2, Math.max(6, thumbBounds.width - 4), Math.max(10, thumbBounds.height - 4), 8, 8); - g2.dispose(); - } - } - - // ---------- 卡片鼠标适配器(含按压动画与点击触发) ---------- + // 内部类 CardMouseAdapter 保持不变,用于处理点击逻辑 private class CardMouseAdapter extends MouseAdapter { private final JPanel card; private final ToolItem tool; - private Timer pressTimer; - private Timer releaseTimer; - private static int delay = 0; - CardMouseAdapter(JPanel card, ToolItem tool) { this.card = card; this.tool = tool; } - @Override public void mousePressed(MouseEvent e) { startPressAnimation(); } - @Override public void mouseReleased(MouseEvent e) { - if (delay == 0) { - delay++; - startReleaseAnimation(() -> { - // 先强制重绘,避免图标残留(如果 action 引发 UI 线程阻塞也尽量降低残留) - card.repaint(); - cardsPanel.repaint(); - SwingUtilities.invokeLater(() -> { - try { - tool.getAction().actionPerformed(new ActionEvent(card, ActionEvent.ACTION_PERFORMED, "")); - } catch (Exception ex) { - logger.warn("Tool action failed: " + ex.getMessage(), ex); - } - }); + private boolean isPressed = false; + + CardMouseAdapter(JPanel card, ToolItem tool) { + this.card = card; + this.tool = tool; + } + + @Override + public void mousePressed(MouseEvent e) { + isPressed = true; + // 按下缩小效果 + // 实际应用中可以修改 scale,这里简化处理 + card.repaint(); + } + + @Override + public void mouseReleased(MouseEvent e) { + if (isPressed) { + isPressed = false; + card.repaint(); + SwingUtilities.invokeLater(() -> { + try { + tool.getAction().actionPerformed(new ActionEvent(card, ActionEvent.ACTION_PERFORMED, "")); + } catch (Exception ex) { + logger.error("Tool execution failed", ex); + } }); - } else { delay--; } - } - @Override public void mouseExited(MouseEvent e) { if (pressTimer != null && pressTimer.isRunning()) startReleaseAnimation(null); } - - private void startPressAnimation() { - if (pressTimer != null && pressTimer.isRunning()) return; - pressTimer = new Timer(12, new AbstractAction() { - private final long startTime = System.currentTimeMillis(); - @Override public void actionPerformed(ActionEvent e) { - float progress = Math.min(1.0f, (System.currentTimeMillis() - startTime) / 160f); - float scale = 1.0f - 0.06f * (float)Math.pow(progress, 0.5); - cardScales.put(card, scale); - card.repaint(); - if (progress >= 1.0f) ((Timer)e.getSource()).stop(); - } - }); - pressTimer.start(); - } - - private void startReleaseAnimation(Runnable callback) { - if (pressTimer != null) pressTimer.stop(); - if (releaseTimer != null && releaseTimer.isRunning()) return; - final float startScale = cardScales.getOrDefault(card, 1.0f); - releaseTimer = new Timer(12, new AbstractAction() { - private final long startTime = System.currentTimeMillis(); - @Override public void actionPerformed(ActionEvent e) { - float progress = Math.min(1.0f, (System.currentTimeMillis() - startTime) / 220f); - float scale = startScale + (1.0f - startScale) * (float)(1 - Math.pow(1 - progress, 3)); - cardScales.put(card, scale); - card.repaint(); - if (progress >= 1.0f) { - ((Timer)e.getSource()).stop(); - if (callback != null) callback.run(); - } - } - }); - releaseTimer.start(); - } - } - - // ---------- WrapLayout(用于自动换行卡片) ---------- - public static class WrapLayout extends FlowLayout { - public WrapLayout() { super(); } - public WrapLayout(int align) { super(align); } - public WrapLayout(int align, int hgap, int vgap) { super(align, hgap, vgap); } - @Override public Dimension preferredLayoutSize(Container target) { return layoutSize(target, true); } - @Override public Dimension minimumLayoutSize(Container target) { - Dimension minimum = layoutSize(target, false); - minimum.width -= (getHgap() + 1); - return minimum; - } - private Dimension layoutSize(Container target, boolean preferred) { - synchronized (target.getTreeLock()) { - int targetWidth = target.getWidth(); - if (targetWidth == 0) targetWidth = Integer.MAX_VALUE; - int hgap = getHgap(); int vgap = getVgap(); - Insets insets = target.getInsets(); - int horizontalInsetsAndGap = insets.left + insets.right + (hgap * 2); - int maxWidth = targetWidth - horizontalInsetsAndGap; - Dimension dim = new Dimension(0, 0); - int rowWidth = 0; int rowHeight = 0; - int nmembers = target.getComponentCount(); - for (int i = 0; i < nmembers; i++) { - Component m = target.getComponent(i); - if (!m.isVisible()) continue; - Dimension d = preferred ? m.getPreferredSize() : m.getMinimumSize(); - if (rowWidth + d.width > maxWidth) { - addRow(dim, rowWidth, rowHeight); - rowWidth = 0; rowHeight = 0; - } - if (rowWidth != 0) rowWidth += hgap; - rowWidth += d.width; - rowHeight = Math.max(rowHeight, d.height); - } - addRow(dim, rowWidth, rowHeight); - dim.width += horizontalInsetsAndGap; - dim.height += insets.top + insets.bottom + vgap * 2; - return dim; } } - private void addRow(Dimension dim, int rowWidth, int rowHeight) { - dim.width = Math.max(dim.width, rowWidth); - if (dim.height > 0) dim.height += getVgap(); - dim.height += rowHeight; + + @Override + public void mouseExited(MouseEvent e) { + isPressed = false; } } } \ No newline at end of file diff --git a/src/main/java/com/axis/innovators/box/window/util/CustomScrollBarUI.java b/src/main/java/com/axis/innovators/box/window/util/CustomScrollBarUI.java new file mode 100644 index 0000000..295dab7 --- /dev/null +++ b/src/main/java/com/axis/innovators/box/window/util/CustomScrollBarUI.java @@ -0,0 +1,27 @@ +package com.axis.innovators.box.window.util; + +import javax.swing.*; +import javax.swing.plaf.basic.BasicScrollBarUI; +import java.awt.*; + +public class CustomScrollBarUI extends BasicScrollBarUI { + @Override protected void configureScrollBarColors() { + this.thumbColor = UIManager.getColor("ScrollBar.thumb"); + if (thumbColor == null) thumbColor = new Color(160, 160, 180); + + this.trackColor = UIManager.getColor("ScrollBar.track"); + if (trackColor == null) trackColor = new Color(245, 245, 248); + } + @Override protected JButton createDecreaseButton(int orientation) { return createInvisibleButton(); } + @Override protected JButton createIncreaseButton(int orientation) { return createInvisibleButton(); } + private JButton createInvisibleButton() { + JButton btn = new JButton(); btn.setPreferredSize(new Dimension(0,0)); btn.setBorder(null); return btn; + } + @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setColor(thumbColor); + g2.fillRoundRect(thumbBounds.x + 2, thumbBounds.y + 2, Math.max(6, thumbBounds.width - 4), Math.max(10, thumbBounds.height - 4), 8, 8); + g2.dispose(); + } +} diff --git a/src/main/java/com/axis/innovators/box/window/util/RoundedSearchField.java b/src/main/java/com/axis/innovators/box/window/util/RoundedSearchField.java new file mode 100644 index 0000000..a91d14b --- /dev/null +++ b/src/main/java/com/axis/innovators/box/window/util/RoundedSearchField.java @@ -0,0 +1,163 @@ +package com.axis.innovators.box.window.util; + +import javax.swing.*; +import javax.swing.event.DocumentListener; +import java.awt.*; +import java.awt.event.*; +import java.awt.geom.Point2D; + +public class RoundedSearchField extends JPanel { + private final JTextField textField; + private int targetWidth; + private float animProgress = 0f; + private Timer animTimer; + private final int baseWidth; + private final int heightPx; + + // 动画相关变量 + private float glowPosition = 0f; + private final Timer glowTimer; + public Color defaultBorderColor; + private boolean focused = false; + + public RoundedSearchField(int baseWidth, int heightPx) { + this.baseWidth = baseWidth; + this.heightPx = heightPx; + this.targetWidth = baseWidth; + setOpaque(false); + setLayout(new BorderLayout()); + + // 获取系统默认边框色 + defaultBorderColor = UIManager.getColor("TextField.borderColor"); + if (defaultBorderColor == null) { + defaultBorderColor = new Color(180, 180, 180); // 备用默认色 + } + + textField = new JTextField(); + textField.setBorder(BorderFactory.createEmptyBorder(6, 10, 6, 10)); + textField.setOpaque(false); + textField.setFont(UIManager.getFont("TextField.font")); + setPreferredSize(new Dimension(baseWidth, heightPx)); + add(textField, BorderLayout.CENTER); + + // 焦点监听器 + textField.addFocusListener(new FocusAdapter() { + @Override + public void focusGained(FocusEvent e) { + focused = true; + animateTo(baseWidth + 80); + glowTimer.start(); + } + + @Override + public void focusLost(FocusEvent e) { + focused = false; + animateTo(baseWidth); + glowTimer.stop(); + repaint(); + } + }); + + // 点击面板聚焦文本框 + addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { + textField.requestFocusInWindow(); + } + }); + + // 尺寸动画定时器 + animTimer = new Timer(16, ae -> { + int curW = getWidth(); + int diff = targetWidth - curW; + if (Math.abs(diff) <= 1) { + setPreferredSize(new Dimension(targetWidth, heightPx)); + revalidate(); + repaint(); + animTimer.stop(); + } else { + int step = Math.max(1, Math.abs(diff) / 6); + int newW = curW + (diff > 0 ? step : -step); + setPreferredSize(new Dimension(newW, heightPx)); + revalidate(); + repaint(); + } + }); + + // 发光动画定时器 + glowTimer = new Timer(30, e -> { + glowPosition = (glowPosition + 0.03f) % 1f; + repaint(); + }); + } + + public void updateThemeColors() { + defaultBorderColor = UIManager.getColor("TextField.borderColor"); + if (defaultBorderColor == null) { + defaultBorderColor = new Color(180, 180, 180); + } + repaint(); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g.create(); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + int arc = heightPx / 2; // 圆角半径 + int borderThickness = focused ? 2 : 1; + + // 绘制背景 + g2d.setColor(getBackground()); + g2d.fillRoundRect(0, 0, getWidth(), getHeight(), arc, arc); + + // 绘制边框 + if (focused) { + // 流动彩虹渐变 + float[] fractions = {0f, 0.25f, 0.5f, 0.75f, 1f}; + Color[] colors = { + new Color(255, 0, 0, 200), // 红 + new Color(255, 165, 0, 200), // 橙 + new Color(0, 255, 0, 200), // 绿 + new Color(0, 191, 255, 200), // 蓝 + new Color(148, 0, 211, 200) // 紫 + }; + + // 创建循环渐变 + Point2D start = new Point2D.Float(getWidth() * glowPosition, 0); + Point2D end = new Point2D.Float(getWidth() * glowPosition + getWidth(), 0); + LinearGradientPaint gradient = new LinearGradientPaint( + start, end, fractions, colors + ); + + g2d.setPaint(gradient); + g2d.setStroke(new BasicStroke(2.5f)); + } else { + g2d.setColor(defaultBorderColor); + g2d.setStroke(new BasicStroke(1f)); + } + + g2d.drawRoundRect(borderThickness/2, borderThickness/2, + getWidth() - borderThickness, getHeight() - borderThickness, + arc, arc); + + // 添加发光效果 + if (focused) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); + g2d.setStroke(new BasicStroke(4f)); + g2d.drawRoundRect(0, 0, getWidth(), getHeight(), arc, arc); + } + + g2d.dispose(); + } + + void animateTo(int w) { + this.targetWidth = w; + if (!animTimer.isRunning()) animTimer.start(); + } + + public String getText() { return textField.getText(); } + public void setText(String t) { textField.setText(t); } + public void addActionListener(ActionListener l) { textField.addActionListener(l); } + public void addDocumentListener(DocumentListener dl) { textField.getDocument().addDocumentListener(dl); } +} diff --git a/src/main/java/com/axis/innovators/box/window/util/ToolCategory.java b/src/main/java/com/axis/innovators/box/window/util/ToolCategory.java new file mode 100644 index 0000000..b43588a --- /dev/null +++ b/src/main/java/com/axis/innovators/box/window/util/ToolCategory.java @@ -0,0 +1,47 @@ +package com.axis.innovators.box.window.util; + +import com.axis.innovators.box.AxisInnovatorsBox; + +import javax.swing.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class ToolCategory { + private final String name; + private final String icon; + private final ImageIcon iconImage; + private final String description; + private final UUID id = UUID.randomUUID(); + private final List tools = new ArrayList<>(); + + /** + * 分类 + * @param name 分类名称 + * @param icon 分类的图标 + * @param description 分类的描述 + */ + public ToolCategory(String name, String icon, String description) { + this.name = name; this.icon = icon; this.description = description; this.iconImage = null; + } + public ToolCategory(String name, ImageIcon icon, String description) { + this.name = name; this.iconImage = icon; this.description = description; this.icon = null; + } + + /** + * 在当前分类中创建一个新的工具卡片 + * @param tool 工具卡片 + */ + public void addTool(ToolItem tool) { tools.add(tool); } + public String getDescription() { return description; } + public String getIcon() { + if (AxisInnovatorsBox.getMain().getRegistrationTopic().isDarkMode()) { + return icon.replace(".png", "_dark.png"); + } + return icon; + } + public String getName() { return name; } + public List getTools() { return tools; } + public ImageIcon getIconImage() { return iconImage; } + public UUID getId() { return id; } +} diff --git a/src/main/java/com/axis/innovators/box/window/util/ToolItem.java b/src/main/java/com/axis/innovators/box/window/util/ToolItem.java new file mode 100644 index 0000000..b0da81b --- /dev/null +++ b/src/main/java/com/axis/innovators/box/window/util/ToolItem.java @@ -0,0 +1,35 @@ +package com.axis.innovators.box.window.util; + +import javax.swing.*; + +public class ToolItem { + private final ImageIcon imageIcon; + private final String title; + private final String icon; + private final String description; + private final int id; + private final Action action; + + /** + * 创建一个新的工具 + * @param title 工具的标题 + * @param icon 工具的图标 + * @param description 工具的介绍 + * @param id 工具的id(不要重复即可) + * @param action 点击工具卡片后触发的事件 + */ + public ToolItem(String title, String icon, String description, int id, Action action) { + this.title = title; this.icon = icon; this.description = description; this.id = id; this.action = action; this.imageIcon = null; + } + public ToolItem(String title, ImageIcon icon, String description, int id, Action action) { + this.title = title; this.imageIcon = icon; this.description = description; this.id = id; this.action = action; this.icon = null; + } + public String getTitle() { return title; } + public ImageIcon icon() { return imageIcon; } + public String getIcon() { return icon; } + public Action getAction() { return action; } + public ImageIcon getImageIcon() { return imageIcon; } + public int getId() { return id; } + public String getDescription() { return description; } + public String getName() { return title; } +} diff --git a/src/main/java/com/axis/innovators/box/window/util/WrapLayout.java b/src/main/java/com/axis/innovators/box/window/util/WrapLayout.java new file mode 100644 index 0000000..5e699de --- /dev/null +++ b/src/main/java/com/axis/innovators/box/window/util/WrapLayout.java @@ -0,0 +1,85 @@ +package com.axis.innovators.box.window.util; + +import javax.swing.*; +import java.awt.*; + +public class WrapLayout extends FlowLayout { + public WrapLayout(int align, int hgap, int vgap) { + super(align, hgap, vgap); + } + + @Override + public Dimension preferredLayoutSize(Container target) { + return layoutSize(target, true); + } + + @Override + public Dimension minimumLayoutSize(Container target) { + Dimension minimum = layoutSize(target, false); + minimum.width -= (getHgap() + 1); + return minimum; + } + + private Dimension layoutSize(Container target, boolean preferred) { + synchronized (target.getTreeLock()) { + int targetWidth = target.getWidth(); + + if (targetWidth == 0) + targetWidth = Integer.MAX_VALUE; + + int hgap = getHgap(); + int vgap = getVgap(); + Insets insets = target.getInsets(); + int horizontalInsetsAndGap = insets.left + insets.right + (hgap * 2); + int maxWidth = targetWidth - horizontalInsetsAndGap; + + Dimension dim = new Dimension(0, 0); + int rowWidth = 0; + int rowHeight = 0; + + int nmembers = target.getComponentCount(); + + for (int i = 0; i < nmembers; i++) { + Component m = target.getComponent(i); + + if (m.isVisible()) { + Dimension d = preferred ? m.getPreferredSize() : m.getMinimumSize(); + + if (rowWidth + d.width > maxWidth) { + addRow(dim, rowWidth, rowHeight); + rowWidth = 0; + rowHeight = 0; + } + + if (rowWidth != 0) { + rowWidth += hgap; + } + + rowWidth += d.width; + rowHeight = Math.max(rowHeight, d.height); + } + } + + addRow(dim, rowWidth, rowHeight); + + dim.width += horizontalInsetsAndGap; + dim.height += insets.top + insets.bottom + vgap * 2; + + // 确保容器至少有这点大小 + Container parent = target.getParent(); + if (parent instanceof JScrollPane) { + dim.width = targetWidth; // 强制宽度匹配 + } + + return dim; + } + } + + private void addRow(Dimension dim, int rowWidth, int rowHeight) { + dim.width = Math.max(dim.width, rowWidth); + if (dim.height > 0) { + dim.height += getVgap(); + } + dim.height += rowHeight; + } +} diff --git a/src/main/resources/build/build.properties b/src/main/resources/build/build.properties index 3c20b1c..cb8b87b 100644 --- a/src/main/resources/build/build.properties +++ b/src/main/resources/build/build.properties @@ -1,4 +1,4 @@ # Auto-generated build information version=0.0.1 -buildTimestamp=2026-01-02T17:46:06.8226378 +buildTimestamp=2026-01-02T18:36:04.5818254 buildSystem=WINDOWS diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index b936a91..e395e46 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -1,11 +1,7 @@ - - + - - - - + - + @@ -43,8 +39,7 @@ - - +