magento / magento2

Prior to making any Submission(s), you must sign an Adobe Contributor License Agreement, available here at: https://opensource.adobe.com/cla.html. All Submissions you make to Adobe Inc. and its affiliates, assigns and subsidiaries (collectively “Adobe”) are subject to the terms of the Adobe Contributor License Agreement.
http://www.magento.com
Open Software License 3.0
11.49k stars 9.3k forks source link

Magento 2.4 critical load of RAM triggering OOM killer due to CSP module 100.4.0 #29964

Closed onepack closed 3 years ago

onepack commented 4 years ago

Preconditions (*)

  1. Magento 2.4.0
  2. PHP 7.3 and 7.4
  3. Redis enabled for FPC and backend cache
  4. Elasticsearch 7.8.1
  5. Database mariadb 10.4
  6. 8gb to 10gb of VPS ram with Magento having 2gb assigned.

Steps to reproduce (*)

  1. Set the shop to production mode
  2. Have around 2000+ products in multiple categories
  3. Clear all caches and also redis-cli flushall
  4. Open a dropdown with categories and click them open in a new tab one by one.
  5. Search a couple of times and wait for the result.

Expected result (*)

  1. The expected result is that all 15 categories would open one by one and look ok
  2. The search result would look ok.

Actual result (*)

  1. The actual result is that maybe 12 categories would open ok but around 2 or 3 would look completely broken with broken styling or even a 500 server error.
  2. The search result would look broken.
  3. Sometimes the OOM killer was triggered that would sacrifice the Elasticsearch etc.

Please provide Severity assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes.

We found out via SSH top that the RAM consumption was peaking during the category generation on the frontend (from uncachd to cached). First we thought it was a Redis issue because 9 out of ten times the page would look broken like we have seen in the M1 days because of a Redis issue. But actually "the broken page layout" was the result of PHP running out of memory. The result would get cached and stay in the cache until the redis cache was cleared.

After a lot of digging I found the source of the issue in: vendor/magento/module-csp/Model/BlockCache.php Under the function: load($identifier) This function uses a crazy amound of RAM. Quick workaround is disabling the module to keep the shop RAM usage healthy.

The log errors show that this function is causing issues.

I copied the log errors from another user running into the same issue:

[Mon Aug 17 19:40:50.052935 2020] [php7:error] [pid 16932:tid 140669993522944] [client 127.0.0.1:40654] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 48238592 bytes) in /var/www/html/vendor/magento/framework/Serialize/Serializer/Json.php on line 24 [Mon Aug 17 19:40:51.592030 2020] [php7:error] [pid 16933:tid 140670169769728] [client 127.0.0.1:40666] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 108 [Mon Aug 17 19:41:12.706529 2020] [php7:error] [pid 17146:tid 140670127806208] [client 127.0.0.1:40702] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 108 [Mon Aug 17 19:41:12.740424 2020] [php7:error] [pid 17146:tid 140670127806208] [client 127.0.0.1:40702] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 122880 bytes) in Unknown on line 0 [Mon Aug 17 19:41:24.887257 2020] [php7:error] [pid 16939:tid 140670111020800] [client 127.0.0.1:40798] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 78 [Mon Aug 17 19:41:24.913106 2020] [php7:error] [pid 16939:tid 140670111020800] [client 127.0.0.1:40798] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 65536 bytes) in Unknown on line 0 [Mon Aug 17 19:41:39.997127 2020] [php7:error] [pid 16933:tid 140670152984320] [client 127.0.0.1:40904] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 108, referer: http://ip-of-my-ec2-instance:80/ [Mon Aug 17 19:41:40.030659 2020] [php7:error] [pid 16933:tid 140670152984320] [client 127.0.0.1:40904] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 40960 bytes) in Unknown on line 0, referer: http://ip-of-my-ec2-instance:80/ [Mon Aug 17 19:42:08.849538 2020] [php7:error] [pid 17146:tid 140670111020800] [client 127.0.0.1:41016] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/framework/Serialize/Serializer/Json.php on line 42 [Mon Aug 17 19:42:08.865389 2020] [php7:error] [pid 17146:tid 140670111020800] [client 127.0.0.1:41016] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 32768 bytes) in Unknown on line 0 [Mon Aug 17 19:44:23.245570 2020] [php7:error] [pid 17146:tid 140670027093760] [client 127.0.0.1:41798] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/framework/Serialize/Serializer/Json.php on line 42, referer: https://www.google.com/ [Mon Aug 17 19:44:23.312177 2020] [php7:error] [pid 17146:tid 140670027093760] [client 127.0.0.1:41798] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 45056 bytes) in Unknown on line 0, referer: https://www.google.com/ [Mon Aug 17 19:44:29.224653 2020] [php7:error] [pid 16939:tid 140670052271872] [client 127.0.0.1:41742] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 108 [Mon Aug 17 19:44:29.264725 2020] [php7:error] [pid 16939:tid 140670052271872] [client 127.0.0.1:41742] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 90112 bytes) in Unknown on line 0 [Mon Aug 17 19:44:34.254009 2020] [php7:error] [pid 17146:tid 140670043879168] [client 127.0.0.1:41688] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/module-csp/Model/BlockCache.php on line 108 [Mon Aug 17 19:44:34.294439 2020] [php7:error] [pid 17146:tid 140670043879168] [client 127.0.0.1:41688] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 36864 bytes) in Unknown on line 0 [Mon Aug 17 19:44:40.650547 2020] [php7:error] [pid 17146:tid 140670010308352] [client 127.0.0.1:41882] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/magento/framework/Serialize/Serializer/Json.php on line 42 [Mon Aug 17 19:44:40.690603 2020] [php7:error] [pid 17146:tid 140670010308352] [client 127.0.0.1:41882] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 49152 bytes) in Unknown on line 0 [Mon Aug 17 19:44:49.990225 2020] [php7:error] [pid 16939:tid 140670144591616] [client 127.0.0.1:42006] PHP Fatal error: Allowed memory size of 792723456 bytes exhausted (tried to allocate 33554440 bytes) in /var/www/html/vendor/magento/module-csp/Model/Collector/DynamicCollector.php on line 31

m2-assistant[bot] commented 4 years ago

Hi @onepack. Thank you for your report. To help us process this issue please make sure that you provided the following information:

Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:

@magento give me 2.4-develop instance - upcoming 2.4.x release

For more details, please, review the Magento Contributor Assistant documentation.

Please, add a comment to assign the issue: @magento I am working on this


:clock10: You can find the schedule on the Magento Community Calendar page.

:telephone_receiver: The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, please join the Community Contributions Triage session to discuss the appropriate ticket.

:movie_camera: You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel

:pencil2: Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel

gwharton commented 4 years ago
Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /home/ubuntu/www/vendor/magento/module-csp/Model/BlockCache.php on line 108
Allowed memory size of 1073741824 bytes exhausted (tried to allocate 67108872 bytes) in /home/ubuntu/www/vendor/magento/module-csp/Model/Collector/DynamicCollector.php on line 31
Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /home/ubuntu/www/vendor/magento/framework/Serialize/Serializer/Json.php on line 37
Allowed memory size of 792723456 bytes exhausted (tried to allocate 4096 bytes) in /home/ubuntu/www/vendor/magento/module-csp/Model/BlockCache.php on line 78

I see it trying to allocate a 67MB CSP policy!!!

I'm going to run with CSP module disabled for a while and see if that helps

onepack commented 4 years ago

@gwharton a quick workaround is to disable the CSP module. This weekend I'm going what the source of this issue with the CSP load is.

gwharton commented 4 years ago

Seemed to be something to do with the BlockCache with the limited debugging I was able to do before throwing one's hands in the air and disabling CSP.

m2-assistant[bot] commented 4 years ago

Hi @AlexMaxHorkun. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:


AlexMaxHorkun commented 4 years ago

I was not able to reproduce this locally with 1200+ products and dozens of categories. Perhaps this issue can only occur on a heavily resource limited setup. However I can see that there is a room for improvement performance wise in CSP implementation and it will be addressed in the next 2.4.x release

gwharton commented 4 years ago

eeeeekkkkk :(

67MB of CSP headers being allocated is not something that should be happening on any machine, let alone a resource starved one.

There is something wrong in the block cache/CSP area it seems.

I know when mine was failing, none of the hashes from the secure inline scripts were making it into the CSP headers either.

I am using varnish, I don't know if that matters.

gwharton commented 4 years ago

Also, it only seems to occurr at random times. I can let my site run for days with no problem, then all of a sidden, something triggers it and I am getting out of memory errors and apache is reporting random 503's to varnish. If I then clear cache, it runs fine again for a few days, then bang! I have had no issues whatsoever since disabling CSP. I for one, don't think module-csp is ready for production use.

dvershinin commented 4 years ago

This just happened to me on a second store. Redis usage grows to 14 GB in less than 24 hrs in a store with moderate traffic. The amazing huge CSP hashes is the data that is constantly being inserted:

1601365923.254337 [0 unix:/var/run/redis/redis.sock] "HMSET" "zc:k:421_BLOCK_D0D5D79F37A04A787F6AD70C34ADE8FB6C40636F_7886_FINAL_PRICE_LIST_CATEGORY_PAGE_EUR_20200929_8_0_" "d" "{\"policies\":[{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"BStHi22teqUu50swU5OZrPUANmifudttOq1xnvuHFOI=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"48sb4Je7XoTlJimO7pm\\/+fwXo5BBI6oU4Vci+QqK2\\/I=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"nHk4LqtZ0zapwB57kWmduJUqeJ54I7FBPnysQqhg0Lw=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"cHMJ2AAJCHWGIW4nyTqYh9J2NP0DzQ3KiiYGGPKJLUo=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"1z3VYjQl8LtcQRR81EXqqznKWOrYJyJVqu93BkXzkkk=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"21LoTH2EQ0uy3yQzlyZSgENO9IzGST3xuv2szY+LU\\/M=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"8iWqAQpE8l0bw+D23oEEajCTYJEGUTYn96PKWRkjb4Y=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"4rTRTwKUgPAVOi9Zp5e\\/754G27kLnd9Rff\\/NKCEXNNI=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"4eIGKpGuhjU8Bsof\\/Mm\\/AHwTzCZUFvevER0FsWS20nw=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"UuGKBjKpVoC\\/8zfiy\\/m2jdeGhNqz8QQKQ1K7x0R+A6M=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"Xj4FDkARMdOwyPTU2EZ0oj6QTAMX1Ymb\\/op4G0\\/\\/q04=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"DYh0vPP8uKimhqykQwOxc4w+rulqsQJ79neQPYRi5Ns=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"Wbek+bBB9O15rdozQeUDPmvlHeVul8ZfHTtyXyoRi+U=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"QZ98FJG2XexdAsIsPDnEsBCYIbUPWudEt6suwuYiUxo=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"LFhxcVU6KRNm8juJ49EGPihbH6dDlRb6s1pQFtrlYD4=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"PBEQfFi\\/gVIe7Z8Lwqi\\/WgweTpYkJhki3YFJgZoCzg4=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"Q7BepgmxKUsRtpFX4fb3xA3ldLYiBqk0Rk6SVfS5MXQ=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"HbpHVw9fO+wZnZFAa5gbVfSwOP\\/oIm7fpZUuTxBYQh8=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"ntqeMFyu\\/2v5BpzJHkvA3ZZVlClLaQ3PeLC4IFze8zA=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"Jj98CdytrDSwFu+0KylWE\\/9kVZSPQaFIiUWC0kL5mes=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"P87jUc1c\\/3wSpzp+87yecrXCwp7hCrve3cLlqumTxYo=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"RaxtWHpccZ2t8wqLOChw++JbLmKchcOgMG\\/QTwsex4o=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"tSAIDiDO+W1Rcytp2oUj2tF1hlUao38\\/perMphXecKY=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"j4lWFssGViA52hejnmgAonncxa2o\\/6Lr4aLD+GuNVFU=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"Y1SHvnQlHBvpdz4wFwxiW\\/q6ZOha+TsJxapUF6t+Ru4=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"Totv2RYsjc0hUZs2KX8S6eI5YD2c29xu3Xe4PndToT0=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"xFweBEfAIzSq85VerbpcJ0CivZDjPrdP9LHyUl5AiB8=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"+IUpoW8rS3Fpep3SBtuijdqoGf7VUQTXsC84m4uteR0=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"LWixx43imgqMI4Mx49DbtnSoQyQlWCssHJ71KLFWdmQ=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"M2F6PKej2Neu4sKPvbFUdC2vPE6uXs9LW4aSZaJUzxY=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"ec+4oeXNkrIxRdpBaTzWgj1KpclQHCtgkoVtYn8Xoqo=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"dsY+ngYpEyGwSwoEHhiSHthgmVwfisWUDuX4z4lC2ZE=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"S753tbiluj\\/bwkw2dRd\\/LupU8waF6iKffWjlvTFSLoo=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"2Jsxye4hbfekcMJ\\/fq\\/HNd6Q51wMgNV8j5UQO1+XkX4=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"CkzJPKXZMkxd9P2i9VCb1GTiH30lqzZ\\/P1e3H80ePWk=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"OV3DTDxoYMgkjIQZn3RK0sSgJE58mn4274mhvvgafmQ=\":\"sha256\"}},{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"My9XEIRO+UJtEuIdIHqaryoloiSZ7K6QsnCV\\/OmI5cM=\":\"sha256\"}},{\"id\":\"style-src\",\"hosts\":[],\"hashes\":{\"jaZS\\/zfcxb9B9kZM+bYmauKa2GWqbrgmJn30+6uSDo8 ...

And it's always huge.

Prior to M2.4.0, the stores could run just fine without maxmemory configured in Redis.

The real problem is not the size, the real problem is continues insertion of varying hash data(?). Because only that would explain continious growth to these sizes. So if one to restort to maxmemory-policy allkeys-lru for cache efficiency, they will have opposite results - cache having mostly the hash data for CSP. It will be highly inefficient with cache hit ratio close to ZERO.

hostep commented 4 years ago

Maybe the following patch can help: https://github.com/magento/magento2/commit/1767ab8c7d25f0d5bba3e09923b4dd7bb7ac3c9d (which is being mentioned in https://github.com/magento/magento-cloud-patches/pull/44)

We had some Redis OOM issues on at least two Magento 2.3.5 shops even with the CSP module disabled. This patch seems to fix the OOM issue (although we've only had it running for a couple of days, so not 100% sure yet)

It's probably a workaround for the issue described in here, there seems to be a deeper underlying issue if I understand the comments correctly.

dvershinin commented 4 years ago

Technically speaking, everyone should set up some memory limit in Redis configuration to avoid OOM altogether. It is still possible to have OOM with or without CSP, but with will lead to OOM quite fast, so the CSP module is very problematic in its current state.

will-wright1 commented 4 years ago

I'm seeing this issue too, disabling CSP caused me issues, I've had to setup a cron job to clear the cache every 6 hours!!

Quazz commented 3 years ago

An incredibly high amount of keys is being inserted for normal cache on Magento 2.4

I have a redis instance where cache and full page cache are shared and the normal cache endlessly growing eventually makes the fullpage cache useless since those keys get evicted since it runs out of its maxmemory limit.

It also appears that cache:clean does not clean those keys up. Only flushing the redis db helps...

Morgy93 commented 3 years ago

I can confirm this issue without Redis on Magento 2.4.1 Actually we disabled Redis because it consumed more than 60 GB of RAM.

Now with file cache the hard drive gets eaten and we're left with:

PHP message: PHP Fatal error:  Allowed memory size of 8589934592 bytes exhausted (tried to allocate 20480 bytes) in magento/module-csp/Model/BlockCache.php on line 108
PHP message: PHP Fatal error:  Allowed memory size of 8589934592 bytes exhausted (tried to allocate 77824 bytes) in Unknown on line 0

Yes, even 8 GB of RAM for PHP is not enough to process.

I assume that the foreach loop is just huge for whatever reason or whatever calls the save() method is a big loop.

image https://github.com/magento/magento2/blob/2.4.1/app/code/Magento/Csp/Model/BlockCache.php#L108

@AlexMaxHorkun Our server is not at all resource limited with dedicated 16 vCPU, 64 GB of RAM and 160 GB SSD by the way.

Morgy93 commented 3 years ago

@nathanjosiah 2.4.2? Did you mean 2.4.1 which is "generally available" since yesterday? If yes, I am on the 2.4.1 from yesterday with the issue described above.

Else just enlighten me 😁

nathanjosiah commented 3 years ago

@Morgy93 Apologies, I deleted my comment. I meant to say 2.4.1 but then I realized the fixes will not be available until 2.4.2

nathanjosiah commented 3 years ago

However, somebody could potentially test using 2.4-develop since the performance fixes have been merged there already.

Morgy93 commented 3 years ago

All I can see right now is this one https://github.com/magento/magento2/commit/047629aeb29354c35c7ebe4f12b7eed160e241e0#diff-f82a4c282711708e05d2f1db5f2f2369e2533e5bfb184b3f71db21a5756eafaf from 21 days ago. I could try some manual patching if we find all necessary files.

Current workaround is to magento clean:cache every 15 minutes via cronjob............

onepack commented 3 years ago

@Morgy93 The workaround for us was to disable the CSP module. The option was a poor performance with the cron option or a crashing site. So disabling CSP was the least evil option in our case.

nathanjosiah commented 3 years ago

@toxix @onepack @Morgy93 @gwharton @dvershinin and anybody else that wants a chance to provide additional details.

I have a Magento 2.4.1 Open Source instance running with the following properties:

 |- vCPU: 1
 |- RAM: 4GB 
 |- Storage: 100GB
 |- MariaDB: 10.2
 |- ElasticSearch: 6.8
 |- PHP: 7.2
 |- Apache: 2.4
 |- Theme: Luma
 |- Admin Users: 50
 |- Websites: 3
 |- Store Groups Count: 3
 |- Store Views Count: 3
 |- Categories: 300
 |- Attribute Sets (Default): 3
 |- Attribute Sets (Extra): 30
 |- Simple products: 24000
 |- Configurable products: 640
 |- Product images: 1000, 3 per product
 |- Customers: 2000
 |- Cart Price Rules: 20
 |- Catalog Price Rules: 20
 |- Coupon Codes: 20
 |- Orders: 50000

I have tested this site in every way I can think of and the CSP headers are fine. The largest CSP policy I have been able to see is 1.8 KB. I recognize this is not a fully true-to-life configuration in respect to the theme and extensions so I am asking for anybody to provide details for a consistently reproducible environment where I can see the problems being described.

Unless somebody can provide details by Wednesday of next week (Oct 23) that show this isn't simply a:

  1. total misuse of CSP in extensions/theme
  2. underpowered environment
  3. invalid configuration of magento or environment

then I'm going to close this issue again.

gwharton commented 3 years ago

I can only reproduce this in production and then it only happens in response to general traffic from the public after maybe 24 hours. CSP won't be going anywhere near my production setup any time soon so I can't help. My problems seem to only start after putting varnish infront of my server. I notice in a lot of the debug sessions that there are some pretty large memory allocations going on, like 70mb allocated in one call which should not be happening inside CSP.

nathanjosiah commented 3 years ago

@gwharton Sure, I understand that some users are experiencing memory issues and are linking CSP to be the cause. However, as I have mentioned above I need to be able to reproduce it which so far I can't come anywhere near close. All performance metrics look good. The CSP header sizes being mentioned are 70MB, for comparison the largest CSP policy I have been able to see is 1.8KB.

gwharton commented 3 years ago

I understand. Im a dev too. Nothing can be done unless you can 100% reproduce the issue.

I had this in my debug log Allowed memory size of 1073741824 bytes exhausted (tried to allocate 67108872 bytes) in /home/ubuntu/www/vendor/magento/module-csp/Model/Collector/DynamicCollector.php on line 31. In someone elses logs Allowed memory size of 792723456 bytes exhausted (tried to allocate 33554440 bytes) in /var/www/html/vendor/magento/module-csp/Model/Collector/DynamicCollector.php on line 31 and Allowed memory size of 792723456 bytes exhausted (tried to allocate 48238592 bytes) in /var/www/html/vendor/magento/framework/Serialize/Serializer/Json.php on line 24 There are some big numbers there.

That just smells like some kind of recursive problem with the BlockCache load/save calls. Hopefully someone else is able to reproduce in an environment other than production, which is more debug friendly and can make some progress.

I'm not saying it is a problem in CSP module itself, its just there where it manifests itself. May possibly be something else doing something silly resulting in something running away with it.

Were you able to test with Varnish. I ran with CSP module enabled for a month or so, but only started getting issues after introducing varnish. I also have some custom written modules that use edge includes in addition to the navbar edge includes.

DynamicCollector.php on line 31 is the DynamicCollector::add($policy) call, so tried to allocate 67108872 bytes must mean somewhere along the line, the policy trying to be added is 67MB in size for whatever reason. Thats why I keep mentioning big CSP header sizes. The add call can be called from BlockCache::load(), but i was unable to debug that this was the source of the call.

Then, the other debug hint we have is Serializer/Json.php on line 24 is the serialize call. Is it a coincidence that BlockCache::save() calls serialize???

That is as far as my debug got until I decided I need to disable CSP to avoid my production site crashing.

Morgy93 commented 3 years ago

Production systems get crazy traffic with (good and bad) bots and stuff, but I'd be pleased to get rid of this issue.

Recently I came across an official patch https://support.magento.com/hc/en-us/articles/360050393371-MDVA-30102-Magento-patch-Redis-cache-getting-full- I'd like to try first. Maybe that helps in some kind of way.

@nathanjosiah

  1. total misuse of CSP in extensions/theme

Is there anything I can check upfront? Specific error logs, specific code, something?

  1. underpowered environment

It's currently the biggest server our cloud provider offers, so I can safely disagree here. Didn't even change anything, same "feeling" on every configuration, maybe it just takes a little more or less time for it to crash, but not by much. 😂

  1. invalid configuration of magento or environment

Anything specific I can look for? Would be weird if it's possible have invalid configuration for magento, but who knows. The environment is pretty much "default" and worked fine prior to Magento 2.4. Additions are elasticsearch of course and redis, but like I already said it's not up to redis, the file cache has the same issues - just filling up the hard drive instead of memory. Plus we went from php(-fpm) 7.3 to 7.4 - "that's all". (Besides that we're using nginx [webserver] and percona [database] by the way)

lost-in-trance commented 3 years ago

I'm having the same issue in production. I disabled my CSP whitelist and the issue persists, but maybe less frequently. Like @Morgy93 everything worked fine prior to Magento 2.4

onepack commented 3 years ago

@Morgy93 Here the same, all was fine before 2.4. A decent shop that had been very busy in the spring and summer season with 0 downtime. The shop was having less customers as autumn started. The shop was then upgraded from 2.3.5-p1 to 2.4 and within some days we started noticing this behavior. So we had far less people but we received OOM for the ones that stayed visiting.

Setup: Apache, Redis, ElasticSearch, PHP 7.4, Magento 2.4

All seems fine with a quick test that's why it took me some days to track this down. Reset the server, clean the caches, flush redis and all seems fine untill some hours later.

What I did to reproduce this thing was using a dropdown navigation with 24+ products in the categories. Opening all of these on the fly (0.5 seconds between opening) with the right mouse click in a new tab and after 8 or 12 categories they start failing to render as a category page because of the OOM. RAM is at that point spiking to 2GB per process and as that is the memory_limit, things start falling apart.

Like I wrote down, disabling the CSP module immediately solved this.

nathanjosiah commented 3 years ago

@gwharton While we couldn't directly reproduce this problem we did make some big improvements to how the block cache works with CSP. Can you share more about your environment? Can you provide the policy it was trying to add? I feel like this could be an instance of using too many inline scripts which would cause the hashes to be giant in the policy. Inline scripts and CSP don't really mix.

@onepack @Morgy93 I feel like this may be the same for both of you. Can you provide any reference to your policies that were too big?

For everyone on this thread, normal CSP headers are fairly small unless you have a massive number of hosts. Where CSP gets HUGE is when you have way too many inline scripts which will add a sha-256 for each one. Since this is almost completely user-controlled this isn't a problem that we can fix any more than we already have in the upcoming 2.4.2.

Unless somebody can provide a large policy that isn't just full of hashes I'm going to close this and conclude that there are too many hashes and that there's nothing actionable from us.

gwharton commented 3 years ago

Hi @nathanjosiah. There is nothing unusual at all about my setup. I don't use many third party modules. The majority of the customizations to magento are my own code. I have no idea what the policy was that it was trying to add. What I am pretty sure of is that my site does not have enough inline scripts to generate a 60MB csp policy. I suspect you are right though, without anything concrete, this has to just get closed.

I am convinced there is an issue where something races away with itself, e.g if you were able to catch it and debug, you may see a CSP policy with 5 million identical records, or whatever, where it raced out of control recursively adding the same policy and then ran out of memory. Most of the failed alloc's are small, but then there seems to be the odd massive grab for memory which just doesn't feel normal at all. If it was the case that I just had too many inline scripts, then this would manifest itself very quickly and very easy to diagnose.

Anyway, if it is a real issue, someone eventually will be able to nail it down, and this can be reopened with better reproducability.

Morgy93 commented 3 years ago

Sadly my questions did not get answered. 😒

@nathanjosiah @gwharton Maybe some of you could just tell me right away which line or data to var_dump() to get the answers you need?

nathanjosiah commented 3 years ago

@Morgy93 It's hard to say exactly since nobody has exactly described the problem but based on @gwharton's answer from above it seems like maybe https://github.com/magento/magento2/blob/2.4-develop/app/code/Magento/Csp/Model/Collector/DynamicCollector.php#L44 is a good place to start and see which policies are trying to be added. It would be called multiple times but that could be helpful to see what is being added.

dvershinin commented 3 years ago

@nathanjosiah example of large chunks of data inserted at the time when we had CSP module enabled. And if you look at it "from afar", you'll see very well a lot of repeating data :D

image

gwharton commented 3 years ago

Looking at that code, the DynamicCollector->add call seems to be where some extremely large memory allocations are happening. So, tracing back I think the add call is being called inside the BlockCache->load() call.

The load() call, given a block identifier, loads it from the block_html cache if it exists, and then calls dynamicCollector->add recursively for all policies it finds inside the cached block.

So, working back again, we're looking for polution of the block_html cache.

@dvershinin That is useful. That proves the fact that there is a block in the block_html cache, a final price block, that has recursively had the same CSP policy added inifinitum until memory is exchausted.

Next question, does it slowly grow with time, or is it a kaboom one off slip.

nathanjosiah commented 3 years ago

@dvershinin This could be very useful! A couple of questions, where is that data dump from in the code? And do you have this as a string or just a screenshot?

gwharton commented 3 years ago

Thats just a redis monitor session showing what is being written and read from redis cache.

dvershinin commented 3 years ago

@nathanjosiah I confirm what @gwharton just said. We only have it available as a screenshot, was taken while running redis monitor in response to OOMs, and watching those super large chunks led to the conclusion that the CSP module should be disabled ASAP.

nathanjosiah commented 3 years ago

I can finally escalate this internally again to investigate now that we have some lead as to what to look for. Thank you!

Morgy93 commented 3 years ago

I could provide this data easily. I have it right in front of my eyes. But it might contain sensitive data and seems way to big to just paste here.

Is there some other way to provide the data to you @nathanjosiah ? Textfile via email or something like that.

gwharton commented 3 years ago

@dvershinin I wonder if it is a coincidence that both of the redis dumps you posted to this issue have been for FINAL_PRICE blocks. @Morgy93, does your dumps indicate the same.

Morgy93 commented 3 years ago

Well I have multiple big strings here.. One like 1603821568.513097 [0 127.0.0.1:48714] "hmset" "zc:k:ff6_GLOBAL__CSP_WHITELIST_CONFIG" "d" "{\"script-src\":{\"hosts\":{\"0\":\"assets.adobedtm.com\" (CSP is mentioned)

Another one like: 1603821568.420745 [0 127.0.0.1:48714] "hmset" "zc:k:ff6_BLOCK_45EDE07AF2899A2C3FA6B22FF3F4A4358E07E13E" "d" "{\"policies\":[{\"id\":\"script-src\",\"hosts\":[],\"hashes\":{\"DRPIX1St3HlzIp7qaqCd0mKnffSRXLlx7EKnzYK09m8=\":\"sha256\"}},{\"id\" (There's "policies" like in the screenshot above)

Not quite sure what to look for exactly, but I'll search for FINAL_PRICE, might take some time, data is huge..

gwharton commented 3 years ago

One thing that I have just noticed. I have a category page with 96 products on it. There exists 96 Final Price block cache entries, one for each product price, however if I inspect the block cache for one of these final price blocks, I see the price block has 196 hashes in it. Surely that ain't right!!!

image

Each product on the category page does have one inline script, so there should be 96 inline scripts on the page in total (exlcuding those outside the product section)

Does each block cache include the hashes from the whole page in it, or just the block?

Well, after browsing my dev site from a clean cache for a couple of minutes, maybe viewed 10 pages, I just searched for the phrase sha256 in folder var/cache and I found 10,000 occurences in 108 files!!!!!!!!!!!!!! Thats a whole lotta hashes.

I only have 96 products spread across 15 or so categories!!

Morgy93 commented 3 years ago

@gwharton I can confirm, FINALPRICE* is all over the place on category page load.

image

Sometimes containing huge {"policies"... strings with lots of sha256 😄

(Props for using VSCode with remote dev extension by the way 😊)

Morgy93 commented 3 years ago
a:4:{s:4:"hash";s:0:"";s:5:"mtime";i:1603823124;s:6:"expire";i:1603909524;s:4:"tags";s:48:"bb3_BLOCK_HTML,bb3_CAT_P_1037,bb3_CAT_P,bb3_MAGE";}
{"policies":[{"id":"script-src","hosts":[],"hashes":{"DRPIX1St3HlzIp7qaqCd0mKnffSRXLlx7EKnzYK09m8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"dTfhw5hbv98iUnULBpgoHjKjPGlnf6eMpjVovvnVhEY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NBPeGre502RnRnmH91qhf4SGU+bHckeLy6rCRJcw3\/s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"rcXsl5FeOXpZs09FYY526L839d\/xOz5MRDcY2uzo708=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X5hqtigkvUAtm8zC\/HK3D4IG0Te4t4UczwlbBVYZbd0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"hwYVjk7fxeozHN2bQFkN2eEiWjzhbgxNvpeb4EvSPR8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NojipogrZ5eQJyLzBEDWYpm8zrDrzdHT42u2LZcV7WU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"EMLVA8dZU3JhFm3Fz0DNQG9Qw+UuUC\/M7gBrkGil+l4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"cYFFBdV5Sn6SV5Z9lFKX9TrIAYwnLPVuG9UgckdM1ds=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"4xvHTg6BXfoNCdtUUuYfRb4h3LiJNnHilC4uVcIsA7c=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wHVHu2x+o4K2g8x1oiftwwl\/dmZN7V40SfNaprwgLOE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"WCBYObmSb1TH1phJVxt+vT68ccMDS45kL\/3QWOEImsQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"fkLZIFFNVPXg1C1xWzG6XV3DqS5svXg6RZyFtKXN7O4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"AJZZt8ZG3CWnywuvDEyh+vmOonhT5GbCapGc2Adrp6U=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"di7xaJI6zXt3k0iK3GBuGBGjHXvd9biicS0EDbvRMbs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"io7xWcF3PwO2BCreBqVTvHMfDXuW2FdmcoDeYMj4F2I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DRPIX1St3HlzIp7qaqCd0mKnffSRXLlx7EKnzYK09m8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Dj34EihDTa7A6gnzLPpQr1xmYHruuhxz2GkcDCfneWg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kk4QY8bMyTA7PlGT4DnQoTGsZBY2pWNvn4tFHZoFPbM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xKubgny0q4+RCZVeId9Dc3GwLDsyFZnD3efvtoctaKE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kXYqAU\/30umvVoE5T3zWwzhp1v+wHThnIAq9ekUoEGg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"4C3emkJcNV3iMpf1DgQNsx5DM1+HK+8Lm\/FeR7VvUD8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CMu1WNqdwtH1V8i1PDhRqJSfi6nlYmYNG5D\/X4aDO54=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"LFTXoQy5\/crqlhJFJHeZns3qiSGbp+ql6r+YXIBp5bg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GSy7nvObJUVSnJmZF+FAHyPa6adnPZgK9DdSJswArbc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UKR7Vu9XhzMYZmBdXL8KMWBD3+GNQCOz74FXd0HInco=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HVb+xex\/G8haQitGtE9nHvFEi5KEP+CgH+qtm2qe7a0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"QaoxsK0DS8DUXnoRC+p2tZd8ka5McfdKyktkR7gjYsE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vx9zlfZye2pSIrUpzXNprgTza9qaXurVEN9HVoH\/Vf4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"K3FNjcOoeoWO9gZew1TOj6Z4IHQS5zXceWsSG7xWCS4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JBXhiEVyWvKEeyuAeq9OrOGmjTtPH6bqpkGP8hkr\/AY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5VN2wSi6b0CyP7Gx7Yc+yepmNSZlaGHWRXoTYbKkBxQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bbw6q90wFc0sXAMR2WetjxMqdeV2lLEW9BHE8t5D4K0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oWw5X+rXwtc\/L0fYM7MvnCtuDFYUF4EM69g2RMnaxSs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"di7xaJI6zXt3k0iK3GBuGBGjHXvd9biicS0EDbvRMbs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"io7xWcF3PwO2BCreBqVTvHMfDXuW2FdmcoDeYMj4F2I=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vx9zlfZye2pSIrUpzXNprgTza9qaXurVEN9HVoH\/Vf4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"K3FNjcOoeoWO9gZew1TOj6Z4IHQS5zXceWsSG7xWCS4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DRPIX1St3HlzIp7qaqCd0mKnffSRXLlx7EKnzYK09m8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Dj34EihDTa7A6gnzLPpQr1xmYHruuhxz2GkcDCfneWg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kk4QY8bMyTA7PlGT4DnQoTGsZBY2pWNvn4tFHZoFPbM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xKubgny0q4+RCZVeId9Dc3GwLDsyFZnD3efvtoctaKE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kXYqAU\/30umvVoE5T3zWwzhp1v+wHThnIAq9ekUoEGg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"4C3emkJcNV3iMpf1DgQNsx5DM1+HK+8Lm\/FeR7VvUD8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CMu1WNqdwtH1V8i1PDhRqJSfi6nlYmYNG5D\/X4aDO54=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"LFTXoQy5\/crqlhJFJHeZns3qiSGbp+ql6r+YXIBp5bg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GSy7nvObJUVSnJmZF+FAHyPa6adnPZgK9DdSJswArbc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UKR7Vu9XhzMYZmBdXL8KMWBD3+GNQCOz74FXd0HInco=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HVb+xex\/G8haQitGtE9nHvFEi5KEP+CgH+qtm2qe7a0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"QaoxsK0DS8DUXnoRC+p2tZd8ka5McfdKyktkR7gjYsE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vx9zlfZye2pSIrUpzXNprgTza9qaXurVEN9HVoH\/Vf4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"K3FNjcOoeoWO9gZew1TOj6Z4IHQS5zXceWsSG7xWCS4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"6jDJccwjaTgZg8bJDwk7N24F2WG+GWYMXorUBdSET20=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"MTrxyrl5CpfDiq6sHot5GalE163aAG5DqddiRwTtOg8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AWw183Yjnlg1kgO4mryXnmnfxa4j46g2zQccxsCFvV0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Zkv6gLfBCW7v8uHqmN3twP3uucT2wMZrpgviqDO1w\/4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"m38Zpk4JLH5WJi0Nc0xttV0FkOQpaaRo4NTx++74vlg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oGvbvxZrmZ6UD5o49CktadvmQUFBCXtyBTPjrwM1J1k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"j2vLFAAKem4eBkGyDFPK3q8ad2+wNpWAmXyFubpbGNo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"NzQ\/8nD0OR5\/h7dD1GQNa3OmIlGvrWKI+8fOcgd3FrU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"ntXWRXDUVqT27d4AydamTYTOf7FacX\/BBcYbWxdJdLY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CDEkrVfGU9IDWjhAadpBcDEtUzHYQCOeZuZnwcw23fU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"zXgcyKfIp\/gTGcL0K5c4XjOEWXlPrFMM7JLZ5R2BBVk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"7fJ2okUF8FKywYni5hGCReMqYtwqqlm8nmRhDts\/9zo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DRPIX1St3HlzIp7qaqCd0mKnffSRXLlx7EKnzYK09m8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Dj34EihDTa7A6gnzLPpQr1xmYHruuhxz2GkcDCfneWg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kk4QY8bMyTA7PlGT4DnQoTGsZBY2pWNvn4tFHZoFPbM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xKubgny0q4+RCZVeId9Dc3GwLDsyFZnD3efvtoctaKE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kXYqAU\/30umvVoE5T3zWwzhp1v+wHThnIAq9ekUoEGg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"4C3emkJcNV3iMpf1DgQNsx5DM1+HK+8Lm\/FeR7VvUD8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CMu1WNqdwtH1V8i1PDhRqJSfi6nlYmYNG5D\/X4aDO54=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"LFTXoQy5\/crqlhJFJHeZns3qiSGbp+ql6r+YXIBp5bg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GSy7nvObJUVSnJmZF+FAHyPa6adnPZgK9DdSJswArbc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UKR7Vu9XhzMYZmBdXL8KMWBD3+GNQCOz74FXd0HInco=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HVb+xex\/G8haQitGtE9nHvFEi5KEP+CgH+qtm2qe7a0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"QaoxsK0DS8DUXnoRC+p2tZd8ka5McfdKyktkR7gjYsE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vx9zlfZye2pSIrUpzXNprgTza9qaXurVEN9HVoH\/Vf4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"K3FNjcOoeoWO9gZew1TOj6Z4IHQS5zXceWsSG7xWCS4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JBXhiEVyWvKEeyuAeq9OrOGmjTtPH6bqpkGP8hkr\/AY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5VN2wSi6b0CyP7Gx7Yc+yepmNSZlaGHWRXoTYbKkBxQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bbw6q90wFc0sXAMR2WetjxMqdeV2lLEW9BHE8t5D4K0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oWw5X+rXwtc\/L0fYM7MvnCtuDFYUF4EM69g2RMnaxSs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"di7xaJI6zXt3k0iK3GBuGBGjHXvd9biicS0EDbvRMbs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"io7xWcF3PwO2BCreBqVTvHMfDXuW2FdmcoDeYMj4F2I=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"XVUbgrkbQ1okwId2u+LqW\/eha1O12nBHuTnW05xbvcE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"f2VSEbKaAN+S7UMKwa0pl5GhTaBuRywsRbMVJaCx1\/M=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CpqCjsvh3jdA857W7ZuNqTG7omn\/Jj0rhQ3JYi3dGQ4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"EFe2OkRJgdtBObteyXzsbz5Ufwl0rNj+1WLdEL8OuK4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"dXT9\/V5o1p4AsUABxV6EI214iaKHl9ZKNcK6UJTZG78=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YZnJ2\/53CsODxj8WqfQzAIwpTl2t3geGT779rxK4svc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"H8ktvVBFjFNA5qy\/Byzti\/EZtWMwN0I66BweW4z\/OK4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"PXCmNOPgsuypfRZaImrY+VKw1NSr3dyO1gk61LVYCos=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"V\/uqJhDTIPKKiLNIcumlah0bWNlCD\/38cNs+QPqEufQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"B+uU9gcqP++oKxppQDnTBBEQok3MEto11hPr\/+iwce4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HIuH1jCuOyPtbNLDpkoz6hc19+35lvPiUQmw4fbDcJA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"fMj28LCoTajPOilbZ0Xi3uRG++r8TifTna2ZilsSQJo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Kn60SpI6xTrvbOcBaxqz7tZv53lIw1ES+\/8+gDHTD3Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"yUoQ93IypmE\/2KLRLQkC6\/KpPu8fMxk6aBEvQtxlJyE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"LM4lfdsKBKqG7AY8X+4OEOWDR7O51D+afhBNnYQca0g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"gqo08CTi3OR\/p391hcR7lDhdjtRDPtO8MOMxeErEVmw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"zXgcyKfIp\/gTGcL0K5c4XjOEWXlPrFMM7JLZ5R2BBVk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"7fJ2okUF8FKywYni5hGCReMqYtwqqlm8nmRhDts\/9zo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PGJxaZWZL42m3ocVP1NWOFQDtd1mNc8xHtIgMyOmKow=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"luIfZiNGdvtHkW6krjuvxS1a7f+bta1yfFEp4s6EwIY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"tKp0Rt4lPTs7vo5PJHGeM37IxTtRBKOOZhO2QroocHU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DzTXF3mrtbm3ATd6FtgQRZfVpLfeTRuovgHqVj8YdBw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Vyu8StAPr1e5woDQ7xN5aTfkJ7kUaZdRaEgX3SwR1EE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"OKtMCKQlAmy46iQynyX8fCG9DtD+SlIOueQmRi6unoU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vA6KovmmF15sOxzmc1pEP0PdL2R5CXQWek7UzCGmziI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+XFfHLhIHyVeRtAYUJjoV0R29uiF3\/OjPo3OYSe20HQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"d4WnZ\/poQ4H1rH4VZerAc5qPBLjHuegwgl7M6AxpGSM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"zFVepDA68J4ZVKKZ4+hxjX7g0XnqrqkbEk3X1D\/3IOY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"xux2Lg8MgaTX3WDQxzshz0Pwoimcqtn0rLw33DVPokE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"dtsjgLYBPeuQhGLFbgUP88W9vm0roZCuvUE+KFJRaYM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"yZipGI7CiSv0DloRMEBycR4V4W4aF7NYjAejyTNqSUE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"0yO6f6kpHeIaStS5qrL4BFIiEn1Z5poGp0lgWoDlqRw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"m29FunuiKynElqT8wNgsRbQy\/78WI3tc0VHeClC4I+g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BO42xtbYvZSBleZ3uDCwF8OXGimNbPQjCjMYqxVua\/o=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"o5lOGtpErKG2ZTWB2Va\/Uzr1pPyJLISsQlKg1EYL+90=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Usz6MCvOImYgcJ4h8HaIZCrubYM1t\/rH4i6TFgBPKe8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLG+zHwzOCzt\/oIhOwqS\/jJdNzZsiTnFwVGbmSp1B5g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xRXJH1iAZE6BcaRtmSZHcNQlcWzAx87kmNH26GxDWIw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+xgOlA4vapTJHmmLJHGaN6iKRPADLGmlPBPLb5h9pIU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cqc+SJt8vcue8X6+pOmqQmnTHIkVATjqMMLKaE9qqBk=":"sha256"}}],"html":"<div class=\"price-box price-final_price\" data-role=\"priceBox\" data-product-id=\"1037\" data-price-box=\"product-id-1037\">     <span class=\"price-container price-final_price&#x20;tax&#x20;weee\" > <span  id=\"product-price-1037\"  data-price-amount=\"1.7\" data-price-type=\"finalPrice\" class=\"price-wrapper \" ><span class=\"price\">1,70\u00a0\u20ac<\/span><\/span>  <\/span>  <\/div>"}

"Does not seem to contain useful data" 😁 In case someone needs it..

gwharton commented 3 years ago

@Morgy93, Definately some repeating of hashes in there "9N89WMndeXJQQmez" appears 4 times. Besides this, its a final price block cache. Scroll right to the end to see the actual cache'd html. Theres no inline scripts in the cache'd block so there should no NO hashes at all.

All those hashes just to cache the data "<div class=\"price-box price-final_price\" data-role=\"priceBox\" data-product-id=\"1037\" data-price-box=\"product-id-1037\"> <span class=\"price-container price-final_price&#x20;tax&#x20;weee\" > <span id=\"product-price-1037\" data-price-amount=\"1.7\" data-price-type=\"finalPrice\" class=\"price-wrapper \" ><span class=\"price\">1,70\u00a0\u20ac<\/span><\/span> <\/span> <\/div>"

gwharton commented 3 years ago

Anyway, I think we have given the core team plenty to chew on. We're not gonna fix this today. Lets hope they can make some headway.

nathanjosiah commented 3 years ago

@Morgy93 You can send me additional information if you have it via a direct message on our community slack (https://opensource.magento.com/slack) You can find me as Nathan Smith

nathanjosiah commented 3 years ago

@gwharton On my test instance from above (https://github.com/magento/magento2/issues/29964#issuecomment-714640595) I have 300 categories which hold 25k products and I wasn't seeing any issues at least with Luma. Your screenshots indicate that you have many inline scripts so it could be a big part of your problem.

gwharton commented 3 years ago

@nathanjosh, Shouldn't the final price block, which doesn't contain any inline scripts, contain no hashes?? Surely it shouldnt contain 196 hashes.

Also, I don't have any more inline scripts than anyone else I would expect. I converted almost ALL of my inline scripts to js scripts because I knew CSP was coming, so I reckon I probably have a handful.

The category page detailed in my report above, with 96 products on display on a single page, contains 96 inline scripts, one per product, and all of these are core magento inline scripts. Nothing to do with me.

In your testing, did you delve into the block cache and check the number of hashes in your final price block's? How many would you expect to see?

Morgy93 commented 3 years ago

@gwharton I just reproduced the issue on Magento/luma, so it does not seem to be our custom theme. Maybe some custom extension, but at least not the theme. I'll try Magento/blank as well, just to be sure 😅

EDIT Same issue using Magento/blank:

a:4:{s:4:"hash";s:0:"";s:5:"mtime";i:1603825882;s:6:"expire";i:1603912282;s:4:"tags";s:48:"bb3_BLOCK_HTML,bb3_CAT_P_3748,bb3_CAT_P,bb3_MAGE";} {"policies":[{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UHt6Twf489VACiSNEstFWA3msgYbtgHcVdcAETt6+vk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bHBbvdp2WzX+7ksvb4RC6hnvYwP7UFO209rO3FQrUfY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UKDeP8VCYJtepWNvP7nRqDHPi7A9UQA03f\/Jco787NU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X7g9rrVYrAGpkQRZBKiHjWG6SX2BTo27qjrNiMGgPyg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"b4SM9TG0DnGJRdIB\/U2D3xkbsJoVHPNLNPYf6ZEihBk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"MaQTFS3Rkbpz9EG7HKJsESzGvetyGCDc0NqYX6m6xTM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Co\/QySrvpJ8l6+zNlpFvnPM2ICd\/IvxBZ1dHufzMcMQ=":"sha256"}}],"html":"<div class=\"price-box price-final_price\" data-role=\"priceBox\" data-product-id=\"3748\" data-price-box=\"product-id-3748\"> <span class=\"price-container price-final_price&#x20;tax&#x20;weee\" > <span id=\"product-price-3748\" data-price-amount=\"6.95\" data-price-type=\"finalPrice\" class=\"price-wrapper \" ><span class=\"price\">6,95\u00a0\u20ac<\/span><\/span> <\/span> <\/div>"}

gwharton commented 3 years ago

Just be aware, although it doesn't look right, the cause of the runaway memory allocation may be something else. We need to be able to reproduce the case where we have 60 odd MB of hashes, not just a couple of hundred. Showing the amount of hashes increasing over time in the same cached block would be useful.

Morgy93 commented 3 years ago

Well, the more pages I open, the more FINAL_PRICE_* is written with even bigger data in in. Above output was from like up to ten pages, now I opened like 50 to 100: mage---bb3_BLOCK_4C128791AB3E3F6E171D422A5ED5E3507C4572F2_4268_FINAL_PRICE_LIST_CATEGORY_PAGE_EUR_20201027_1_0_:

a:4:{s:4:"hash";s:0:"";s:5:"mtime";i:1603826370;s:6:"expire";i:1603912770;s:4:"tags";s:48:"bb3_BLOCK_HTML,bb3_CAT_P_4268,bb3_CAT_P,bb3_MAGE";}
{"policies":[{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"rL+Ir3ipRSfODodCC7DNeiM2gzIgS\/1xiuS+57eO0iU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"zatYH6g0seA9H7KdMZiWdH79GgDRdQCSVx8kkP\/OIm4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"rax\/LTLSMuKq6S6VOqPaU81Ms8sfeZ+iPoOGzN\/\/Slw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Q8248nWMmEWRZr+gbgYSmHnFKHshPlLhQHxT6oKMpXk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"SbGGPDqAUBh83A5UOZZCu6aQvX6VLttFmeDsDci2G2U=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JfhCUeF788fziXvZCfUQUcdZGWZUlI6WPNERsAvqsBU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"z\/wW1NRgqFm83zbfyJIfe5GkOxhhHcBCzAOQHB+ACac=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"9FjPEyX8qrM4M5cEycDNMVEQjmdCYMDdCuPHlJVVF7w=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UFZnZ8tDcc1S0ePrLUTd9GCmyuCsnle3jhgZWGq1Pio=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"nghdy8loA5Fv0l4oZgtOL\/WVscwNr9ZEmoP2UK5sV70=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"pCfRfGoVHEnbOPoKio4UC+hxDF6zMLHoFT7UHAiCj6E=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"rZqG4L+C+Z2WgYeVjKsj8CYoC7ltS7rFKUFxscj0fic=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Ybejb2sx7mhfS3ZVmbphewf+VPKEQ+0FAw\/zPfN10qw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"sWPZsROuWNRvsbtWWfyBByHVjnv9Mft40OpSpm894Z0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2uQhx2RwJ9mCcYWpSJkTkpdgsJden\/su8kVthv6cTKE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SzZXAR+q9NqXGw05KoqW18IsLnF4YJJ2i78RCIHa198=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"8erFoNuCA8LqegSgCDed85zTlk4+dmgTAFKa+aJUjVE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"nKDtK7WWsg+dO0uZ4LNW6p5QkLbPBBDGLwoTL0gW48A=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"14LPBVjXXdlvCrMhwFxuo9YmVKiC8xLMoqGHfFjhUNE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Kc8CHlWcJf5NMw8K+hHBrCa2eEoI4zR5e+DyRXyDXrg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Np0iQEwH6lNZynYwR\/9sUh7fG0sL4WHbyDr3SSiAKRs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"B1LeI+Y0bCvZ10\/+5qk5a88zseUsrXKDqi53ufblEdQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"svG6g7wAAeP4CKKcLd4ChpTY73pb6hfr8+hb4LM0FjM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"TtwfTBjmn38r0gV5z9lSLknH\/YMf0j\/XkG8xmn1GPcg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"hjAPp0fi30cL5XBnctf51A8dRTCh1ogdJAvSXOJ\/ja4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"9bBBqv+Ho+2Xa\/hccdhhRJOX2Ygm5OEs17gTFQlQ8\/8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xaMZJxfLoypmsXmxd6UCAbgmw6iiS83nRto\/goUx3sM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"uV7agOjb94WvHywL7jpETAON767y8E0bh5xxgFOArv4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JMOrIUPuCesrkNp0Z+AmS0T0FGNIx9YIXxhGFj6f0tk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"fluhAPd98a0laQTQEpwnNDGQ9zxOC\/uJ+UEYeIgpPy0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+y\/BU4KkLsqIpXVr7C\/PAIz1\/zqtvy\/1H+67+7QDNPE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cDMLhb03GsSA5xSoezd\/7jl9HMbLJVsihyEg3Z5+D5E=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"1Szor+OPvZWDsbnJiRnha8mTRBoQxl3AkbJNDPr2z4w=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1HIb0d1DCt5mPjhjwju8jG0aDINvW7rPUPTyLb+zBwQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wUZmC5W9K7KeWY\/fdvuDVU8Sv0GhfUR1uKt0JIw1whg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GtLriFSoj9eiM9yPDXYp3jg\/WtweFyEizWicGKXYbPk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DBZfw7O7PlyiLkGdmgGqrvgCoZHB7B+PdjcpGvfHvMY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QNI4hwMaOU87PewuK4RYWf08V08K0vjaj52sw2XM93k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eXuCTaT52UdD2Q\/VRqts3UC6TLmuvF1aQYnD3MtbEbc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AeoN12pGz2xoZ4LYd5R9GJyjRlp2q3JmV2lzZ8DPDzY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jT5pteUFjbO+XeSNRt3jCugVC5XQoPExhe2prEUaxyo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SjBRKSrehWTFLTxwtbQtWYlVLzh7P54l24zCwodr\/+Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xV3z2LVHBlwrSoZu1+2\/8h6ejbTunhWLxzvuVDIbpMI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"l99nrhLKhJ6I0GQ+mxGrglhbU7qqhIqc0krkOY2ZusU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"C9oEvVZo6UJIsPg+s4zBiyV1DyCxncwrbNFGKtFgpAo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GFRq0tJ9OaK38Krpg5nKLHjFnsd7gb9RkBAvZSFUz4Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ea99dJeGwqgl38ySGO47iMVR5MxU7KAtceM+Pswkrfw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"D\/pmp7WnkY\/uANYUEJdctuwYt75sQUCZN9e\/eQ448M0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"M3naBozpEpVbQH5xL9L4d6DmqTMf8mOONuqmmOJQw2k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"43SEeii7sp\/udh8rm0B9OoJNPpvd+p2\/BV6yqO0uCIg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5joU2LiaM1iRiAUR8iLzQasqt6A2\/8uK9trhWJWJYjY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PovbJ+oXKAsA470Qidz2sbuHEhZ+5si1A93IfaysnvM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"lb16jStwdjpRtsO2qMmR5FmAMVeD88ynlO7lrU3pOY8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"n+nURctodnsz6PSOqdAbq4HKHTkImdZ0yVMPhdJcjPc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"l1n1\/OBUDwr9jgjWzgeJxZA\/F9fu+e29SHbYyQaYwHI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wUZmC5W9K7KeWY\/fdvuDVU8Sv0GhfUR1uKt0JIw1whg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GtLriFSoj9eiM9yPDXYp3jg\/WtweFyEizWicGKXYbPk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DIkKPMQGnT4oVAyLLnDZwWY9as0nhXziwA1LersZbg4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cmoum1lh3w4T1SQEUzsYFCclzH4qr7dHn6QRmg79Ig4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eqb6Xn6xB9ElldK1JU6H+e+QaEdEpo+nkasIh7VaLRc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"OgqTo7Yy9YGggvBaN3vDssXtozVGf0GxjwIhDxIZeuE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"zo2gm4IYvnts5uVqZjqUdFtvGw50I03xXSZsZ0aENMc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oCjg2m7cWPXpWgN1WEVJwKSM\/x3CZJIdBtGYqtSPNGA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"uV7agOjb94WvHywL7jpETAON767y8E0bh5xxgFOArv4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JMOrIUPuCesrkNp0Z+AmS0T0FGNIx9YIXxhGFj6f0tk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"BNaEmwwtfCbao6ar7UkNcjYhV\/Zw7C3TaJejf\/W\/jIw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DVHyHRXbIE4DvJM1RCWhyfuHXaHfN2rlJS+lYI5fvms=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"8QL001XEXnVniCP5aUbiwI+mpZj3uVZoZDZl9vn7ORI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"hMsO7765VocimcUFfth\/HOYjaQriUhMtwkyyUW5nDOY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SzZXAR+q9NqXGw05KoqW18IsLnF4YJJ2i78RCIHa198=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"8erFoNuCA8LqegSgCDed85zTlk4+dmgTAFKa+aJUjVE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/Nc5pKABr7apPyqMWQ+Ebt4mXmGLvbdCCdUy4Sp1BTs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UuOlmuHcKn9RJ1N0tAOKfnBxpmeb21kP6K\/NnuCSyDM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"nKDtK7WWsg+dO0uZ4LNW6p5QkLbPBBDGLwoTL0gW48A=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"14LPBVjXXdlvCrMhwFxuo9YmVKiC8xLMoqGHfFjhUNE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Kc8CHlWcJf5NMw8K+hHBrCa2eEoI4zR5e+DyRXyDXrg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Np0iQEwH6lNZynYwR\/9sUh7fG0sL4WHbyDr3SSiAKRs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"B1LeI+Y0bCvZ10\/+5qk5a88zseUsrXKDqi53ufblEdQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"svG6g7wAAeP4CKKcLd4ChpTY73pb6hfr8+hb4LM0FjM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"TtwfTBjmn38r0gV5z9lSLknH\/YMf0j\/XkG8xmn1GPcg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"hjAPp0fi30cL5XBnctf51A8dRTCh1ogdJAvSXOJ\/ja4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"9bBBqv+Ho+2Xa\/hccdhhRJOX2Ygm5OEs17gTFQlQ8\/8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xaMZJxfLoypmsXmxd6UCAbgmw6iiS83nRto\/goUx3sM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"uV7agOjb94WvHywL7jpETAON767y8E0bh5xxgFOArv4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JMOrIUPuCesrkNp0Z+AmS0T0FGNIx9YIXxhGFj6f0tk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"fluhAPd98a0laQTQEpwnNDGQ9zxOC\/uJ+UEYeIgpPy0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+y\/BU4KkLsqIpXVr7C\/PAIz1\/zqtvy\/1H+67+7QDNPE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cDMLhb03GsSA5xSoezd\/7jl9HMbLJVsihyEg3Z5+D5E=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"1Szor+OPvZWDsbnJiRnha8mTRBoQxl3AkbJNDPr2z4w=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1HIb0d1DCt5mPjhjwju8jG0aDINvW7rPUPTyLb+zBwQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wUZmC5W9K7KeWY\/fdvuDVU8Sv0GhfUR1uKt0JIw1whg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GtLriFSoj9eiM9yPDXYp3jg\/WtweFyEizWicGKXYbPk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DBZfw7O7PlyiLkGdmgGqrvgCoZHB7B+PdjcpGvfHvMY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QNI4hwMaOU87PewuK4RYWf08V08K0vjaj52sw2XM93k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eXuCTaT52UdD2Q\/VRqts3UC6TLmuvF1aQYnD3MtbEbc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AeoN12pGz2xoZ4LYd5R9GJyjRlp2q3JmV2lzZ8DPDzY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jT5pteUFjbO+XeSNRt3jCugVC5XQoPExhe2prEUaxyo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SjBRKSrehWTFLTxwtbQtWYlVLzh7P54l24zCwodr\/+Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xV3z2LVHBlwrSoZu1+2\/8h6ejbTunhWLxzvuVDIbpMI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"l99nrhLKhJ6I0GQ+mxGrglhbU7qqhIqc0krkOY2ZusU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"C9oEvVZo6UJIsPg+s4zBiyV1DyCxncwrbNFGKtFgpAo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GFRq0tJ9OaK38Krpg5nKLHjFnsd7gb9RkBAvZSFUz4Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ea99dJeGwqgl38ySGO47iMVR5MxU7KAtceM+Pswkrfw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"D\/pmp7WnkY\/uANYUEJdctuwYt75sQUCZN9e\/eQ448M0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"M3naBozpEpVbQH5xL9L4d6DmqTMf8mOONuqmmOJQw2k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"43SEeii7sp\/udh8rm0B9OoJNPpvd+p2\/BV6yqO0uCIg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5joU2LiaM1iRiAUR8iLzQasqt6A2\/8uK9trhWJWJYjY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PovbJ+oXKAsA470Qidz2sbuHEhZ+5si1A93IfaysnvM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"lb16jStwdjpRtsO2qMmR5FmAMVeD88ynlO7lrU3pOY8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"n+nURctodnsz6PSOqdAbq4HKHTkImdZ0yVMPhdJcjPc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"l1n1\/OBUDwr9jgjWzgeJxZA\/F9fu+e29SHbYyQaYwHI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wUZmC5W9K7KeWY\/fdvuDVU8Sv0GhfUR1uKt0JIw1whg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GtLriFSoj9eiM9yPDXYp3jg\/WtweFyEizWicGKXYbPk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DIkKPMQGnT4oVAyLLnDZwWY9as0nhXziwA1LersZbg4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cmoum1lh3w4T1SQEUzsYFCclzH4qr7dHn6QRmg79Ig4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eqb6Xn6xB9ElldK1JU6H+e+QaEdEpo+nkasIh7VaLRc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"OgqTo7Yy9YGggvBaN3vDssXtozVGf0GxjwIhDxIZeuE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"zo2gm4IYvnts5uVqZjqUdFtvGw50I03xXSZsZ0aENMc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oCjg2m7cWPXpWgN1WEVJwKSM\/x3CZJIdBtGYqtSPNGA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"uV7agOjb94WvHywL7jpETAON767y8E0bh5xxgFOArv4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JMOrIUPuCesrkNp0Z+AmS0T0FGNIx9YIXxhGFj6f0tk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"BNaEmwwtfCbao6ar7UkNcjYhV\/Zw7C3TaJejf\/W\/jIw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DVHyHRXbIE4DvJM1RCWhyfuHXaHfN2rlJS+lYI5fvms=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"8QL001XEXnVniCP5aUbiwI+mpZj3uVZoZDZl9vn7ORI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"hMsO7765VocimcUFfth\/HOYjaQriUhMtwkyyUW5nDOY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SzZXAR+q9NqXGw05KoqW18IsLnF4YJJ2i78RCIHa198=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"8erFoNuCA8LqegSgCDed85zTlk4+dmgTAFKa+aJUjVE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GOY0AOSRQSaxUK+7W7NTyr4wBydmtEMFlew88F1xAZc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JKT1LpiF4ByBhh0qKJApnzNkw5s3w8mMFZv\/izqstSE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"nk+rqfSsgwixowCg7kVVFz4bfUqbEFaeX\/F3FsaSAvM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ExjGWeNNK2h4kmQ0dlmLTfzSwreGwUTf88fhIKfFCGk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"yw3OgL1HeZVe9kdq3lZnEr9X2CLsqUxOrxhb+G3R6XI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"z2WSY0CyWkvyqMxmewXEFH2whZ0X3A7sp7ebkP06NAA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/Nc5pKABr7apPyqMWQ+Ebt4mXmGLvbdCCdUy4Sp1BTs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UuOlmuHcKn9RJ1N0tAOKfnBxpmeb21kP6K\/NnuCSyDM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"k2kSmqzBLQQpAmHa5H1gn6\/jAO+HgbpHbHUxLGTodo0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1LQ6ULySO58zUJTpr54SdbCnVs8uDgvCicq5od42dhk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"VL6L+5yQ2XauojEG2wmZbfGjLb7Aot0Dm\/9dSsAIYg8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"14LPBVjXXdlvCrMhwFxuo9YmVKiC8xLMoqGHfFjhUNE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/SUtIAcYLhZNWjyklqtuL5SfrcP8Im3j2UmIU4GWCYo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"X3SV9DVEd+GvjuFs91f1HOO+iUjL9CQimfyrzRGatPM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"6GGkt+jnC+Mx66yuKZ1BGpDT5mCUbd55DKcev9xtyTM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"KdszF6mHFeHIVBUNkXTxSldqlVIIj1QciChSHyN1G7c=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"EV30vk0m6vJ4nWPRaI9RzKSnTFsTNqau7S\/e8x32HK4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UvnaXLLPRk6WEqo6XWGk3wznuXCmJVG7d4FhkTMGa7A=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"khR0tFbwkw0GNbXStBWlDb4oMfMgEpglgcQNqYvCUds=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"X3hep\/3bhdKBhRnKqsm+\/uQibboPjCVeydGYZAjYgNw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"FqlGmi5rPIncHJV3G8vcfDRrfR\/1bvnmG704htutftw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BBBqmuDK9ZRb\/k+q1AgThVQm9KO7kgY1SP15\/dGkHNs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"debWjL8T6O1tyRah6TFIomBEo+zRV9mhE8lACHoeGho=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GQta+7K7Gt4q6Jrdv4FpGFypRJQzeDG2x\/hHkw9w5Sc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jJsJYlK5o+q+jxgNNR8TirY5gODEuSedLxznpTiNX9Y=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"\/lQK33TVlEWbDSKiVSnlo5QHHbsP74SbTfxiXvHb0Cs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vFmEe4e2k9+79DbBEBpUKyqHNQJw7I\/Rc05EXCtcozg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"PO3oi\/UO5oMv9zzsPwwb\/QaHNk0zDOLePlKvqO58mug=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"G1zwgp3f0Gfw\/g9kbUSSOqeOm4r0DxNkN7ywwyoXx1A=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bOVYFnbQKJb11OKYd22H3Qq5A4FW\/vdlms23oT2omAU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"dK0zyMmq9QDcikHUCnBaXFSpHFImlXzijqEoZhQj17g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"m3F9etUaxIuhOiqJGar9MvTpyYoz6ae5WWogsXrfzFc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"3lQ+zfrinoV7TLz89QEyVnZoo0uVb1Lzq\/pd8UxkXGg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1vrkjisKK7FmBPY6bzkugXS7vl3l04s7GX6orfI3SlY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"oRtjtp1EspKFSXIAcMvPo8xOw+NYuSmjYS6BqFyuinc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"EfKFTZ\/Zag5CrLS8WbjL5nSbeRLmlT3Vh\/glxhBLeWk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"ig8yWgyNo8AqBBJtP9nCglLflHhu7uHlvlUOVmSKBaY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"IVB8zRLno7PggvgkDS52tYfY5xNqQYYw1tzvdFnIRP4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"UINUelowqIAUbftSc2DzIDJmBoe9Y31HgpZRg\/+GSxg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GSwgZhnki2b2Uj3zHLQpnLSu7+1Nxr2iaQe1dRN\/\/2Q=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"6\/y7xTclxsTGeu0PoffKPqHHE5EZ\/EaeiuXPCk0mnWY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+jjoX737LQal\/TYbNR27poX6Sssio4+V3ZLH81ZtLF8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"LGJzRy1Yy0j0aVsgiQUv1zAA6YmOb47KUbB4ley4CHc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"3uKHSCbUXCAxxnaD8\/fU4T44XlE5UXrbRcqs6W92I78=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"htF1oAkEQvT0ewZt1g7GbnJ7qQm6IjeVf15\/jgftLlc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tbn1VUuaqp6SaHSdpYOZRDdY+3WVbmsqg36uTNPj8kk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/SUtIAcYLhZNWjyklqtuL5SfrcP8Im3j2UmIU4GWCYo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"X3SV9DVEd+GvjuFs91f1HOO+iUjL9CQimfyrzRGatPM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"OWZNu9wl1dHh9E6Z4v3GLEvHW2AY\/J7VGRfrlGksA\/0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cg1nzxNCL4gUswUtmKv60QY\/gHlnNsPgwZPrd9JTSEo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DBZfw7O7PlyiLkGdmgGqrvgCoZHB7B+PdjcpGvfHvMY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QNI4hwMaOU87PewuK4RYWf08V08K0vjaj52sw2XM93k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eXuCTaT52UdD2Q\/VRqts3UC6TLmuvF1aQYnD3MtbEbc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AeoN12pGz2xoZ4LYd5R9GJyjRlp2q3JmV2lzZ8DPDzY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jT5pteUFjbO+XeSNRt3jCugVC5XQoPExhe2prEUaxyo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SjBRKSrehWTFLTxwtbQtWYlVLzh7P54l24zCwodr\/+Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xV3z2LVHBlwrSoZu1+2\/8h6ejbTunhWLxzvuVDIbpMI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"l99nrhLKhJ6I0GQ+mxGrglhbU7qqhIqc0krkOY2ZusU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"C9oEvVZo6UJIsPg+s4zBiyV1DyCxncwrbNFGKtFgpAo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GFRq0tJ9OaK38Krpg5nKLHjFnsd7gb9RkBAvZSFUz4Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ea99dJeGwqgl38ySGO47iMVR5MxU7KAtceM+Pswkrfw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"D\/pmp7WnkY\/uANYUEJdctuwYt75sQUCZN9e\/eQ448M0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"M3naBozpEpVbQH5xL9L4d6DmqTMf8mOONuqmmOJQw2k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"43SEeii7sp\/udh8rm0B9OoJNPpvd+p2\/BV6yqO0uCIg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5joU2LiaM1iRiAUR8iLzQasqt6A2\/8uK9trhWJWJYjY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PovbJ+oXKAsA470Qidz2sbuHEhZ+5si1A93IfaysnvM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"lb16jStwdjpRtsO2qMmR5FmAMVeD88ynlO7lrU3pOY8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"n+nURctodnsz6PSOqdAbq4HKHTkImdZ0yVMPhdJcjPc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"l1n1\/OBUDwr9jgjWzgeJxZA\/F9fu+e29SHbYyQaYwHI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wUZmC5W9K7KeWY\/fdvuDVU8Sv0GhfUR1uKt0JIw1whg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GtLriFSoj9eiM9yPDXYp3jg\/WtweFyEizWicGKXYbPk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"shdGXHIyrNjIgAKIvIbUJ7AQ57g3IIfQR956qwO2xPY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"7fQb6hZVPlHq9HZbH49ON\/gDHdugVhUOTLb67dVt9hA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"2si4VIY+2xZvdIQnBG+9jHcUq5YPiSJaRPugb3pNRPI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"MCNUzG5QhCCe3sO+PJ\/kblncTMMYhPOYSwVEmtoT4E8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"LP0m5IdFl\/+B8g7tTz+nmmDYwto24tLAvkeIoBxwL30=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5n5JiuXucs8NDuaujH8vDS6WH89VQLptx\/KIM1hSaxI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"qpJ+YDw4XMrv4u8mg7US\/+6QWUkEXW4AYlPJadhmtvg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"0a6zTUJxH+aF7SheGKEu09vKxwl45E1AE6vj+AaUZAE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"OWZNu9wl1dHh9E6Z4v3GLEvHW2AY\/J7VGRfrlGksA\/0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cg1nzxNCL4gUswUtmKv60QY\/gHlnNsPgwZPrd9JTSEo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"uarNC8FtBW0XPba8oqIrjGcEvIX8h0q3pSORs\/WydAA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"M6equMAZyly80IFBVSVtIfuKB\/MxRj16ic4UP0N3VqE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"a4YtxTR3mnp1iFkPbr1GUEcNpyAFQ26vx8\/daMK5HTA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"yQZ2FnvsqpzTq3czlyX4pDQ3yDyJibmG8S1FRGIBzHA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"BaifkKVkB3w4EhKs5ez7mnvnY5LdpH1REdhhZFWM6ws=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"NtsapNb2tegTkOVz83bJYdxJdVpZaMt8YDka6mtmV3k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jJsJYlK5o+q+jxgNNR8TirY5gODEuSedLxznpTiNX9Y=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"\/lQK33TVlEWbDSKiVSnlo5QHHbsP74SbTfxiXvHb0Cs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/4wBt+UwjMOSQikTIMlyqqatABAYp4sVAXEm1a1s\/Kc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9mHFW+HpoOMIBVUnhPynunvwClVuFQ1Yev7Zhjvclds=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"6GGkt+jnC+Mx66yuKZ1BGpDT5mCUbd55DKcev9xtyTM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"KdszF6mHFeHIVBUNkXTxSldqlVIIj1QciChSHyN1G7c=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"EV30vk0m6vJ4nWPRaI9RzKSnTFsTNqau7S\/e8x32HK4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UvnaXLLPRk6WEqo6XWGk3wznuXCmJVG7d4FhkTMGa7A=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"khR0tFbwkw0GNbXStBWlDb4oMfMgEpglgcQNqYvCUds=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"X3hep\/3bhdKBhRnKqsm+\/uQibboPjCVeydGYZAjYgNw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"FqlGmi5rPIncHJV3G8vcfDRrfR\/1bvnmG704htutftw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BBBqmuDK9ZRb\/k+q1AgThVQm9KO7kgY1SP15\/dGkHNs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"debWjL8T6O1tyRah6TFIomBEo+zRV9mhE8lACHoeGho=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GQta+7K7Gt4q6Jrdv4FpGFypRJQzeDG2x\/hHkw9w5Sc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jJsJYlK5o+q+jxgNNR8TirY5gODEuSedLxznpTiNX9Y=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"\/lQK33TVlEWbDSKiVSnlo5QHHbsP74SbTfxiXvHb0Cs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"T4lvg3RBWrmbWAJzFlnXB7YEuijiTWviMdRBEDX4Xpo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"kYJtRh\/r8jHteJBV0Vcptou9KLpek0pOor+jrsYAdBI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"43SEeii7sp\/udh8rm0B9OoJNPpvd+p2\/BV6yqO0uCIg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5joU2LiaM1iRiAUR8iLzQasqt6A2\/8uK9trhWJWJYjY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"DBZfw7O7PlyiLkGdmgGqrvgCoZHB7B+PdjcpGvfHvMY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QNI4hwMaOU87PewuK4RYWf08V08K0vjaj52sw2XM93k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eXuCTaT52UdD2Q\/VRqts3UC6TLmuvF1aQYnD3MtbEbc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AeoN12pGz2xoZ4LYd5R9GJyjRlp2q3JmV2lzZ8DPDzY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jT5pteUFjbO+XeSNRt3jCugVC5XQoPExhe2prEUaxyo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"SjBRKSrehWTFLTxwtbQtWYlVLzh7P54l24zCwodr\/+Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"xV3z2LVHBlwrSoZu1+2\/8h6ejbTunhWLxzvuVDIbpMI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"l99nrhLKhJ6I0GQ+mxGrglhbU7qqhIqc0krkOY2ZusU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"C9oEvVZo6UJIsPg+s4zBiyV1DyCxncwrbNFGKtFgpAo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"GFRq0tJ9OaK38Krpg5nKLHjFnsd7gb9RkBAvZSFUz4Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ea99dJeGwqgl38ySGO47iMVR5MxU7KAtceM+Pswkrfw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"D\/pmp7WnkY\/uANYUEJdctuwYt75sQUCZN9e\/eQ448M0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"M3naBozpEpVbQH5xL9L4d6DmqTMf8mOONuqmmOJQw2k=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"43SEeii7sp\/udh8rm0B9OoJNPpvd+p2\/BV6yqO0uCIg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"5joU2LiaM1iRiAUR8iLzQasqt6A2\/8uK9trhWJWJYjY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CV85ilGfjnoekhjqhPwuxJcO2FeCY8jgK\/m\/iGE7rvw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"15p7T2QFp70zkz4Ai55HRGh7nxTedPvYMKlVvr84vBw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PhzNFhuSl2cL18e2WxFdWcCkzuLPt637p6E61U1Shkc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jUUMJnveYBNime4MrNDA324JaAhhhUbsTojOWOfVdSM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"D8BWP3Ayg5RKvz7eAHLik5MDvlXTiPzqHYyRkqdQ+aY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DbNMgbfHJ+JVkrm9ee1jlSQF\/b4a9UCgDmxQakj2jWQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"CC\/\/8iwd5GwNhyfbSQinCzbVT4NEh9mpuTtdoI7OMUY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"NLtrNb5jR2aCQjKJ8mowI6g3uWcdxPebvASwXAUHe8s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s3suKAwvOvZ\/mk95wgYcxJUqYbT3Wu3GAewd43fvURE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"eUHAyNXOU0JS4SLMF+lBP49bTpWG\/79vqJM+eIyu8ug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2OdmfQ9IOiiHM2oj67BI3joTig4VLsfbb10ozGAQWz8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X9T6zXdR9POm5ewX0S5GC2fadErXyGxpw8g9Ly2bNR4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"s5a\/xjdHPNIZf5gsPzhl3DFrsrlwo6C0te2RYuznlAM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HQCuiYJ5PnU6QLII2WXyNjE24sC7nx9nFVIoO16xxcs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w0UZpHmR72n3fM5BODRUWPz2cTFadPCJGLd81Ofw5yw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+Qqk0kWU8jcUm0GdzRq5AUtXxBdhAjxNYv0zd5qWXpk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"bHUrxzD72pUCO\/OqjoWRMnRv85t7F79v0+2rXqSQ6rs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"5ffxYWsfhElr1b5S3e++JKtNsPqZcLgz5rzDRDoV7vc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uv0gwDTUCHnHFItm4tGvxTP2Bi6FbRctHwXGxP9z8h0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"jEaNOnCdB\/sfUR5VfSlduxoIg5oIvjSOYKXOpKvr1JQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YaY6BqlrhZ6C5LCtNbwvUM77fiG5HkFpz8fod27xYOU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Y0DbzhLZ38IVFi39LMiNIdAaVJn922lJObr2lfsqPh0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JhiK7yBk6b4u5GnDBGZBt634Ad6GUOBbGv0M\/ql62uw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Vqr7a\/ZL\/NN1XoIa3dh2AggbCNj7QtOmx1VTyRRQzSg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"XtMTCf9qvIis\/lmeqZVNi\/jw4EnwNEs7tenldLuszPM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"k2kSmqzBLQQpAmHa5H1gn6\/jAO+HgbpHbHUxLGTodo0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1LQ6ULySO58zUJTpr54SdbCnVs8uDgvCicq5od42dhk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"qne5DOr+QQxgjCWdF3raVBoO929W+LdkGYoSrxkEzaU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"P1pW8PD0MyDn1UhmI\/XxrVvzPSqvSyQ+KA3JbB1Fj\/c=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"UrxCWQeFkJ7h5Puwbemy+rCH7Rf1bDky8AMlx7ynFLc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GwflvWXl7pf1i9vWos2b0N1et9hgUAc6VvwbVE0r02w=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"G5o5nI37zFUCtcYHjg9Fs7ONJwj6XQaDN70ZvZ3MGDs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"oAGSiYgkCnFH6vjHBjJQ+QgzuTVkfvIsBskd8tn44ZU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"FeyOEy0nn8eDsFk4B4X1GMwESBIYF1VDzsDjYmbqWP8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"TM443a2xzddvUNxASVWCNsvPyeBBbDrd6stjl0PKi\/w=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"crE6Z4RRbL0r7E7hK1BGjD1fe3Ixwwse3Mvhu+E6p2I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"WfMhQO6NwHtsUOid\/9f8040Qnez5Sgs+gC1z7UTVuKI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"T7youB5c8+PsuSXiAQ3Tf3XFLk4cHhus2nWENinHvCo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"ZRYzVyC0BlDKvLKUd02sDZGAd5URn3ZscP3WUERwtDo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2Qz7CxiWvi8F9PETItV6vbq7KXE+\/zS5wHo7LGW\/0wY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PRpsoLJfiCFKzsT+JkA\/GiRoD8oaKe8ay8WhJSigv8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jODjikYO4blXol3nYku\/f4zFbFeAODfRkg4PiiPsLzY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CuRhY\/tbOv9ALphCPX8DRoan4snx11iVUfYQ1x29jVQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"mk3hJNEyKzaELZjQUQkesjIbFHVJCcv4aIfGbkp0K4A=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"s8CJ8sZXuRxRbIelkQExgB7fiKsWvrEe1X2UByq8jBQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"4R13s3nylRoKq6Qa5gtgGyUipFe3s+MFdOEaAkpTOVU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"iG4hnjajDh9zDPhPG4IrQ8CUOvtuf6j0CIQh4\/Ys2vI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"0EXQwOXm+W\/Hn8TrPwf8W17rQcvxB8g+m\/fQOcXmjn4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Ck1fB9q1iRAdVj6a0elTKMDsGBv7g\/Otme2C09Kvqm4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"kvi87AXrnyKq4liOtD7yRN64fzZ7URGbLzJjvj20wUk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"8cw0ZO69wj8ZFi0oHFgJ2ewf6IvlC55\/k2e\/CCAL83s=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"VDd3xG7W0mtTKhvoGmWBnxavEr+7jg0Oj310YAa8rx8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"0RqqcXPsHwaxPJDSQsM\/\/v9EJe8o0iHl91aILpdZDU4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"AIZWscJW7m59An4vVqmbl\/nQMLd+nu5O0gNONgAM+kk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"j8MaQUgSK+6rfqtAxlWqDNkmcVSwWgKmEqTKiXb4VqE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"rxzRAJgjmcYkKStG++UfS5s6XIEPyeCKpItovrbriDI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+IibBwl0dkl69YnGPRV3H9uJZ9RwJm6Q9dFfJB8f9Fc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"aapkkFwKKETJjsO5DBrBg0jn+cH4kKaTtxqxGSVO2uE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"nU9htl5pAklLCk2bs9WNMTU78P7RKqC6YwATfbulRug=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YYdhEA3tWt9NxIVp0loF01F9Y0s0tSkXVoj2PfgTCcc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vXeKtE9NAaGLC8fW7kuBcgPWZ4yDFVbZZsDCtgGg1cc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"j+8OcuQRZQQyouMozGtE7pRLrjqQ+k2lQiG476qrmTo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CULikWYdTQC6vOh0Z8YorG94KHMt85w6f5BysOCXhWk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"jE7o2Xr7UANQ6n2tnS4zDXlkIrL\/AwnBBViFlUtY3cw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"\/tLhyWw0WBw1ZkI8uCq13\/LSAPwyjXIwaD86m\/UbKKA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"sWB+BZ6KkgGawBMgcrn\/3GBLjTBJzJpNeDNcx4SbdGE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Fxrq4jqJ+glimBkYbLX8bF8DjRTlLg4miHStbbPO+0g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"smGB2HGAmNXY0H7Bu024CHaoNLMi994sgrNoSKDMCPs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+QPN4Ndme4iWexpzeojowsoj\/17LHtF\/hbNPUgxgbX4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+yk3niZjiVqvOsKme21qaQKyG43mObD4Rxu01Z7VSOE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UHt6Twf489VACiSNEstFWA3msgYbtgHcVdcAETt6+vk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"0fg4E8nQg8UmKiqlsB3oUiVWnvFS5gzUIsgNWbXcDsg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"O\/ZC4KauxkIwxcRyXPm\/YZZppxQGyHw8AW67faNgcmI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"xyjmu+Xucf49orhRHlT4bgIMBTjUmriN6ueDbnOQwME=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"TIMeNvEx56xhp1+0jNAMHlWCE\/\/O5LY0E7rEiP\/bP2U=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DelUjqQ\/A7vkP9+\/9g8k6\/vfhdLId2wYftpGuwDTBiE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"qgQP0MLMUPzE3ZTmlKXmxWoRaIJ7zc+IFvsm+MpXGqQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"+QPN4Ndme4iWexpzeojowsoj\/17LHtF\/hbNPUgxgbX4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+yk3niZjiVqvOsKme21qaQKyG43mObD4Rxu01Z7VSOE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bg1vJ2zTo+aIydTuXmnlpBujt7cSrHLyYPUMso3r32I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"wFGMkjFBdKypwXfKIsL3M6IWrsBJQf9j0AI21D4z498=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"XDTKxNd\/vSUj6FYSVx3fIm3I2OHAMQypG\/nwUm53viQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2GJB3JDy4K3FPZFAeWnDBKUcgMmAT9ku4u+qr2QPGOE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UHt6Twf489VACiSNEstFWA3msgYbtgHcVdcAETt6+vk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bHBbvdp2WzX+7ksvb4RC6hnvYwP7UFO209rO3FQrUfY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UKDeP8VCYJtepWNvP7nRqDHPi7A9UQA03f\/Jco787NU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"X7g9rrVYrAGpkQRZBKiHjWG6SX2BTo27qjrNiMGgPyg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"b4SM9TG0DnGJRdIB\/U2D3xkbsJoVHPNLNPYf6ZEihBk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"MaQTFS3Rkbpz9EG7HKJsESzGvetyGCDc0NqYX6m6xTM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"Co\/QySrvpJ8l6+zNlpFvnPM2ICd\/IvxBZ1dHufzMcMQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"OuRpZ91sNpKKSHP+SxyQFv095Wsd+EQtIQQYsXBBrxY=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"cQjdEiZxq7KDhDgdPHvbUhGs+RCFWvkTKTGRKf2Wn6I=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"kLIpbCjkrMFBJsfAgHv7wsCHr7Nk5Ens6iIwtBOnazU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1HRBluWIFJ1xWLstWY9QE2Ha\/BzU0ecQ1L7o3QYDIr0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"WIgN\/rMDOhlmkIdxIYqtDs7H0yFGpLEIa98e26i6jv4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BxjNeqEl0JN2fp+APYNysActG8ng+3cEwOVY\/IVQy+o=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"M9XY2s11yVsNA5J\/w\/pHr6DftzxYvw10T\/5m\/sZbv1Y=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"PtDZNvrk8B5Sl84jh2raykLRDJFuRLTQidAlCKUGUOA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"FXgfTPtPCBTFcBzjcJyxs97D5VcJThokUoubQNwad00=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"zS9cEwHeZLNG70uyg7vgpXtYP43pU58o\/fLjpnmk8n8=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"XDTKxNd\/vSUj6FYSVx3fIm3I2OHAMQypG\/nwUm53viQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"2GJB3JDy4K3FPZFAeWnDBKUcgMmAT9ku4u+qr2QPGOE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"xAQ8xolqRUR\/8rtJzTA9JtR2qncvalFfuVvVRmCkCts=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"MRL3\/ydmXpxXrs\/ejxaw1BvzbMqxaMSkdqIXHTIsaDM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"hYn7enlsoCkR7pSoFFpcq41vP8ZlSItd\/\/W1xi8Dc6g=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"pvP1HR8wMBVZ9dcYyING+y2TGc0NLQpN1aHWvfiZTGw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"dNOg38KM39E1L+q\/36ahLh8t62neovlImxUTREle0+8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"HOReMc8n50i2wjuuEdW\/BFRL9p9DXPx7sks\/cEFSjqU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"yVm52Nm1JpNjMvthHMJfDqd1WnhZ9g\/ZwSLdzLdNAXM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"wMOTSbVMl2JKhinCcg9lZ6vUctbjGbBUP\/ZCCI58WFs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"qT3Ti0reC7LdovbzHog0lEXipVkUq\/R7hraof6BMFSo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"61+8pGQO8bNBVczEX+kE8NNj2zKrI8ILvCbi2Xl6gKU=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eoEDO\/rPO7qz5Bv4WnYivn+V0UJ+XbOWNtquAkqGdK4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"RN+tsUvCFAQTkl3gah7R57\/IGRmw3i8ZnDesvPgn5U8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"MdGqhkkuiD2q+h1qM8A+GxwHuD6tGhwxWPntervhRWU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DKRVlpnP8KcQ+ldK3NQROSOOs+CV5b2IgvuuRWlOFEw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uVsp+4vD8wytnvGnQp6P621u3eXUtul21f7eiFR1FoQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"R3SIAn51NwZ8UGRW03v3Mc6pr7qPzJjGS7HUkBGwozo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"pM\/C9+SJccAlUnpjlQkGWNBgJU2MF+FK2A71v5kaUvI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"V\/q5B9uD6uYOKiEs0P2uvKGBAEfvNdFlZCHM9fmDAzA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"e5G31H0hVv86N4T6P32Rk37EOIis8ygbmizYMIptorc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"J\/2AP1Ag0PPn1xJ9jICYp6rkMgG\/ay2N1eDKod3MP5k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eiBht65Y8Ck0v9jSzXJ5hSaTmtBiD0ZD5AF\/ue2wOlw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"0uyVT0KuHc\/dj9Gd18yef250uAomdxnswndtFgKSHi0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GXSG8Rtv3julJTPgEe1xYP6F560VUfGPYNaErILFtGs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"T6EeE8MJchtPPQK6iMPC+D0U9MpUeJSwbsz+Lz9g1po=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"wzFiLtTQ8hWUtwtW53Hra8s8qLehtHfGdhHR8qmHXbg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DjdFEMoGYUylWdf4gDD7QZy09AoLRm5rKQgxdXCMOQE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"qsaYU6\/Pbl3rqz6uF26zuqbjlQlNzNxA1mvB\/hdhkP4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"aA6u9HI5O1wnNJVlQuvG3snJZESZYzHhYaQPPY3usHI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"d+5FbydvvslnWYT6QBusdE9z9vp0G9Qw+P0Exeh0\/tk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bIwFNlxW6AF6Vvzh9UlHqmvHdK1Vj1qTfOzGp4YVSqE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w5t8wAOdLxDLok7clYIj2IucMMl1r9NxvvEHsOr65UE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JyoSj\/O3x7PyKy8KmWOUueLm9p8AR607BF4KYdEnWWE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9+nGFm8j8McuNQg7DC+RWHe8MYx0pFL4BPGZpONP9sA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"9sBty2rR0dzQQERFuZMGUxEpulCYJ3bv0Ro1F2oDTKM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"0VCmke5rEDVkFuoRRZi6aJ2AiCX8fp\/9d4ki5iPUbp0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"W+EdnZzf0clSZGtLXTnQOJHLhaiEVqMuPcmm96z6NFM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JfI5ag6eUTVzO6saHhiXWncFzlUb0YE7JBEANuhzz\/M=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"29BazwdYyBz25132Q8m3shOzUpVMqOLIWCsfTTbJuP0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"q3DTu33Narv\/nh+ttB48CDnAtw3mzz\/jQP7btHDLQuo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"ZDEuMVGaJ4SlT+wl5\/rPnqxsm5YCqQHujLhAj8eirsg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GUTqsTIDLAt5hRiBDl8k+oSo3jlMwculmbhTZhTfX+U=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"sP3hMyjUuijvvy+CxCDbygsSpj+XfzRmFvqlciFO6ME=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"qXgExhXl5iwYqg2HNvJJF\/xKZKXEOOzn6XNRpbkDnDs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"099Vbww85UCRHhhlKN0Brls0Tgqb3N48459rkERY+z8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w33nUZ125RNw\/Nlqo1i4u3NxPQNHHVBlgYsrx4NE9+g=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wXVS25na\/IYNs4+eDzQxpPk0LyrDPTHLigK8mM\/3kJQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"p5GxyBLr\/KfblZEaoVC5z0+zpOn7BQ20XAFv3zchdXQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"y0ChwkPb5ffjRqZY4DuSHKaVHciTtuj6PB1j+INzooc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"H3oJHoSojj7HwPMRCrq0qqcQr9UXESisxK6FcmIW0jo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"1k52IX6XtHCoJY1Xgjhhh8k3vDVuTUmibNdQpSKdN38=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UnvQucq0d\/B+LFdzE3RaX0pQyZ0xhNMpp+4MhqTk6uk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"upidrFJPeKxA0\/wzQN6GmEvIoEpgjGyIFyPvY5gmTNs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"vYGtdyfj3jbHEGHZigUVl47hsiVQ3+F6F9zKXD2gtvY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HVb+xex\/G8haQitGtE9nHvFEi5KEP+CgH+qtm2qe7a0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"QaoxsK0DS8DUXnoRC+p2tZd8ka5McfdKyktkR7gjYsE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Kn60SpI6xTrvbOcBaxqz7tZv53lIw1ES+\/8+gDHTD3Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"yUoQ93IypmE\/2KLRLQkC6\/KpPu8fMxk6aBEvQtxlJyE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QlvahmeRtBmXXfb0Ct+HIPXxm2xwk\/LweR\/8HMpcxzs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"\/Jq0B4tGNhJSDbXXDHQXAOLHHn\/gxjWc6jYi8Bu70eA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"qT3Ti0reC7LdovbzHog0lEXipVkUq\/R7hraof6BMFSo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"61+8pGQO8bNBVczEX+kE8NNj2zKrI8ILvCbi2Xl6gKU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"vx9zlfZye2pSIrUpzXNprgTza9qaXurVEN9HVoH\/Vf4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"K3FNjcOoeoWO9gZew1TOj6Z4IHQS5zXceWsSG7xWCS4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HIuH1jCuOyPtbNLDpkoz6hc19+35lvPiUQmw4fbDcJA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"fMj28LCoTajPOilbZ0Xi3uRG++r8TifTna2ZilsSQJo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"CMu1WNqdwtH1V8i1PDhRqJSfi6nlYmYNG5D\/X4aDO54=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"LFTXoQy5\/crqlhJFJHeZns3qiSGbp+ql6r+YXIBp5bg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"90mbpkYHPGofn4qoYtgpE+DxOSB1EQxGrZXtMFoFNek=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BixT9\/My0oid5N8iaHFfmK44OoePRs8FXsT+dMFwJBA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"+eOPbWI51ymlEg1m\/illos\/R98OhSfvLspX6AmmvR8I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"48sb4Je7XoTlJimO7pm\/+fwXo5BBI6oU4Vci+QqK2\/I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"tb6kG2xiP3wJ8b8k3K5Y66s8DN2QrZZrxDpFtEhn4Ss=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9N89WMndeXJQQmez3zcXupuWhb0jRtPuHYgRtBa1Cjo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eoEDO\/rPO7qz5Bv4WnYivn+V0UJ+XbOWNtquAkqGdK4=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c8Ij5t9\/zUtzJCMGvtHskt0GR+vfE8JqEqTFLmfEKOM=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"RN+tsUvCFAQTkl3gah7R57\/IGRmw3i8ZnDesvPgn5U8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"MdGqhkkuiD2q+h1qM8A+GxwHuD6tGhwxWPntervhRWU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DKRVlpnP8KcQ+ldK3NQROSOOs+CV5b2IgvuuRWlOFEw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"uVsp+4vD8wytnvGnQp6P621u3eXUtul21f7eiFR1FoQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"R3SIAn51NwZ8UGRW03v3Mc6pr7qPzJjGS7HUkBGwozo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"pM\/C9+SJccAlUnpjlQkGWNBgJU2MF+FK2A71v5kaUvI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"V\/q5B9uD6uYOKiEs0P2uvKGBAEfvNdFlZCHM9fmDAzA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"e5G31H0hVv86N4T6P32Rk37EOIis8ygbmizYMIptorc=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"J\/2AP1Ag0PPn1xJ9jICYp6rkMgG\/ay2N1eDKod3MP5k=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"eiBht65Y8Ck0v9jSzXJ5hSaTmtBiD0ZD5AF\/ue2wOlw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"0uyVT0KuHc\/dj9Gd18yef250uAomdxnswndtFgKSHi0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GXSG8Rtv3julJTPgEe1xYP6F560VUfGPYNaErILFtGs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"T6EeE8MJchtPPQK6iMPC+D0U9MpUeJSwbsz+Lz9g1po=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"wzFiLtTQ8hWUtwtW53Hra8s8qLehtHfGdhHR8qmHXbg=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"DjdFEMoGYUylWdf4gDD7QZy09AoLRm5rKQgxdXCMOQE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"qsaYU6\/Pbl3rqz6uF26zuqbjlQlNzNxA1mvB\/hdhkP4=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"aA6u9HI5O1wnNJVlQuvG3snJZESZYzHhYaQPPY3usHI=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"d+5FbydvvslnWYT6QBusdE9z9vp0G9Qw+P0Exeh0\/tk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"bIwFNlxW6AF6Vvzh9UlHqmvHdK1Vj1qTfOzGp4YVSqE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w5t8wAOdLxDLok7clYIj2IucMMl1r9NxvvEHsOr65UE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JyoSj\/O3x7PyKy8KmWOUueLm9p8AR607BF4KYdEnWWE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"9+nGFm8j8McuNQg7DC+RWHe8MYx0pFL4BPGZpONP9sA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"9sBty2rR0dzQQERFuZMGUxEpulCYJ3bv0Ro1F2oDTKM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"0VCmke5rEDVkFuoRRZi6aJ2AiCX8fp\/9d4ki5iPUbp0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"W+EdnZzf0clSZGtLXTnQOJHLhaiEVqMuPcmm96z6NFM=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"JfI5ag6eUTVzO6saHhiXWncFzlUb0YE7JBEANuhzz\/M=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"29BazwdYyBz25132Q8m3shOzUpVMqOLIWCsfTTbJuP0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"q3DTu33Narv\/nh+ttB48CDnAtw3mzz\/jQP7btHDLQuo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"ZDEuMVGaJ4SlT+wl5\/rPnqxsm5YCqQHujLhAj8eirsg=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"GUTqsTIDLAt5hRiBDl8k+oSo3jlMwculmbhTZhTfX+U=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"sP3hMyjUuijvvy+CxCDbygsSpj+XfzRmFvqlciFO6ME=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"qXgExhXl5iwYqg2HNvJJF\/xKZKXEOOzn6XNRpbkDnDs=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"099Vbww85UCRHhhlKN0Brls0Tgqb3N48459rkERY+z8=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"w33nUZ125RNw\/Nlqo1i4u3NxPQNHHVBlgYsrx4NE9+g=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wXVS25na\/IYNs4+eDzQxpPk0LyrDPTHLigK8mM\/3kJQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"p5GxyBLr\/KfblZEaoVC5z0+zpOn7BQ20XAFv3zchdXQ=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"y0ChwkPb5ffjRqZY4DuSHKaVHciTtuj6PB1j+INzooc=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"H3oJHoSojj7HwPMRCrq0qqcQr9UXESisxK6FcmIW0jo=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"1k52IX6XtHCoJY1Xgjhhh8k3vDVuTUmibNdQpSKdN38=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"UnvQucq0d\/B+LFdzE3RaX0pQyZ0xhNMpp+4MhqTk6uk=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"upidrFJPeKxA0\/wzQN6GmEvIoEpgjGyIFyPvY5gmTNs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"vYGtdyfj3jbHEGHZigUVl47hsiVQ3+F6F9zKXD2gtvY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"HVb+xex\/G8haQitGtE9nHvFEi5KEP+CgH+qtm2qe7a0=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"QaoxsK0DS8DUXnoRC+p2tZd8ka5McfdKyktkR7gjYsE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"Kn60SpI6xTrvbOcBaxqz7tZv53lIw1ES+\/8+gDHTD3Q=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"yUoQ93IypmE\/2KLRLQkC6\/KpPu8fMxk6aBEvQtxlJyE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"QlvahmeRtBmXXfb0Ct+HIPXxm2xwk\/LweR\/8HMpcxzs=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"\/Jq0B4tGNhJSDbXXDHQXAOLHHn\/gxjWc6jYi8Bu70eA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"qT3Ti0reC7LdovbzHog0lEXipVkUq\/R7hraof6BMFSo=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"61+8pGQO8bNBVczEX+kE8NNj2zKrI8ILvCbi2Xl6gKU=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"90mbpkYHPGofn4qoYtgpE+DxOSB1EQxGrZXtMFoFNek=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"BixT9\/My0oid5N8iaHFfmK44OoePRs8FXsT+dMFwJBA=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"JqIjLOsZf9woMC45xIwqOaEOvq\/775j3A\/PQD7C6oIA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"ahvnWmLg\/HXihRxTtH5MK0OZfABPdLDSqq8JDqh9KGw=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"gaM5SAoBJxtMhLvJnUrkjRG3qBAJd1O\/7FVB7hD2WCw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"YOF47PUg7MtbeFvy36SJyzrFIZ7phz\/KDZC3HkhtCzI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"BVAee8oIkP9EBOVVdnUUJo\/tCYTm7aRzaUXPa9e3eLA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"x9le2g0alvuZuduN9rt47ZD4mqWyeZr1fw5qC32FA2w=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"crE6Z4RRbL0r7E7hK1BGjD1fe3Ixwwse3Mvhu+E6p2I=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"WfMhQO6NwHtsUOid\/9f8040Qnez5Sgs+gC1z7UTVuKI=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"PwQt62AV2tWe3qq6y1cQrLw0WyeP\/+p1rv5NcHpNyEw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"KrvD3HPxjOb7Dq9zv8TuGDeFMyEJO+hudMTCmzHS2Ac=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"AZDSc2ViDzdObZ4G5hV0fbDXo1\/7JZdKTbBo68w3CPQ=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"3z7WiGfZj9ljYFRJOWccd1iqHe9\/btUVlr8jgxOGQ\/0=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"hTumKz2Gozc+4gvUbe363ZI5ci4NKhTbSAA6pqRN+kE=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"c+4eXlF6CPP0lwwbZ7rlwD4KIbZ+4jDtfJDdiNOd+5M=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"KY5JOYY4flY4L0Vzd7SymUFYmDIQgxY96fuQoBmUJzk=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"3QDLEZ9XPKkbLMZd74CNoik2a8nH3qW92QHslYEu6IY=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"VFQyw3YULf7n2q122VnegGgLqLLlC2qRcagSH7z2Vnw=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"iOF858j\/w9raB7K5T1JmOLNyylizz8lYTEiCmKxn4wE=":"sha256"}},{"id":"style-src","hosts":[],"hashes":{"wlMqH0eI3CG839io87CNCfd7sQwKPfqdZis\/fChwDaA=":"sha256"}},{"id":"script-src","hosts":[],"hashes":{"1XYVA0qPqR7M7a41JPQY1ss+qqI4B3SlaMFPcoOYH3I=":"sha256"}}],"html":"<div class=\"price-box price-final_price\" data-role=\"priceBox\" data-product-id=\"4268\" data-price-box=\"product-id-4268\">     <span class=\"price-container price-final_price&#x20;tax&#x20;weee\" > <span  id=\"product-price-4268\"  data-price-amount=\"8.9\" data-price-type=\"finalPrice\" class=\"price-wrapper \" ><span class=\"price\">8,90\u00a0\u20ac<\/span><\/span>  <\/span>  <\/div>"}

I'm still on Magento/blank here.