diff options
Diffstat (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/code')
5 files changed, 508 insertions, 684 deletions
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js index 55179ff..1c5263a 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js @@ -73,9 +73,11 @@ ApplicableList.prototype = { populate_list: function() { // The base URI of the dom tends to be loaded from some /other/ // ApplicableList, so pretend we're loading it from here. - HTTPSEverywhere.instance.https_rules.rewrittenURI(this, this.uri, function() { - // do nothing - }); + var uri = this.uri; + if (!(uri.schemeIs("http") || uri.schemeIs("https"))) { + return true; + } + HTTPSEverywhere.instance.https_rules.rewrittenURI(this, uri); this.log(DBUG, "populating using alist #" + this.serial); }, @@ -215,9 +217,15 @@ ApplicableList.prototype = { }, add_command: function(rule) { + // basic validation for data to be added to xul + var ruleId = String(rule.id); + if (!ruleId.match(/^[a-zA-Z_0-9]+$/)) { + return; + } + var command = this.document.getElementById("https-everywhere-menuitem-rule-toggle-template").cloneNode(); - command.setAttribute('id', JSON.stringify(rule.id)+'-command'); - command.setAttribute('data-id', JSON.stringify(rule.id)); + command.setAttribute('id', ruleId+'-command'); + command.setAttribute('data-id', ruleId); command.setAttribute('label', rule.name); this.commandset.appendChild(command); }, diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js index f9134bc..4fb35e6 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js @@ -1,150 +1,150 @@ -Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-function Cookie(s, host) {
- this.parse(s, host);
-}
-Cookie.computeId = function(c) {
- return c.name + ";" + c.host + "/" + c.path;
-};
-Cookie.find = function(f) {
- var cc = Cookie.prototype.cookieManager.enumerator;
- var c;
- while (cc.hasMoreElements()) {
- if (f(c = cc.getNext())) return c;
- }
- return null;
-};
-
-Cookie.attributes = { host: 'domain', path: 'path', expires: 'expires', isHttpOnly: 'HttpOnly', isSecure: 'Secure' };
-Cookie.prototype = {
-
- name: '',
- value: '',
- source: '',
- domain: '',
- host: '',
- rawHost: '',
- path: '',
- secure: false,
- httponly: false,
- session: true,
- expires: 0,
-
- id: '',
-
-
- toString: function() {
- var c = [this['name'] + "=" + this.value];
- var v;
- const aa = Cookie.attributes;
- for (var k in aa) {
- var p = aa[k];
- v = this[k];
- switch(typeof(v)) {
- case "string":
- if (v) c.push(p + "=" + v);
- break;
- case "boolean":
- if (v) c.push(p);
- break;
- case "number":
- if (!this.isSession) c.push(p + "=" + new Date(v * 1000).toUTCString());
- break;
- }
- }
- return c.join("; ");
- },
- parse: function(s, host) {
- var p;
- if (this.source) {
- // cleanup for recycle
- for (p in this) {
- if (typeof (p) != "function") delete this[p];
- }
- }
- this.source = s;
- this.host = host;
-
- var parts = s.split(/;\s*/);
- var nv = parts.shift().split("=");
-
- this.name = nv.shift() || '';
- this.value = nv.join('=') || '';
-
- var n, v;
- for each (p in parts) {
- nv = p.split("=");
- switch (n = nv[0].toLowerCase()) {
- case 'expires':
- v = Math.round(Date.parse((nv[1] || '').replace(/\-/g, ' ')) / 1000);
- break;
- case 'domain':
- case 'path':
- v = nv[1] || '';
- break;
- case 'secure':
- case 'httponly':
- v = true;
- break;
- default:
- n = 'unknown';
- }
- this[n] = v;
- }
- if (!this.expires) {
- this.session = true;
- this.expires = Math.round(new Date() / 1000) + 31536000;
- }
- if (this.domain) {
- if (!this.isDomain) this.domain = "." + this.domain;
- this.host = this.domain;
- }
- this.rawHost = this.host.replace(/^\./, '');
-
- this.id = Cookie.computeId(this);
- },
-
-
- get cookieManager() {
- delete Cookie.prototype.cookieManager;
- var cman = Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager2).QueryInterface(Ci.nsICookieManager);
- return Cookie.prototype.cookieManager = cman;
- },
- belongsTo: function(host, path) {
- if (path && this.path && path.indexOf(this.path) != 0) return false;
- if (host == this.rawHost) return true;
- var d = this.domain;
- return d && (host == d || this.isDomain && host.slice(-d.length) == d);
- },
- save: function() {
- this.save = ("cookieExists" in this.cookieManager)
- ? function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.httponly, this.session, this.expires); }
- : function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.session, this.expires);}
- ;
- return this.save();
- },
- exists: function() {
- var cc = this.cookieManager.enumerator;
- while(cc.hasMoreElements()) {
- if (this.sameAs(cc.getNext())) return true;
- }
- return false;
- },
-
- sameAs: function(c) {
- (c instanceof Ci.nsICookie) && (c instanceof Ci.nsICookie2);
- return Cookie.computeId(c) == this.id;
- },
-
- // nsICookie2 interface extras
- get isSecure() { return this.secure; },
- get expiry() { return this.expires; },
- get isSession() { return this.session; },
- get isHttpOnly() { return this.httponly; },
- get isDomain() { return this.domain && this.domain[0] == '.'; },
- policy: 0,
- status: 0,
- QueryInterface: XPCOMUtils.generateQI([Ci.nsICookie, Ci.nsICookie2])
-
-};
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + +function Cookie(s, host) { + this.parse(s, host); +} +Cookie.computeId = function(c) { + return c.name + ";" + c.host + "/" + c.path; +}; +Cookie.find = function(f) { + var cc = Cookie.prototype.cookieManager.enumerator; + var c; + while (cc.hasMoreElements()) { + if (f(c = cc.getNext())) return c; + } + return null; +}; + +Cookie.attributes = { host: 'domain', path: 'path', expires: 'expires', isHttpOnly: 'HttpOnly', isSecure: 'Secure' }; +Cookie.prototype = { + + name: '', + value: '', + source: '', + domain: '', + host: '', + rawHost: '', + path: '', + secure: false, + httponly: false, + session: true, + expires: 0, + + id: '', + + + toString: function() { + var c = [this['name'] + "=" + this.value]; + var v; + const aa = Cookie.attributes; + for (var k in aa) { + var p = aa[k]; + v = this[k]; + switch(typeof(v)) { + case "string": + if (v) c.push(p + "=" + v); + break; + case "boolean": + if (v) c.push(p); + break; + case "number": + if (!this.isSession) c.push(p + "=" + new Date(v * 1000).toUTCString()); + break; + } + } + return c.join("; "); + }, + parse: function(s, host) { + var p; + if (this.source) { + // cleanup for recycle + for (p in this) { + if (typeof (p) != "function") delete this[p]; + } + } + this.source = s; + this.host = host; + + var parts = s.split(/;\s*/); + var nv = parts.shift().split("="); + + this.name = nv.shift() || ''; + this.value = nv.join('=') || ''; + + var n, v; + for each (p in parts) { + nv = p.split("="); + switch (n = nv[0].toLowerCase()) { + case 'expires': + v = Math.round(Date.parse((nv[1] || '').replace(/\-/g, ' ')) / 1000); + break; + case 'domain': + case 'path': + v = nv[1] || ''; + break; + case 'secure': + case 'httponly': + v = true; + break; + default: + n = 'unknown'; + } + this[n] = v; + } + if (!this.expires) { + this.session = true; + this.expires = Math.round(new Date() / 1000) + 31536000; + } + if (this.domain) { + if (!this.isDomain) this.domain = "." + this.domain; + this.host = this.domain; + } + this.rawHost = this.host.replace(/^\./, ''); + + this.id = Cookie.computeId(this); + }, + + + get cookieManager() { + delete Cookie.prototype.cookieManager; + var cman = Cc["@mozilla.org/cookiemanager;1"] + .getService(Ci.nsICookieManager2).QueryInterface(Ci.nsICookieManager); + return Cookie.prototype.cookieManager = cman; + }, + belongsTo: function(host, path) { + if (path && this.path && path.indexOf(this.path) != 0) return false; + if (host == this.rawHost) return true; + var d = this.domain; + return d && (host == d || this.isDomain && host.slice(-d.length) == d); + }, + save: function() { + this.save = ("cookieExists" in this.cookieManager) + ? function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.httponly, this.session, this.expires); } + : function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.session, this.expires);} + ; + return this.save(); + }, + exists: function() { + var cc = this.cookieManager.enumerator; + while(cc.hasMoreElements()) { + if (this.sameAs(cc.getNext())) return true; + } + return false; + }, + + sameAs: function(c) { + (c instanceof Ci.nsICookie) && (c instanceof Ci.nsICookie2); + return Cookie.computeId(c) == this.id; + }, + + // nsICookie2 interface extras + get isSecure() { return this.secure; }, + get expiry() { return this.expires; }, + get isSession() { return this.session; }, + get isHttpOnly() { return this.httponly; }, + get isDomain() { return this.domain && this.domain[0] == '.'; }, + policy: 0, + status: 0, + QueryInterface: XPCOMUtils.generateQI([Ci.nsICookie, Ci.nsICookie2]) + +}; diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js index 3053014..c5834dd 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js @@ -39,53 +39,7 @@ const HTTPS = { * untouched or aborted. */ replaceChannel: function(applicable_list, channel, httpNowhereEnabled) { - var that = this; - // If the callback gets called immediately (not async), it will be called - // before the return from the function sets this variable, so we default it - // to true. - var callbackedImmediate = true; - callbackedImmediate = HTTPSRules.rewrittenURI(applicable_list, channel.URI.clone(), function(blob) { - if (callbackedImmediate) { - that.replaceChannelCallback(applicable_list, channel, httpNowhereEnabled, blob); - } else { - // If we can't redirect right away because we're waiting on some disk - // I/O to read the rules, we will have told the channel to redirect to - // itself and suspend, to insure it doesn't actually open while it's - // waiting for us to decide what to do. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=1170197. - // Now that we're in the callback, we know the rules are loaded. So we - // tell the channel to go ahead and continue with the redirect-to-self. - // That will trigger on-modify-request again, and we'll wind up here - // again, except with the rules already loaded. We don't try a - // redirectTo here because it would fail with NS_ERROR_IN_PROGRESS. - try { - channel.resume(); - } catch (e) { - that.log(WARN, 'Failed to resume ' + channel.URI.spec + ': ' + e); - return; - } - that.log(DBUG, 'Succeeded resuming ' + channel.URI.spec + ' '); - } - }); - if (!callbackedImmediate) { - try { - channel.redirectTo(channel.URI); - } catch (e) { - this.log(WARN, 'Failed to redirect to self ' + channel.URI.spec + ': ' + e); - return; - } - try { - channel.suspend(); - } catch (e) { - this.log(WARN, 'Failed to suspend ' + channel.URI.spec + ': ' + e); - return; - } - this.log(DBUG, 'Succeeded suspending ' + channel.URI.spec); - } - }, - - replaceChannelCallback: function(applicable_list, channel, httpNowhereEnabled, blob, callbackedImmediate) { - var that = this; + var blob = HTTPSRules.rewrittenURI(applicable_list, channel.URI.clone()); var isSTS = securityService.isSecureURI( CI.nsISiteSecurityService.HEADER_HSTS, channel.URI, 0); if (blob === null) { diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js index 0dd2736..78536de 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js @@ -68,10 +68,6 @@ RuleSet.prototype = { ensureCompiled: function() { // Postpone compilation of exclusions, rules and cookies until now, to accelerate // browser load time. - // NOTE: Since rulesets are now lazy-loaded in FF, this will be called immediately - // after the ruleset is loaded, and doesn't give much startup benefit. We - // may want to switch these back so patterns are compiled immediately on - // ruleset load, for simplicity. if (this.compiled) return; var i; @@ -143,13 +139,13 @@ RuleSet.prototype = { var urispec = uri.spec; this.ensureCompiled(); - + if (this.ruleset_match_c && !this.ruleset_match_c.test(urispec)) return false; - + for (var i = 0; i < this.exclusions.length; ++i) if (this.exclusions[i].pattern_c.test(urispec)) return false; - + for (var i = 0; i < this.rules.length; ++i) if (this.rules[i].from_c.test(urispec)) return true; return false; @@ -328,7 +324,7 @@ const RuleWriter = { // Add this ruleset id into HTTPSRules.targets if it's not already there. // This should only happen for custom user rules. Built-in rules get // their ids preloaded into the targets map, and have their <target> - // tags stripped when the sqlite database is built. + // tags stripped when the JSON database is built. var targets = xmlruleset.getElementsByTagName("target"); for (var i = 0; i < targets.length; i++) { var host = targets[i].getAttribute("host"); @@ -391,84 +387,32 @@ const HTTPSRules = { // applicable ruleset ids this.rulesetsByID = {}; this.rulesetsByName = {}; - this.targetsLoaded = false; - this.targetsLoadingCallbacks = []; + var t1 = new Date().getTime(); this.checkMixedContentHandling(); var rulefiles = RuleWriter.enumerate(RuleWriter.getCustomRuleDir()); + + this.loadTargets(); this.scanRulefiles(rulefiles); - // Initialize database connection. - var dbFile = new FileUtils.File(RuleWriter.chromeToPath("chrome://https-everywhere/content/rulesets.sqlite")); - this.rulesetDBConn = Services.storage.openDatabase(dbFile); } catch(e) { this.log(DBUG,"Rules Failed: "+e); } + var t2 = new Date().getTime(); + this.log(NOTE,"Loading targets took " + (t2 - t1) / 1000.0 + " seconds"); return; }, - loadTargets: function(callback) { - if (this.targetsLoaded) { - callback(); - return; - } - // loadTargets can be called multiple times before it resolves. We store a - // list of callbacks to call when done, and make sure we only actually do - // the query once. - this.targetsLoadingCallbacks.push(callback); - if (this.targetsLoadingCallbacks.length > 1) { - this.log(DBUG, "Skipping loadTargets, a query is already in progress."); - } - // Load the mapping of hostname target -> ruleset ID from DB. - // This is a little slow (287 ms on a Core2 Duo @ 2.2GHz with SSD), - // but is faster than loading all of the rulesets. If this becomes a - // bottleneck, change it to load in a background webworker, or load - // a smaller bloom filter instead. - var t1 = new Date().getTime(); - var query = this.rulesetDBConn.createStatement("select host, ruleset_id from targets"); - var that = this; - var count = 0; - this.log(INFO, "Querying targets"); - // TODO: Store "this is pending" and resolve all pending once the whole - // thing is loaded. - query.executeAsync({ - handleResult: function(aResultSet) { - try { - for (let row = aResultSet.getNextRow(); - row; - row = aResultSet.getNextRow()) { - var host = row.getResultByName("host"); - var id = row.getResultByName("ruleset_id"); - count ++; - if (!that.targets[host]) { - that.targets[host] = [id]; - } else { - that.targets[host].push(id); - } - } - } catch (e) { - that.log(WARN, "ERROR " + e); - } - }, - handleError: function(aError) { - that.log(WARN, "SQLite error loading targets: " + aError.message); - callback(); - }, - - handleCompletion: function(aReason) { - if (aReason != Components.interfaces.mozIStorageStatementCallback.REASON_FINISHED) { - that.log(WARN, "SQLite query canceled or aborted!"); - } else { - var t2 = new Date().getTime(); - that.log(NOTE, "Loading " + count + " targets took " + (t2 - t1) / 1000.0 + " seconds"); - that.targetsLoadingCallbacks.forEach(function(callback) { - callback(); - }); - that.targetsLoadingCallbacks = []; - that.targetsLoaded = true; - } - } - }); + /** + * Read and parse the ruleset JSON. + * Note: This only parses the outer JSON wrapper. Each ruleset is itself an + * XML string, which will be parsed on an as-needed basis. + */ + loadTargets: function() { + var file = new FileUtils.File(RuleWriter.chromeToPath("chrome://https-everywhere/content/rulesets.json")); + var rules = JSON.parse(RuleWriter.read(file)); + this.targets = rules.targets; + this.rulesetStrings = rules.rulesetStrings; }, checkMixedContentHandling: function() { @@ -519,9 +463,8 @@ const HTTPSRules = { } }, - // return true iff callback has been called already, false if callback will be - // called asynchronously - rewrittenURI: function(alist, input_uri, callback) { + + rewrittenURI: function(alist, input_uri) { // This function oversees the task of working out if a uri should be // rewritten, what it should be rewritten to, and recordkeeping of which // applicable rulesets are and aren't active. Previously this returned @@ -535,55 +478,44 @@ const HTTPSRules = { if (!alist) this.log(DBUG, "No applicable list rewriting " + input_uri.spec); this.log(DBUG, "Processing " + input_uri.spec); + var uri = this.sanitiseURI(input_uri); + // Get the list of rulesets that target this host try { - var host = input_uri.host + var rs = this.potentiallyApplicableRulesets(uri.host); } catch(e) { - // NS_ERROR_FAILURE is normal for accessing uri.host. It just means that - // host is not applicable for the URI scheme, e.g. about: URIs. - // If that happens we quietly return null. If another exception happens - // we noisily return null. - if (e.name != "NS_ERROR_FAILURE") { - this.log(WARN, 'Could not get host from ' + input_uri.spec + ': ' + e); - } - callback(null); - return true; - } - var that = this; - return this.potentiallyApplicableRulesets(host, function(rs) { - var uri = that.sanitiseURI(input_uri); - // ponder each potentially applicable ruleset, working out if it applies - // and recording it as active/inactive/moot/breaking in the applicable list - for (i = 0; i < rs.length; ++i) { - if (!rs[i].active) { - if (alist && rs[i].wouldMatch(uri, alist)) - alist.inactive_rule(rs[i]); - continue; - } - blob.newuri = rs[i].transformURI(uri); - if (blob.newuri) { - if (alist) { - if (uri.spec in https_everywhere_blacklist) { - alist.breaking_rule(rs[i]); - } else { - alist.active_rule(rs[i]); - } - } - if (userpass_present) blob.newuri.userPass = input_uri.userPass; - blob.applied_ruleset = rs[i]; - callback(blob); - return - } - if (uri.scheme == "https" && alist) { - // we didn't rewrite but the rule applies to this domain and the - // requests are going over https - if (rs[i].wouldMatch(uri, alist)) alist.moot_rule(rs[i]); - continue; - } + this.log(NOTE, 'Could not check applicable rules for '+uri.spec + '\n'+e); + return null; + } + + // ponder each potentially applicable ruleset, working out if it applies + // and recording it as active/inactive/moot/breaking in the applicable list + for (i = 0; i < rs.length; ++i) { + if (!rs[i].active) { + if (alist && rs[i].wouldMatch(uri, alist)) + alist.inactive_rule(rs[i]); + continue; + } + blob.newuri = rs[i].transformURI(uri); + if (blob.newuri) { + if (alist) { + if (uri.spec in https_everywhere_blacklist) + alist.breaking_rule(rs[i]); + else + alist.active_rule(rs[i]); + } + if (userpass_present) blob.newuri.userPass = input_uri.userPass; + blob.applied_ruleset = rs[i]; + return blob; } - callback(null); - return; - }); + if (uri.scheme == "https" && alist) { + // we didn't rewrite but the rule applies to this domain and the + // requests are going over https + if (rs[i].wouldMatch(uri, alist)) alist.moot_rule(rs[i]); + continue; + } + } + return null; }, sanitiseURI: function(input_uri) { @@ -635,82 +567,30 @@ const HTTPSRules = { }, // Load a ruleset by numeric id, e.g. 234 - loadRulesetById: function(ruleset_id, callback) { - var query = this.rulesetDBConn.createStatement( - "select contents from rulesets where id = :id"); - query.params.id = ruleset_id; - var that = this; - query.executeAsync({ - handleResult: function(aResultSet) { - for (let row = aResultSet.getNextRow(); - row; - row = aResultSet.getNextRow()) { - - let value = row.getResultByName("contents"); - RuleWriter.readFromString(value, that, ruleset_id); - } - }, - handleError: function(aError) { - that.log(WARN, "SQLite error: " + aError.message); - callback(); - }, - - handleCompletion: function(aReason) { - if (aReason != Components.interfaces.mozIStorageStatementCallback.REASON_FINISHED) { - that.log(WARN, "SQLite query canceled or aborted!"); - } - callback(); - } - }); + loadRulesetById: function(ruleset_id) { + RuleWriter.readFromString(this.rulesetStrings[ruleset_id], this, ruleset_id); }, // Get all rulesets matching a given target, lazy-loading from DB as necessary. - // Returns true if callback was called immediately: i.e., didn't have to go async. - rulesetsByTargets: function(targets, callback) { - // If the array of target hosts is not already loaded, load it - // (asynchronously). This should only happen once. - if (!this.targetsLoaded) { - this.log(INFO, "Loading targets"); - this.loadTargets(this.rulesetsByTargets.bind(this, targets, callback)); - return false; - } else { - this.log(INFO, "Targets are loaded " + this.targets["www.eff.org"]); - } - var foundIds = []; - var neededIds = []; - var that = this; - targets.forEach(function(target) { - var rulesetIds = that.targets[target] || []; - rulesetIds.forEach(function(id) { - foundIds.push(id); - if (!that.rulesetsByID[id]) { - neededIds.push(id); + rulesetsByTarget: function(target) { + var rulesetIds = this.targets[target]; + + var output = []; + if (rulesetIds) { + this.log(INFO, "For target " + target + ", found ids " + rulesetIds.toString()); + for (var i = 0; i < rulesetIds.length; i++) { + var id = rulesetIds[i]; + if (!this.rulesetsByID[id]) { + this.loadRulesetById(id); + } + if (this.rulesetsByID[id]) { + output.push(this.rulesetsByID[id]); } - }); - }); - - this.log(DBUG, "For targets " + targets.join(' ') + - ", found ids " + foundIds + ", need to load: " + neededIds); - - var callbackImmediate = true; - function loadOne(done) { - if (neededIds.length !== 0) { - callbackImmediate = false; - that.loadRulesetById(neededIds.pop(), loadOne.bind(null, done)); - } else { - done(); } + } else { + this.log(DBUG, "For target " + target + ", found no ids in DB"); } - - loadOne(function() { - output = foundIds.map(function(id) { - return that.rulesetsByID[id]; - }) - that.log(DBUG, "Callback from rulesetsByTargets output = " + output); - callback(output); - }); - that.log(DBUG, "Returning from rulesetsByTargets callbackImmediate = " + callbackImmediate); - return callbackImmediate; + return output; }, /** @@ -719,42 +599,43 @@ const HTTPSRules = { * This function is only defined for fully-qualified hostnames. Wildcards and * cookie-style domain attributes with a leading dot are not permitted. * @param host {string} - * @return true iff we didn't have to go async to load rules + * @return {Array.<RuleSet>} */ - potentiallyApplicableRulesets: function(host, callback) { - if (!callback) { - this.log(WARN, 'Bad problem: potentiallyApplicableRulesets called without callback.'); - return false; - } + potentiallyApplicableRulesets: function(host) { var i, tmp, t; - var targetsToTry = [host]; + var results = []; + + var attempt = function(target) { + this.setInsert(results, this.rulesetsByTarget(target)); + }.bind(this); + + attempt(host); + + // Ensure host is well-formed (RFC 1035) + if (host.indexOf("..") != -1 || host.length > 255) { + this.log(WARN,"Malformed host passed to potentiallyApplicableRulesets: " + host); + return null; + } // replace each portion of the domain with a * in turn var segmented = host.split("."); for (i = 0; i < segmented.length; ++i) { tmp = segmented[i]; - if (tmp.length === 0) { - this.log(WARN,"Malformed host passed to potentiallyApplicableRulesets: " + host); - return false; - } segmented[i] = "*"; t = segmented.join("."); segmented[i] = tmp; - targetsToTry.push(t); + attempt(t); } // now eat away from the left, with *, so that for x.y.z.google.com we // check *.z.google.com and *.google.com (we did *.y.z.google.com above) for (i = 2; i <= segmented.length - 2; ++i) { t = "*." + segmented.slice(i,segmented.length).join("."); - targetsToTry.push(t) - } - var that = this; - return this.rulesetsByTargets(targetsToTry, function(rulesets) { - that.log(DBUG,"Potentially applicable rules for " + host + ":"); - for (i = 0; i < rulesets.length; ++i) - that.log(DBUG, " " + rulesets[i].name); - callback(rulesets); - }); + attempt(t); + } + this.log(DBUG,"Potentially applicable rules for " + host + ":"); + for (i = 0; i < results.length; ++i) + this.log(DBUG, " " + results[i].name); + return results; }, /** @@ -790,33 +671,13 @@ const HTTPSRules = { var i,j; // potentiallyApplicableRulesets is defined on hostnames not cookie-style // "domain" attributes, so we strip a leading dot before calling. - var host = this.hostFromCookieDomain(c.host); - - // When checking for potentially applicable rulesets, we have to wait for a - // callback, because we may need to load the rulesets from disk. However, in - // practice this callback will always be run immediately, because the - // ruleset for the necessary host will have been loaded already for the HTTP - // request. - var result; - var callbackedImmediate = this.potentiallyApplicableRulesets(host, function(rs) { - result = this.shouldSecureCookieWithRulesets(applicable_list, c, known_https, rs); - }.bind(this)); - if (callbackedImmediate) { - return result; - } else { - this.log(WARN, "Shouldn't happen: rulesets were not already loaded for host " + host) - // Default to securing cookies if we aren't sure. - return true - } - }, - - shouldSecureCookieWithRulesets: function(applicable_list, c, known_https, rs) { + var rs = this.potentiallyApplicableRulesets(this.hostFromCookieDomain(c.host)); for (i = 0; i < rs.length; ++i) { var ruleset = rs[i]; if (ruleset.active) { ruleset.ensureCompiled(); // Never secure a cookie if this page might be HTTP - if (!(known_https || this.safeToSecureCookie(c.rawHost, rs))) { + if (!(known_https || this.safeToSecureCookie(c.rawHost))) { continue; } for (j = 0; j < ruleset.cookierules.length; j++) { @@ -856,10 +717,9 @@ const HTTPSRules = { * flagged as secure. * * @param domain {string} The cookie's 'domain' attribute. - * @param rs {Array.<Ruleset>} A list of potentially applicable rulesets. * @return {boolean} True if it's safe to secure a cookie on that domain. */ - safeToSecureCookie: function(domain, rs) { + safeToSecureCookie: function(domain) { if (domain in https_blacklist_domains) { this.log(INFO, "cookies for " + domain + "blacklisted"); return false; @@ -878,7 +738,9 @@ const HTTPSRules = { } this.log(DBUG, "Testing securecookie applicability with " + test_uri); - + // potentiallyApplicableRulesets is defined on hostnames not cookie-style + // "domain" attributes, so we strip a leading dot before calling. + var rs = this.potentiallyApplicableRulesets(this.hostFromCookieDomain(domain)); for (var i = 0; i < rs.length; ++i) { if (!rs[i].active) continue; var rewrite = rs[i].apply(test_uri); diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js index c99f1ec..cbb9396 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js @@ -6,93 +6,86 @@ const X509ChainWhitelist = { '000AA4E99FE86D84F762DFB2DC29323D0614B95AA335A270AF204EBA2F2240AF' : true, '002F83BE1562B658A7BA747EEE36FFBA25A7D6C66E263B2901184058802D9A43' : true, + '0048BB7ED7A65D615D2CA0D74B4B67E3285132CDA4FD22493977AC1662D72869' : true, '007FDDA43F8F2C275CF3AE1D742A0DE86CFE1287B6FAE08F9676A8743E677255' : true, '00AD891EBED89D8B1DE5893D32B98655479B79FAAF02D40BB933BBF726699446' : true, - '00D9377601C1210081CE743C3598E414B6BD2F47525132BE5E4CBA4650EE7C19' : true, '00DBEAA57891E7972D7AE5F00425E309B1A08B8EE4218B24AE3FB50EA98AA864' : true, + '00E60060B345194127FA895551ACA9CB12D5C31CBCE286D1CBEFA26D0BF22CBF' : true, + '0103FD294CAF0DEBB13910E3C115E9037007F6BF1650B704CACC653366AD013B' : true, '013470D100AFBBA6D4E03735C1D924EFA6E25E66F781E9DBB6155EF713336307' : true, - '0147A7B139D599058A43CDE86602DA56375CC78C2C15AC512953E3C98592D4D2' : true, '016BBB29A76DA59A20C5E9909D8D0A9CD25824D7462BD51B022D61B503569936' : true, '018BCB77EB89BD658CFB6388F57F22E40942E08FD6BF3A26DE05A2F992F6E5A2' : true, - '01FC275FB7BB83082EA2C546876545030D74F68355AF2B0CCB1972993B393E58' : true, - '020E3FCA9BCBC32FF8E96460F1666CF889EAC42A586CCC76B46BBE85AAEAA450' : true, '028CD123ABEA12F150435947299419928DC5E80E94E9148841265B64344C3DBC' : true, - '028D7A3A5ACA6156AA42F1DAE25BD6116A417EFD8E64B7E6A004B1911CABCAC0' : true, '0299AD4101A95EA006706582B2E55A35DFD2224EB9A8F8AA822D2354BAC4C640' : true, + '02B269E607C16E29304FF5A10E7B95FBA18B8131D647334007CBBDAE891F92A6' : true, '02E266B8D011CF92708D0DD0D9D840BB8EF54B4A4670BF700AE90EE6F7E445A8' : true, '02EE88738EA513E191ED7197DA80736330AAC72CD846B866683ECA283945113E' : true, '0333E05678F411BCFDAEFB069DDAC8BE1B3B7E45376AE4C3827771C10A53D294' : true, - '0383B8763C6ED572306AB1253E433A3169F1EDF7078F57D07BC3461199BEF86B' : true, + '03693B464434A9683B54121395F0655F77D80A64D36AC7083A2923C3FB6EFC00' : true, '03E2027D68B6F8792C5E99FFA9221CE628E98F0D61346B99E8A2710BD29E1DE0' : true, - '03EF0B687FD2011C8607A83F5F06979C63FC4C905244344BCD85987A0E296133' : true, - '0494ED6BB7E16B78F2AEAAC053DAE6B31B52E39F0E10F5E8D95B77ECBA0A0BAC' : true, + '041E24ED00997AAF1D78BB5A002A3ABCFC654CF09E38017EBD3BE031F05E8FEF' : true, '049E2533BBDE9D2DA0BDD71FB463A0D7D2908706999C63FDCEB4B812864E3091' : true, - '0508390E2DF4B63477E49A461AE883335BC71F03A24BAA06F46EB0DBF42641EF' : true, - '0529FFECC3EB688DEA32684A0348F89876F1BD45FEA23DC8E9A25D524E7B1333' : true, - '054806D84102E23956A821100183D32EC4B5E8E9DE72912A1F8E6EE53FF9A839' : true, - '05546BBD905F23086AF150C0B1E30F0BCA2705B6E0CBDB56092D8E62CFD09D0E' : true, - '0589AF9C3A578488F4259AB8BBFFB2089D4C678B63D4C40B6A46CE2405346C0D' : true, '05C5F3A4C0C5F676DFCA32690BBCE8A7F41D7D6C2438D9AA1F94F886E3015CB9' : true, + '05DDFDA20ECE2375B55CD05F5205E2608B75FF4D40078A4ABC2FD4EB7C7F4410' : true, '061B58EED7864DD73B40146FB4EB9656CBD256F6C10A07C3AC47860150B14948' : true, '06354AFD85075A5BDE2D84F8408B185CCFD354C2D75988D8FC67948AA6F60562' : true, '064A8AF7F078CF04C63643298C3DA278EECA283CE11E3F34F3AB851AB89B5237' : true, - '0698D7B65AF15F9A903D8D364BB7DBC1B238DACA79505B8BCE8D44AEAAB5709D' : true, - '06D7D04035F29672F6921CF0BB432541AE7579AA2591ABFA9155639DBEFFD2F5' : true, + '06A8BAEDC838105FBEB3AF6C20B5E3EA3B98B82069246F1A5A096E8CD0FD3047' : true, '06EA4798A8B6B73ACB72B15DD8D71D6D6541975EA01B6CCE95B92DDE7C0312F7' : true, '06F072A3D91411EAFF93F070B499A88B082E745A2E369567A6DDAAE227B2E195' : true, + '06F3DCA5B295481A6B1A0ED50541CB67C20B4B6BEE7435F06F5FCBAADC27A40F' : true, '06FB76F31639CCDDF599ADEB5E7CE9A475468C68B305442E99A067D09A89DDD0' : true, '0742E85FE9C68350E070039897F5B790BDA92D92229D74BA9C6906D958A5C510' : true, '0780AB0F9801F169F4E7DE6F6F40F9575707D4561E4EFEBBADE71279825E0CE6' : true, - '07B61AF096B72D71AF801B9C7EB9F76C42CC20A7192C78DF1336611644289BE5' : true, '07CF2A06F1718D6E476B98C2B42E370A35FAFE4C1F41CF7A1DE115CDB6222FAC' : true, - '07D5A15EAED5AE2CA304FFCAD864791055797B0252F925AE9177B686461E2C17' : true, '08522737DBEF2F7400033E866B61B3F9E19066EC71294DC9CE2138231921AFAB' : true, '088B1B9C85C5237A785E56C277962D8901D994350403FCA667645A0321EE1754' : true, '093314E52E8CC862C2C0C8A1C57DB5CA4BED8824A3DC7C40B8675DAE1781DC05' : true, '095FB0FC3CC67539621E292205E758437D94D3B651714049E6F99130BD5ADB6D' : true, '097D2DB6895EA5C53529BC38C1258E1461BE15135A9543BDDF5918EF5B5464C9' : true, + '099E4D986B0D8639C59AA04B56C3E45819DE1898E813D55B0879779C47913268' : true, '0AD7BEAF898E621703921886F7EA20EB4B337D03CF968EC45E3B1A234B2D707E' : true, '0B1C1033250F6DED11E4C0A7E43138AD3D52F5661FEC896519BEBCBEFDC16E41' : true, '0B1D9276FF6C18184DDF7409CB6C0916D24320DEC0505096AC79C0D3FFA9C1CD' : true, - '0BA75006139D075BF8CD7D94B460A850F46509B23AD572CD1A1E23134F59431F' : true, + '0B7A5B8BB72BC1897664EC39A1E712A515DA1B3907D8681F0151BB6A8AD364D4' : true, + '0BDA7253AB35BDF6471CE2B8ABCCBBE39780D7A96B58EF2D770B488F3A14D592' : true, '0C2154A365A0DE7DC5BD0AE6EE05A8E06EE782AC5C41F1D3823E2F95C61E0D2C' : true, '0C5C73A428C4601BF261EE2C36DF0D2259CBF2471E25A7B43F52F06C63059195' : true, '0C956E47F2CF8AADB345DBC858E3AB4AA37E48B7930B84BF7AA1A0C1B19A1C8F' : true, '0C9D6EF00C60807C04A1BF61E8C1E28DF2A628CB7CCA3E15593266682736588D' : true, - '0D6FFBC5B8DD431A6C0FA282F1ABE0898E4846B5F82723E11E484F1A61931C18' : true, + '0D8D1B9E2F81D60A99B58380F37E9F8F744E205AC778EAE66810224BF0FF9EEC' : true, '0D98DAB031428D38C96C714C90F0E2ACC9A1767FDC6A953D590928683E8BF8C4' : true, '0DAB05854E84AABD75D30CE09246103436A4C41E931374E16CC374596C8DBB94' : true, '0DB35F56EEAE4C5580F3231EA19F4DBB0FD46DE1BF85F4CCF40103E012CDDA4B' : true, + '0DB6221BC96F9758356209EFB138285A19A72FE5B898511143A0751BA600CC1F' : true, '0DC21B5C66F7A421406E2FF43676B6D7013C6115232AEE0CFD25D70E7D4C2625' : true, - '0E49A9594364BFD4E6943DB24A2F77FA125596414D46F46AFCF070A1645AAC48' : true, '0E8071ED091D6F502E2649CEF26818C0D1DE8F752632B670395E916F1BE748FE' : true, '0ECB53FDA2349AB6008BBC0E5CD361EEC5B6BD769281800FF4B1C9764A925277' : true, '0F0B2EAF8B0C4FBF1A47C048E13196C163ED9D8628AFA4AA264A4624B1CBCF3D' : true, - '0F7391E841B068E145E12DBF6CC16DF16410083111E5F093302BA163AD4EF39F' : true, + '0F2BD48DD412D479C8A61E31993A4545FA703253C2A70D901087A7F5B8843998' : true, '0F820CFB486D8564C83E968049AD119FD838B2CD21C0B342A0D9B5D22C445C25' : true, + '0F8A4084830557DD278CE7C3C6977853A4202E89B5F5F61164D1052F05D67B12' : true, '0FBBC11F4627D5AA5F7A7847E0F8DE298021E175EC69ECA90A62740A71DC9B1F' : true, - '0FEC8F0781CB9193F4996B43806C6D2C539847FBBC0C28146B64FC35617BAB99' : true, '1030FABD87581CC2360917E4B4D94B88AF59A0E4FBFBC796F36DEA520198CD28' : true, '103A6A4F018518AA6454CF8C8D18D7DA301A3F3C9E4C3C7FC2C3EC23E9D4443E' : true, + '10620CC592779120114EB611657851E4859BBA59E0895E2D12A6BB5A69103A23' : true, + '10F22412D1CFAFDEBCF5BCF13FD251853DD98736450E36D989F880901DC4EB20' : true, '1129CEBCB9F0237509FFE00D10AB5A4B9F9C29C1E22777DC621F7B7C94B4EFAC' : true, - '116A5D5F3E99CFE5F72A4AFAC8699CC225C130F4B8520CDB350A1262D9585973' : true, - '118FF53B6BEB35CBFE6592D45BE082BA1228D1817E46B2CC14B8855FCC5C9D59' : true, - '11F7A939F33BDF6270E16C747C0B0918902CD4501AF1843D9EA4445A2E708C58' : true, '12160CB58782201AF8F946F3911DF89177566E67C2AD7A2CF33107C89C65DF5F' : true, - '122789E068A64AFE76989BEC2FC264EE933B6FB31445450E492E37663C083FFE' : true, '1243C75D0F805DA54E780D0D9C55247B1ABB31FC09EB65A7017695945F2A0D4A' : true, '1260F631D1FBC3640BE637469748889E23A2EA907F33F78286408AB56F450A66' : true, '12826065A034136FFC2258AA1A65F9E550A582B4017E396077917C775D42E553' : true, + '12C674B54921107861CA3EF8660E814B8B4D9913D0C7867A4787E3546F8642E7' : true, '12F18371A507D5861569D0AEA4A8E66E551FFE7F312721E9122243EE006D8C46' : true, + '13033A2EA4BC988F6079128723671DE679D332B41D5043BA058FC76F7E5DDDB9' : true, '1306A4D21476D28D3E2F7D6E4385686E1BCB6D7EEBB1A5217346A6E5855DF944' : true, - '130753A8008BBCA6A0DD9037C6C7DA2D149BA8978C5E5444AE1B8C98F3C3DB60' : true, '130F0A3C4B9E9132D1676B4EBBAB2B17AFD2AF39E291C983A696D8BF0DD379BD' : true, + '131F59EC4994BCECEC4BFDA4DD4153463E50830B1EF8629AB6A31DC1BE2F0F39' : true, + '13E77B97AFD7D4712B5BE975257B045E3A0FF8EA08910E1DBD5A64D0DCB95720' : true, '142BA9FFCEF5D09FF3DE4BBF8110156D52FEF1C8C707E4B916692D7DDB335A6D' : true, '14919EA335FB4C65A5314A820ED289B0C8697E0124E6FC92DFCA84FBD56B2D35' : true, '14CF0BEC6B8811A81FF5AD015C62BC85AF172E86B7504D40E9F27F0E0A6F9BDC' : true, - '14D5F704481C18BA8A23559A9E49942C499BA8011926C09F4D721D92ACA5F20E' : true, '15178AD6DD39B91835771E8C2193D0A96CFE82F913A2C10C03144B37DDF45CA0' : true, - '154C4C43AAF5F838B7B9BE748FF671521BDF0ECF3D749EB85487F9C315239778' : true, '15508FBCC229C8D8917DFF5951FBC2BF0840866D4BCA8B406A63EEAC21221D79' : true, '15DDBE5ABC768035989DD30C6A2BC696AA7E5AB2ADDF1F3AA8FEEA35D319B47E' : true, '15ECBA98523C315922CFC13469827BC118123E02D1ADF24C3BF8305769869181' : true, @@ -100,39 +93,42 @@ const X509ChainWhitelist = { '1624DBB95D0B9786B98A4D7F0B7CDD8FF28754C5EB6673CAD7305B1B5B8F8826' : true, '162735074DC673F1ADBAFC8A4202BC1C25549EAA743063B9DCB39B37206C642E' : true, '163227E6A01ADF06502730FF25F39D8F52B79F9AE61D5AA2876980A21985A211' : true, - '1632D9CADAB9444AAC7BBF6389BA59C12CD866725786D9284BF9B205E2586A28' : true, '16A2F0D309D7E5CC00E5DFBDE3DC5DB21532F7E5ECF93E18554698374A5B5C2A' : true, '16C84150B3F3733B9D898ED4F57B4204E8ED00ED1147C06335670DA94CA2E2D7' : true, '16E2B54FD0674D40BFAD5C38803F7563CECDB022DBDCE1F282E1CD5DFDA5B35A' : true, '1715E347E92C85ADCEFCA2ED0C4B56DF7D7A3FA9C834B1F2DFA7CE115DC8DBC4' : true, - '1781FC3318F87AA70A6762F2A6A65D5F5DDCDE992DED94D110EB85A4745E9838' : true, + '17494B14BCE332EADB033DBD6012FD359936E0183EB22AD02C95604EEB9E4B7C' : true, + '1765ACDC57A9EEDE87E6573443C7EBC42B17E012FE153D6D7158402D5CF9365C' : true, '178437C1DC169BA86687755E982E2CAEADE216ADD8A163157614A66F34325FDE' : true, - '178481982D21A3F3AA8DBA7EA0F58124E69BACAA81B2EE4D33FF5EBBFCD8D87B' : true, '18072A06AA04215C18A6DDEF2B57BBFC054A4B3A50CBC2648515BB715B582F23' : true, '1882C2D8D817DD1078933D244E379CFC5BA8EAAE302BCF9FA22636B08FAC86CE' : true, '19230A5E183CB5DD90409C54F01075BB43D5608CE9C322EA3CA3724144FE03B6' : true, + '196603FAE474F910E61B7CFC9A735167422C230CC3917D4F0B1349A8AE18EC81' : true, '197B67187392F9D4653EC70C8BB277DD7DA843E62BA1A47B0BD95B89CB2C1735' : true, '1985D79429E03A4B25EF4195F04D0D6E770B36E8AB4369232CF3A1C1E40886D3' : true, '198719FE25A84786A0C2BD4053E93940AF864498D6071994E09A5335B675A73D' : true, + '1A20D558B752D443D16F9B806ADFFFFA0B15F9A6BF15C4DD9B0127A3BF140BC2' : true, '1A30713C34D901235DF30605AFB82AF55EE4D3940B86E60B50692145013AFBB5' : true, - '1A86C1C38DC645A40F8DF9EDC584DC4175CC30F133737BEE3D19530929708509' : true, '1AA2692979DFDFEFD4854EC9EAB4CC323BE159529C3E85799E2C3C51350FB9C2' : true, '1AAC19B1D8BBA8A33D43E739B1112E89A5E041BCA24ABCE4B13E0B1CFDEF6DFD' : true, - '1AC37940540C25A5A2E2CC1DFF939F3FAE61C194894FD82F5861AC98E1D1ACE6' : true, - '1B4CC90A088C12699F4EFD7103B930FC762CF0BB1CDBE2D652AFC8CA8924C3E6' : true, '1B53976D26A5F691CEFCF098279AAEADDE2651B698FC3F7088F5C2A5B9CB2C5A' : true, '1BCC11E5459BEF3D48BCCFB10F57B0D640EC74C4BFAA3F0AA221B777170A5B6D' : true, '1BDD0D8B130AB4FE89DB814276912F04405F2D202CE9DA8B89C4420740517437' : true, + '1C0A6732DDADEA7031C3AB577D185BA0908FC8CFC68925973F5D8D1EF314A0C4' : true, '1CCFC1F41255B860F2231D11672FFC1AE32D9CEAA341139C2B472A0EA9CB426E' : true, '1CE75CF38E7A5BB9C7C18202C97BFD74E79B3073B1FB6B2BBDB33E78BD22E6B5' : true, '1D16AA433A5042924AE1BB07FC1B53E8549BB93D0F3E40723DE9CF95720D593A' : true, '1D2A6A876B8C8A835206E337529E6C222E272D4AB79E2224E23A5B6414039D50' : true, + '1D968E8C9F5C1FAFE516D2B719A765DFC83AE7AB11BB461C696DFE8051E68C04' : true, '1D9D0031DF904A27E15FB3AF4E004B0A7350788FFEE1C7FC17F0E6118C678AEC' : true, '1DA6DEBFCC0A4BADEB9672E523C95F42B2D16B168759F75FD03EFBD2CD482032' : true, '1E07BA293C78E14CDFC629A797E8046A33F21981334BF6BFF9B4DD2D3C148CF4' : true, - '1EE116E4B79A340456A72C49C1EDDD86786C97258ABEB9966108A9E01AB3836B' : true, + '1EDEF3A2E0616C9B753FF6AF369292C619495091058BA99F9A2C691901600E5F' : true, + '1F0A95E93B1068A37FC1D05FCF5FA845CB7D6514F10DD5E69985F622F750D8C3' : true, '1F4C963A9BA39CE44E46F135EFEAD5B30D6A0A3A43545E18CBE59DE452A6468B' : true, '1F50A8F65E8256363E2710E05BBADE0FD84882DF8D7C5B12A92FC51B4643E4DC' : true, + '1FCEEF2FFF50C9A455ADF1A2FB3A2D150777EE49A0F333F746479D677E3283A3' : true, + '200F113FB8BE9CD93DCF38AF69F714D686AE4D227572F482F774574A5CCFA6DB' : true, '20226C095C430BD6AE483B9806E0C32296B0819273076F35F65B6A52FDFEE19B' : true, '2088FE71BC64663BEA0FB04CF93E3053228D41914681A3F17DA61CA996D453AF' : true, '20C2806DEA7B729E29F7B7BB8B2653B8D71805605AD46394473D1B1F81103664' : true, @@ -141,22 +137,23 @@ const X509ChainWhitelist = { '2128E4E9D372E50A94E43591AAA7C8B6BCDD8BF303C0B22F923B1DCD596E79B6' : true, '2156D89DFDE0B0676EBDE6CC82DF46DA81467DF96F9B8DC4A8B62F71DDA5DF95' : true, '215D8B74267F138F2936F74E6B2029CD8991DD6AAA1CC001ADF88B0202F637F9' : true, + '21773CA8E35B39C05F62E4EC902D512E19BF1249D303EDED85AB5A724D491B44' : true, + '218E1D545DF5578EFDEAEDECD87F3FD80C7DD8D925A529F1BCC6E2D72FF03FFD' : true, '21B2E2C095E47F4762069BA39AAD86802201AC4ED5B6DDBC20D1C7863AE511ED' : true, + '21C612A4E2CD066893391249E3C4DF22613E9DA5FF37690E3F806AA708B0401F' : true, '21CA97793B165187383669364CEFC96F19BAF3F8987F7260CC46F3852721BA5C' : true, + '220A91D48D7994F2C122A3E75527F1C29C57C0FBC60E645E02958217AE7BC759' : true, '223264A2EEB01CD24524FB9273B38688A0AA8E3A2E7D63ECB76012B060039760' : true, '2234133DD7FCAE5D199EB31E1ED8A798554B29A355A895066FA6AE445386D9ED' : true, '225C19F21F4CC5241C15ACC6007060605DDF10817681F676CB8BD1B72014D52E' : true, - '225E3BE43AB71213287128F76D5DE651719EF5C79F946D5A8CB04C44FEA86449' : true, '23980A7B935B10CA69315CDA05E61B4ABAE7876724C0E0C3CC7BE9748E41ACCC' : true, - '23B4591985CFCEFE811945510306C145B21FCE6B79686DC5D245DA69DD6D4128' : true, '23E080919FCBCDBCA08FBA3968559D1D3A5E785802976E27126A25BB7D9958B6' : true, - '23E4D77EC58ED1F674A96FD173C4AFAE53275B67EBDDAEF182855A3AC14FA8B5' : true, '23F00AC8958BF1466784068A5CC7E2179988F1E73446955136DCBBF756CC2171' : true, '244EE1B87977A42E7CA64725F7DD82F337A432744853EFA58C9F386DD4E0283D' : true, '2486367AC0F68DAA6E2BAB0B01CC6B3EEA3496023B3618DA73DC303B520AED8B' : true, '24DFBC07031235121BEBA97AB5A061AAFCD8AAEB2145820A78EB0980E5111E02' : true, - '257335B1AD2B1D562552738ECA1C534A6331FD83B95C91A1EB3B6C2A44650BA9' : true, - '2635178113FBBCC75EABC09C497D411C994AD0170CF9DF999A4FF5C16872CDBB' : true, + '25534DB97A159FDAD476E801A40B0BCDEFE50CA858D2BF923FC51756AB5BA637' : true, + '258A578A6BF92E1A60553F2A17EFDD2C3267E585FB64020225502A19C6A015BF' : true, '2677470F2FBD067904B7014B88988BB94F72403C014240B9843AE5A5FA21661D' : true, '268343ADC21A53E71BD790E19507760E1F7F09B7C51E088E39DD0079C65AAAF7' : true, '26A15E073F71406D8AFF4A4A623F956FA8E3ED70F0C04CB4B28031EA103DB975' : true, @@ -164,56 +161,52 @@ const X509ChainWhitelist = { '26D106DF3FE6E9C99924142C9DA27551E012C72C71FDE6EDD3CF4B5C87D59A26' : true, '2741D5D511257BAB37E2DD48559D3FE3998CB3A5BA4FC1EA9C8656D5694D7BFD' : true, '274C93C8441ED469C7B7E01B5A4DB6D9923C3947C87CA4B71D09F34D13F37D47' : true, - '27560906A3548AB767BA0992FD2F93575AD11AB83AED3354B6267C3F3228C858' : true, - '278480669CEE2AB798934F06B963B68D25C0A276CA3EC4E523D2299CE01C4A4F' : true, - '27B5CA8FBD760D881A9769019B0EC43CDADA9AAC3900861E1E14EE9348736FB9' : true, '27E83ECCF1CAB639F44A2B74BF9A3D463B18BE6D600C1186C336421DF0A8B752' : true, '2855C813E2F7369732C35656DD791928668591AC6AB3F9C73061B80AA7713920' : true, + '286FFB01258C4196768C7C4F9824410C9B5DC80DEB91F4AB0DA89D43BD49FCDE' : true, '28B49BD8083286E1E01C3B94D6358697FE6827CCE71D7C1D0892941B49D83416' : true, '28C725A83ABDD4F961356B2B5583C1F165094C5BC820CF15A4FE18086272107E' : true, - '290DE5FFD5BBBE1A557D3DABD01F3CF8FA5FDCFED4A919F4B73CF80B6CA2E4DF' : true, + '28F5E2863DA83BD5F283E9598D3E8D71817B97BA813C2329DFB2A61814BF56C0' : true, '296C5D3A18B056644774C03385700A24690EB9CD1114CD9E643E4813B69363ED' : true, - '29E0C5434734C0FC43246F066EFA19F533AD59E3A713F97455F8C338F1C3638C' : true, - '2A1E01990593F5DE1C300ED5ACD94B694DECF9DE34BF2836A764910F82BE664B' : true, '2A66B5579421025EC719858E2D80DDBBE02243073DE27DFC7AECC676B0899589' : true, - '2AC8168217387601B753D08652B1FE2CD14E8A7C9A7DE7DF74A8300C976FBED2' : true, '2ADD4406064A5EBBD98A9D53051A0FB086A5D032655C12F503EA73C8179C783D' : true, '2B059B135DC85869AFA0F2BB76122D71B97DF5EF2C87669085646D98CF08213B' : true, '2B1B6843B33770E84785D0FACA5AA6EAB6C480AFA07E95F7A282534BEB69B065' : true, + '2B7C7CAEDD6611BE472B7BE0EDF5907E0F2DEFF89561E09F389343E095DFB90D' : true, '2BE6A67777765CE8EB868416D68CA6AEA8C57D31523F4A683957DF560C152066' : true, + '2C01A7027A6FCCB3EF0B70F134229605465295EE1249F5A582D04CD82689BFC9' : true, + '2C31ACD6B2A6C70625CEBA16E104193524C129E9EB52DB35704B5E5E32F77E9F' : true, '2CAB9683916ADE98D778D3394221D8D07E07353E546771D507232A26FA577902' : true, '2CB5C98C4A0D8A9EE15CC49CB83490CE552677BF353A0FE7AAF1482A8BF8C012' : true, + '2CCE7C6E6F1C405C82DBC09B890BBC8F205F503A010210A67428FC8048DBEA1A' : true, '2CD5E37B2C388FECDF839EE16998A0F0850B5A6BB39AA5A507AE676622001CB0' : true, '2CDCECA60D7F0E4700411340E6CBFE1B3C8FAFA9081E219462D25A14B61F9AB5' : true, '2CF8647F049667F93FC50EBEED00FE30965114437763C339393FA19E306E9CD5' : true, + '2CFB60CBA71ED8ED0B81BBF029CD02B2B025FB4859FCA999DCD96A5D54AB6C93' : true, '2D375C90CC502EA17D4FCBE8EF35BF7E07A84B6B94EC7AC78613C623DD765E74' : true, '2DAE8835F42B7AE9A44C8CC72F12D750EDD8C5AA678D98CEAAE334BC602F0C58' : true, '2DBAF94C053FCCFA1EC09CBB22F54DAFF2DB4ABE1B3C61CFF1BEBC31260F4821' : true, '2DE3B602EC7847028D2EA59A8E241EDE63CEFAE7456802CAFFFAA8433CE9D885' : true, '2DEC053F97460AAAFB67EAB8C769B34049E9D44286F199A8D776D2FBC4A8A41C' : true, - '2E40BCD87CC3A1033F406FD9FB81C5F405BDFC21283B22CE396562EC17CDDF02' : true, '2E936472C0CBE755C72128EECCF5BB8AE91AF188CB2F3277B205E27904A9EF20' : true, '2E9AA94F913F869B027272668BCA46D5076503EB9550737482C337950749E946' : true, '2F3A46F3C2FC1EBB5FB46B3135B7B4ED88CB515C2DB9A508716102340AC3583B' : true, '2F56C46CCFDB3A3F0192313C4801F02FFB1738F328CCF0F33F44C0731D340DD5' : true, + '2F95B5E7F929043B7B2C14546F4E0452A216CC921BBB236C9D8F5DBE30D169A3' : true, '2FABB733337C02FC7D79E61202EC0FF7115DCEE66134F5F8823EE61CB7000005' : true, '2FB44A33A5795F520D20CB4ABC4AE4E239FC193CC2E3D3A85056685ABDA9E0A5' : true, '2FC3524D85A62187238D399692A116C52E4640DD29204B12F991441B7F01E4E6' : true, - '2FEC6D75CCD95ADD4DB327257B4E73A880CC462E1760267970030576C46E0077' : true, '30547BCD70F47CABBDE76FDF5538C39D1894B49CC72B0A8BD07250A65E2437F9' : true, - '305B4CDDF744AA543DA713E7E60C19ED5537D49ED2252330B46B7E664C4E588C' : true, '30664111831B947406CEAFC2E660230B307F401DD060852E0E5281C95D9F526E' : true, - '307483FC4C0D7608C2B6FC2DD068EDB1D686085586C4CA4284791294FC664D6F' : true, '3074E85BD8520085B6E6AE099964DEF737BF95AF53A0A8F3C5F4B4D714CA2824' : true, '308F0B0CF08358D501CB807667A31FEE7FDBF7539E1AE74945DD9245AB9F2CF6' : true, - '30E358967DCBDB42F759C5380FE945EF7142DD37D820E199AEA23DBA51EF541F' : true, '311646C51E3AA0B2E8022B6B1D95E83814131B16921B3B38DA1ACA9518AD4602' : true, '311F6B428C4994F2677A56588DA04B704926D737669A76B1B3C8504EECCE4A61' : true, + '31409761DAABE788EA289CD56CF4B7C2BAD543D7FD4347E2F567264195F5EA37' : true, '317B7685779DAFF1AD898FA790781D54D3EDC11621D1EAA3F4A9BA3262462557' : true, + '31D38D516353CF47DF9A73CF8500D63FCBD9CD963AC8FDD9BB722B287B9C2880' : true, '322EC261687A3829C2C0F1FF70B3E6956F5EC01497F58A422A099521BC236D24' : true, '323C8E2033ADE1E8793BFDB767213691270543CF88FD6356194E5A8E87A755E6' : true, - '3264E084FB98F560090992151EFBCB41AA84EAE0C3D8378127A974DF81473E9E' : true, - '326F94C0B20B06F11A54904E31BCAB0C1A4DEC790BA2D1947E0E11F9B7210F58' : true, '32D398E73D053561EC78257EB01F0945C2A38D9F80674F6F2B4B10BA35A2B4E4' : true, '32ED76AE2E09C58605B9C2BF6A27080DB8C7EEB70889BCCCEA72104C7F33F95D' : true, '33512B5F197ED2B530575C71046268C4E2F5724B645B8DF1C689EC535C0FC791' : true, @@ -222,214 +215,218 @@ const X509ChainWhitelist = { '338CC51C8910ACF7DC6CBC3AB6F2E288D38A7656CD78BF22C57745EE3146BDF0' : true, '3394F2FF8A20D115C929711B75D89260AB3798B93A559CC8BFFBB6A2F0463D12' : true, '33AF2CA60F79D526019EDEA838ADAD51FE541F589F09B0C69A0AA288363D3C72' : true, - '33E0C503F4B4CE3AB1851ABE4630DDCCA720DBE3634CF7A5203ACEAC15031F12' : true, '34B1CD29AECA7639010C4082C4609B8EC6EFC5DF272CC90D2650D01ADEEA8A53' : true, + '350123506BA002EA62350E82CFEC1DA7BF24B405C4160EF1BF4C445F7DC31757' : true, '3551069D5774095145A9731885485CE10FBF3FB46144F33A4E48C03CF2E475E0' : true, '3572DCF086FCEFED230B4D1B47E73DF410A5C775BA3BC9DC2681204F2E980BC4' : true, + '35A0FA13220E762AF04C6148BA44189D2264555AD2FC34601434778390FA5D92' : true, + '35CE5363F4A107CF1BDE8CFA1F3636AC081B94188FD008395A1D8895B5AD2A27' : true, '36267B2A60E0B5997DEEE17CDBE6AC7F7D54D279C6AB4F06CD469919F442E6AE' : true, - '366B123FA1EA2FF7FDBCA0422E504C8E0AB62334AC8941D307060F5ACDFB58AA' : true, + '36C766FC49EDF0C95C068E89E5AFE604B86770D48FF3CF6284A579B200355C09' : true, '36E58C6DDB5038020FC61F17D2728311DEA600AD9FBFBEBAE2EFBB7B5071D884' : true, + '375A5FEFE06518B0BFD2CE02034E185A44118CA92BEC6FE2D5809762C89E8C67' : true, '376690DCA49A37377D699141D59A549953B2A0B730729BC6FF8BFDA67433F763' : true, '37DFE2D5440429C8D48258C7E68500C526C81FA4606E45B6611E68C6AF2917B1' : true, - '37F9EA077605A59865D6CE500A20AAFB318666DD42AE9B17FD10DF4C4DF4D157' : true, '381FB3EE49812423C2F3CA943350617377D0E36E0D7FAE21159F648DA79FD32F' : true, - '383BD359B34DEAADBEF73CF41B93362BB3C59688EFCE1E8403C50C5783F1C50E' : true, '388FDEE7D1F4001D828D2092BBEACF16E5D50375BC16FBF1BA058917BFA03C1F' : true, - '389F1D4E628ED38863C27EB889725AE154D942FE62675E6435256BB4A4EA4D3B' : true, - '38BDD8D544DD1094861968FB021D7E27BC2A9D0031AA914F3398C377A4B5F9EB' : true, '38C737C9B8240CCA0A28FD58D0C0C697B8D1DDDCF895D3F3256D1DAC8C08F513' : true, '38D12483160C6E3AC330EDC1DE173382B4C2AD79A298155181CCBC9A10CF6495' : true, + '3917E4EF55DFBA1A48DF46B693E2E72D708B7B6146C8686C5B3F94FF8B3704FC' : true, '392944F5A1C82284C698C6BB512CB5ABA48445376D54BDDF0A53C66B832D1BB2' : true, '3955C196410B13A2BE4CE66E7CA1238F139DB5F00E2DF2997CD83903BA064B4F' : true, - '39863EF0FA91E0729FB834D4F99A376FE60A015301FBDC91EF818346489EA0E3' : true, + '397B9EB5957CE4F48570ECB1A512AC0CB669DA638AEB298B95C9F155E2D0A841' : true, '39BF13F759A9161866C6DC6898A5E6D71FDDAEB9EC5925FFED274FA8E5FE34D4' : true, '3A260A20CB6DC9BCEE25A21284C2304A9744F494B37359F5F0AFB46A1D0DABA6' : true, '3A2AC86801E185B3B8A189C42AF1574721D452DA425CEDEC6FA0CCD44894BBF2' : true, - '3A694CA4161AD11D5C049313B226513207F5FE4C8966F6886F7B49298494C835' : true, '3AA33F69018FDFEE33875D0690C26D0CBDBED363252891E02592E0F2E2E1EC93' : true, '3ACDE8B9E6B1100535007AC7316F4587DEA84EE0DF1B344DECEFFA952AEEDF96' : true, - '3B00662EE3F01FFE2C40842F0F3B76C039ABB785962E371767E89E2AFA311A74' : true, '3B1CE26F0C0E4393AEAD1BEFD39546A60E52ED5E52727AFEA827E27CA20453F6' : true, '3B209B5718F54F113C557AB8D670B1501B05A16B92E6E16BC97D026087B90C3E' : true, '3B98E076AAEB1E46BA5DAFF4914C9E279EFDB41A348AD849756FC33CB6A4881D' : true, - '3BD39467620E6ABD6EDEECDB96477E54E67F1F63377B977E1C9E2371F0911922' : true, + '3BB4AB8E09B6EFC71B2B292A489372337E48085BCC4C08431D090D63C8920C78' : true, '3C96E89F8B86936DC4FFF044FF1AE0F5C26BBB357356C47EB977C5E5620EE434' : true, - '3C9AD3DFF4DB327C01C03D00389A76E5E699D4C4707E23221DA6C61F949AD532' : true, '3C9E6298F6FC43F504BBBDD12ECC94B4BF47947775FB629D1E1683D8D5AA6A8A' : true, '3CB171EFB062C3F0AC1CBF88CCF28B562B382A5EE096BB48394B16AEE1623F82' : true, + '3CBAC1646A082FD6EB8B9F2A844C1E6314F80DEA301385ED296DB13C3C37BE91' : true, + '3CC56DD89816FE295CF8990750308F966BDCBA97C5A46F6DBD5B781686D2434B' : true, '3D1C44AA234496D76A6BAC3434418253903B3C5019FF91F78348AC7C14E39CB6' : true, '3D666AC8FDB8483D6006C9E22E5E9539E27B322D5BCD0AF264DC8878F9476DB0' : true, '3D76435F7EA7583AD6F474333B7F8AC6368ACB53FAF4AFF9E8644765025ED427' : true, '3DB253A22F1FBD071CBAB9E97294CD6534BC74430123B82198F7A29ECF800D64' : true, '3E08AEB4D01EEE9C19968EDE2D5FEE0E974E6B7FD65769E767C28CCDADD85D46' : true, '3E09F448ED5A72584FA305F82A25706D2AE756083530B4E18665DA2AE46C1410' : true, - '3E0C00CF982CC013733E0AEA478B7329E28EE2A7627E7BE5A53630744F024765' : true, + '3E14ABD512B796887AD5DE7791E098E11B9661C969801944C5F9D9CC2E65A216' : true, '3E5558CB92AEDC7E01DB0FBCD0825CC0F51AA7B683ABFD01D1E5E04C8A4D716B' : true, '3EFF635571ED85551721F01985D1B2C62613C2B7DE25C8DAF17A8767ECFCC39F' : true, '3F1F9323436BD390A2355115CC333592B4B5AE3F3BA2755D342CD863371EAB1E' : true, - '3F56CDF75403392B96E7DA06DEB55C70E8D9166ED6FF6B84D7EC4C176157E6B0' : true, '3FC92874F07DB0DEE11CCB2CA7BDF187641DC78ECE4C76E71B2253FBBC17E3FE' : true, '3FE67F5B06535FC13DE42FBF82AB1238C7C899491A460D62CD2FC08DC87DCB73' : true, - '403F573E7CA3226C59F2AE1CE93EB0EA27FBC8E8A3EA711214FA21DFA6FF0262' : true, - '41748175B1E9E26507156E326B06719603CCC2E54D9D1FAE0F6881012101F692' : true, + '411ABA7575AC3548FE6E02AF1E192B80ADA7FD957D2FDC1360B747598D1327F4' : true, '4181BB2178C564FEA4F0F5C87337921A1DB4C1CB1264B1E2168FFAF334C7DA55' : true, '41CD7602C418FD0831F1F207DD50A19A0A03679113F8508F43DE863AFD32FF45' : true, - '420E1CF047C7A0FEA28411C545C2E0AAC2AB31DE5BBD13F63022C0193E03DF9D' : true, - '422E906DC5CFDA0E2B9711F05E3A36299B9298E7D23392C3ECB11C4173F9DCEF' : true, + '421255699474B76638EBF0F0B09FB1D5DA870483D1F6572913EF411B384DE3E2' : true, '423D0D4DD3D4B507C4115C46321A9B0BE3B9D7224DF626D2027A30FE682099DE' : true, '4245AEAD44ABC8177230DB36491E58FE885773DB0D043E24412A8BF6262D506A' : true, '42A2B7BAFC9E81A94112C062E15EC8017861988A458D8C52A686702633559BEF' : true, + '42D891E625A2FE563C10EC705A036928A9EED088915D480F5DDEDBC4BB35A557' : true, '42F0C6BD144E105B3D14A68E267DDFCAAF76C95CFA265B187480EAB83FAB9215' : true, - '43555C20820B179886354E63251A21247292B3B7BA46D8BEE860A0313258136A' : true, '436A3291C05BB22CBED875AF7642839CC42E7C0BD534AA6698AF162F790F90BA' : true, '437B07B7934374CFEB2F61FB1B9A764548A53C9255F053C59E236CDC6B89B839' : true, + '438F971859A8E9513FF0A066A2DAB7A7605BA447CC82183DC88B53CAF49D1A37' : true, '440D00F6A763CEAF241756BFC150BABBB724D3AD48D6739ADEBC84004E24FB7A' : true, '44C748D62020862C698F3A1BE86A0261BEEF4337B6E28B3597F7FA0E4A01E49A' : true, '450608B6DCC297A7FC00DACC4455E165091B8A4B56873B61C4ACD495A32AA2B7' : true, '452F8C17E67135B1FF58F58BC411FA165E80838C8705B1F6BAF1C90F287BBDC9' : true, - '4582537553F4CE6DAFA6C46939EF567629506C16E76A9F058E2DB3B2435B272D' : true, + '454B18F6DAEAF7047D5B6CBE2639B39B2FD036870978048A5076DC8D50244365' : true, '459F25329680CC7589904EFE8F94F17880AA9DF2BA9408645BC9370DAA937471' : true, '45A2CDAA5DFAFF670425706B6543FBE161BAB6843A156A1D54F340BD8CB87970' : true, + '45C9985056B6629C3B4566E54648AE5DC504ACDA5569CE68023C39D9E554A217' : true, '45CEF64AA866F2A2A72E13722374190F8EEDFE984F022C3B23B492A073741EBD' : true, '45D1C3C1E96982C752313C9059D4D6291BC0652ED7B266E25F67738E4D74915E' : true, - '45EFC525BACC3D6E5AF98E1BFA4A60582231A423EE2E52D5760C184E66241DA5' : true, '4603C35A8304F6057C253381D39404E8B40AE0958B4EB2CEAB7777CD85802C0C' : true, '460D4CA817FB242D2263900689B3CBA7261A390B018391C7E1716991BE8ECAA0' : true, '46236B9468DB40FAF467AFB0C35B517E514251530785695F54440E6730AAE44A' : true, '464CC49DD9D781670D5B24D203D45F2CD011F63C8775862C2D7FAF4B23C64EEC' : true, '46565A05B815225FB600CF1CF1EE4BDBA5A7D39A7ECF45210FEF3C1FCC2B8B1A' : true, - '478E954CA5A715BC4E78DC2730A44ADFBB20D225C3AE4562882E0BFA3B13E374' : true, + '471B0944B33214226AC225854FE158436A278A750C082A48D9E7A5E2A0E1715F' : true, '47C5156F5664D1535C58F11AEBE349CBAEF19728907EBBD794D95E275E5201BD' : true, - '47EC7A6E4CCC0CA9BC386A23F5E31BD14FC0501A02CA4B5867663339257D6EB8' : true, '47F4235DE4F1BBD02682F65A8B465D04721124582B6DEAFDAC164A699F56F419' : true, - '4800E67D74EEC480EF1C5E3B2CF779C940C3177A5713BD1E1B8CB445DCA65345' : true, + '480B822D5A85FA7778AAB5735E46949A668EFBE1F6E8CC1107B01C6B761C2089' : true, '48544D794B99D6942B8C3B2CF051782C2F6CE051860BECDE2736C2CD6A429893' : true, - '48DF42F374FDCD58EB650256F421F6C1A73F663DCB8DE0972DF9421205509F8C' : true, '48E8ED415FD8EFB4407D0C67F3A4EBF15286569D29D566DEFA8B7AD8F135A5CD' : true, '49558145AB82E7F795C2E45402260F1AD1ED43D4DF145CF2577BA1615CD00843' : true, '4A25089DCED84BE3DB1816DA1A2619E2D39D037A7561AB7859949D1401BB6C39' : true, '4A80A015BEC13BF13BF90A093212BC7E939DF1F5F535730273342AE942769A2A' : true, '4A978057E01B2F443BFC218B48E7D00D2542DBA58ABD2609ECE7E152A8F86292' : true, + '4AE85007A69D54CCEA04A3FF18B66CA5AAAC43342506963BF910E2C2C3AC8816' : true, '4AF86DB451BCBBB3BD8BB3D5982DBF4451CD96394540DE9FE6210E69F7C2F8D3' : true, '4B14ADF4E6015B7F5E4EBBEAE635E5FCA547B1885B9386DFD76A25B8D2A2A63C' : true, + '4B1887A5BF5071B7F9EF164F10C4D3B4DADCC0144CC3C4BA26707AB1D336E0B7' : true, '4B29F275C3803C8B4E50951895FE2A4C94442F4A7D14922D54EADBCAAABF4056' : true, '4B50DC7F1BFC4867D02B551EBF66F63645DD5BC27681BA715154809449F381E4' : true, + '4BA794C124A33334A880DFDA09E7CE5B10552C8301447ACA77FD53CD4CE9E725' : true, '4C30D24EA7A5914CCCA63E3EA35BC8FB1235F5DCF380DD8A62A01EF15009668B' : true, + '4C5B87AF5F835DFEBF4FBDA9585178998AF6C7E8681DF65E46494A8F6BEC6EA8' : true, '4C71A0F5907EDCF7950980BCC1B7B6E00141C1FDD4A50D445BB43E1E054B59C5' : true, '4D112C44F7DBE6E0A55667E639E192515C54B00CE5E964EF696B13AA049BA656' : true, '4D26A014A4C4007564C743D9BBF9C2DC9A5A881C05E549DFFDAFCD3814F3966C' : true, '4D6CCD149A9BF9FA30CD78345F827ADB4A51553FCCDE1811FA39872E293EFE59' : true, '4D8C4D5D0326174F4268C67B81010F65F2DDF58CE700989FFFEEA379269B0AB2' : true, '4D934EEB8A02C8031AB9A12A52416AAEEDB4B2EE58FDAA767FAAE917AAF8B645' : true, + '4DA82555F55AC2CB08AC556D75E6C96E1E7CBA6080B1C9F50330ABA393550D18' : true, '4DAD9C6A183D4E385824B6026E226BA5F220BD838F827C2063831B5998504253' : true, '4DC761701AB68524A6BACAD94CAF1D8480229B66D8B9B9C0CDA3D3B233A6B785' : true, '4E49086BA0B8B96D1C31415D8A1464F19B93CF45B46D04AE4C21672279ECEFFB' : true, - '4E5AD8D52C37A505176F9BA95BAF43CB5FD5A7FC4654DC71178ABEA8188E7ED6' : true, + '4E9BD8EE95C95E2F30BC2874E73252CD5F1E93ED8044F8BDB007117ED14E2959' : true, + '4EA0560BBF74EF86493F2C828377068522430AFFC664B1D8E1AB3A2B7AA54FA4' : true, + '4EC463F17C54EFF037FFAC18326F5C8D86F5AC295149408499042DC4F8A96B73' : true, '4EEC544B64210519ACB153834E7AFE21867AA949946FEB78CE5A254D12A0934A' : true, - '4F8EE39D7EFDB0B9FD7B3E781B24978C6602E480169A6092BCAA90386A0AADFB' : true, + '4F2585D48325C6EFDF76B91358BCEA97A428B95E575ABDD83028DF3C7AA10FB0' : true, '505707224B14F1FFF2F5937865DE662C85B0C21D090C59658E24B53CA635EFEA' : true, - '50C6F0A7DF1F05E81EBD31ED778C2DBD7A048043157E91E43B051B34C5E843CA' : true, + '5067207C8A7AD4B7C06290052B7A6395CB34AA598FCBF2811ED504AEA1619C9E' : true, '50CC4D1AE164F66EC09AA6B7D5931074094FA1BB6788AFF3525D7711449CEA81' : true, '50D807568742476BDDFB2B2DD7532ADF770BC0A5D8CCF0710AA8EDA90AC1BF4E' : true, '50DB534A27B601C2268FB45FC5F496F4457DC030EBCDFD6221A85B1D6F612837' : true, '513B3B0E023E7013AD1D77E77AFDAC7D99627F8EE3C8FB291064D6D56C3CDFE4' : true, + '518B663FE089FF3E12F169F8EB5DE2EDC6635A11F14B7FD4207B307BDF2DAED5' : true, '51951278BE011B8562F6F9F629855BCFC7F28856755EA274F29109E2489CCAC4' : true, '51D06F5BD10CCE82EF993587A687822C99C3D8F3DD2F04408E99A5388C07333B' : true, '51F3918557C9F6EED321444D170BB23E4A558FDDE7B966D11FC6B426C51D1676' : true, '51F5AC607BCB1882F792585357C63B23D08267F717AAC5BE2AF557123EB19446' : true, '52064B1A1610B2374CC7319E51B4ABFAD46FA995B9447DF18ECBFC68382A9ACF' : true, + '5208CCACD74C6B569607B3AAB6639B318FD5CEB9E3A3C763F11D6C4BD603ED5A' : true, + '521C2A94F68FD0E4A39D62EDD2F980BA51A70DE79312605479C49E9BD633B854' : true, '527E1D8CBE4936132EB16202101509A3A0535CEF78476DD9317AE7A31C097327' : true, '52AFEFBC93919093868483354CF11C747FB38F946CDEFDCFA6E5117FB0F5039B' : true, '52D622E1A7705A08FC599381FD67871611748B8EE9BD235E6C2A91E315C251D0' : true, + '52E62F52537E672C499E0902B25BC800C87BD8C45BAB7B9683811A7D09C4559F' : true, '52FB96DD74E66D3AAD9362B58E44731D388E0B0E17DE700E2FF3A7ACB2FC1BE2' : true, '5322CEB4048FC373C5BBCCCA48985E2C72A380ECB490D143DA16482383C74B2B' : true, - '533D8997AAFFA435583E114FAF33F105F8CB1B87020DC86F5DA948808EE81AB4' : true, + '53A96B8A54585360591C2CD5A84E299962FAD97F6C1FF0D55484D3F56B2FB87F' : true, '53BC74DCB0A19B859F3FC60A2C6410D22F86321E2AA4D03B08C53181A0FDA996' : true, - '53CB6E4A76F1BDA96200BC21FA943685A88C33EC1A4510F4073BF54644475390' : true, '549714E49A3540F72DBFAD7836857D6566333DBA4645F3C4F349E5FDE00D4302' : true, '54B2BBDF93C79A91B1DC96B4534B8745690C5EBA5FD21A24462ABCE7E869D178' : true, - '54F7FBC10956E45F93F952A8DBF75467CA09CA6D45A0FD859761B66CF53A61E3' : true, - '550C98DA3C1CCC2DB49A389D57397C73C4304F4A4B65A1EE1A300EBBFAB97478' : true, '55360AB9E4626C6A5CABE53D4DC3FFE3339671F040B96E93C3B8ACB6CB1AD4D1' : true, '5572DFAD00443E9C4B0107CBC9FC381C41F3BD44497E4142E63C1E5645ADE8F9' : true, '557AE25211574C66868033236E50981E6DD3AAC09C9A7916CE3A26D03420E774' : true, '55DB7B0ADB76D9C23CFF1CE64083074EAEFFB1F83642E1AEC2A7FBD365A9E962' : true, '560643E22142CFB43DC9055CE558A62AA7102F75F6D42E3CA314920016A5779D' : true, + '562245CF8A84D1D3C1D6B93E913E3B22E5EB561788981CD666125C21EBF44D88' : true, '563A36F203C4A0D86BC2ADC38B1006499E3CD3D651B5C97AA848494CBC5582AC' : true, + '56471B223E05275BE6DC106B9104B5205CE2E6FE11115C5BE564B51B965B5F09' : true, + '566B4401F65B5C29AAB831E836536E791FDCCCE98184D62C0A26E6842F55D303' : true, '56A2C00BEDBCD3A014C22A89A1E887CB0F9A2095FED90ECF196F6719EFA35A5E' : true, - '56B6BEB3100D40CAB0EA4E450188CDDA653F473F3F182578AAB314006E66FA5C' : true, '56C3C0B8AFAC13E7ADBC449142D6782CC3C31A5E19DADEDF1CC01A1C80FD6D4B' : true, '56E517CBA2C7389F835B1BA349D636309FEFF05323957D8E64D6A2EC78F22883' : true, '572F317B14A0D117BA2B0F352841D9AA5DB609C9C5F9A9CB837D56533C983302' : true, - '5747EF64E7C857584498831611D042B568A3FFFBA79F476ED22F4D07E5239266' : true, '575B7E593AA02701C1596A6A45E1FF458D4626BB2A31F5D3031B2023956FE5B7' : true, '57A0A93A8193B5CC90AEED1D0B92696C9516F2C3A6FAF86F7BB8126B5A691311' : true, '57B2958E7031793509E2EB58DE05C460E0791C4F78A43244640F7926FA3BD7D6' : true, '581247229E9E4F0D67498BD22646654479F5E0E21C96DF47CF84EC94218EFAA6' : true, '585568A4010D0650BF0F0C2F78402F25FBF6D0B8C82879E5B475708DA6617E35' : true, '58B590F006C3B293A57D41FF491EDACB580EBBF8AB20A91D6F8F0ACC3D3C19EC' : true, + '590F7D88D52E1E705632486F4CB869B519331ABADB9B139951F8705F33E42C55' : true, '59148BECF90A7738D4915EE2C70C38F7789A26131E0FDC0240A76CA7153EAC00' : true, '592C1FA32CB66B17E0ADC3B3C6C65DB7A7B8863D0302D5E51C53416DB637BE6B' : true, + '592E6A566E519805F81D7C487817C94208B9EA356C03D1A69A3D1702265873E0' : true, + '59473282262DBA200C960F2938F0683168E8316CCBCA3FEE394F0F0D54A4029C' : true, + '59AF4358506C0A2318F28B90E799634921C869C5FD8B624C9D76756E2A9FDF6D' : true, + '59BA7AAEA0B865D4463836C24AB3BBE6D77AA72177831208B2B6A34C8C1DB307' : true, + '5A4A5D3D8F496476A5004C4964B6D4DE0DBD10410CC2346010753DE073A4A315' : true, '5B3B3DEBC9899E074F2AFFE1A660013CDFD66E4F70948B72AAA20DF84433A80C' : true, '5C1AF4338F1854843A251AFCCBFB2F626FA70E1DE41D2C941F34D15230BB56C9' : true, '5C1BDEA6E4051D2FE99D2502AC86707BD008636200DBEE30816399996D796DD0' : true, '5C3F4C823A953A561E8D0787CE7AD8FAC7434EF57CDEFA4520C18A5667C82003' : true, '5CDDF1DF7B5333F1B4C0FAA66297AD72ACA5258C5E9FDE4B9ACD9EAE832C7A02' : true, '5CF1D1896FCEF8E0B72BF6E617D8210ACE7DC6393E38FD4BD4C68E2EFE2EDC03' : true, - '5D133D3BC732EFC05E4C91931F8ACEC74F9BE1FFEC30F8C5E38616D2AF7BB20D' : true, '5D93064489EF0EFC4896A08CAFC0E39631930121F724A3D1CDFB83C96EABBE9E' : true, + '5D9A9954AA2FBF6B426E2D08BCB18387123B6E2CE67BE2FB9F60F8D4B405CD20' : true, '5DBEE57E22D11886178D1B5DCB4CB55C90C1C035B7914BD887A3BF87734A3806' : true, '5DCDD41A1C6B5EC3D7442090754B58FF81C2BD410EE5F730233F5C46B0E541BD' : true, '5DE0EE469B7D133584FC7B15F067761A0A18D73CFCC973EDE76DF596C4F7C9A7' : true, + '5E650BBA8E8037D6BBEE78A730F740DDDCDD7EC828120AD912F4BBD72794070C' : true, '5EA41BBE7505A57EBB3603AB14050A284390BDB6E72B39D918232A5D13E702E1' : true, - '5F05ACF54EAA38008B650AAA2DBB3722805C793616B1A21B43E1879107254E38' : true, + '5F24DC1AC032BB0FFEC76D35C0091D9B658E94D953C8F7576A7C1613ECD728B2' : true, + '5F5B785C935A6757DC0031E7B064C8C456F41CD84F59ADBF9AC22BE75E9442C0' : true, '5F61E01E88738DB91B4328949BC927A80DE24814DFE2B54F9F832FB7871D6926' : true, - '5F71744E0B28E62ABB0626131E0877737B5084AA6E648D268DD7D0D26B115EA2' : true, '5F85D6DF2EFBA0438EA4283D734CFAA8B3C43E22BCF7F6CFC24DBE82232ECD3F' : true, + '5FA6BB08BD3C5B8DEE211E5A08EF52E35079546ED797587E78751D36B31E09D6' : true, '5FB6ECAF5FD5CA42241B12521D7BB6F06B7D804C60C84D7BBA7B7A7543FE754E' : true, '5FEA0DFD20247FA12D63859439FF9F4D5D0207D6E1134820CAA9CFE4A1B08FEF' : true, '60E9F3B150DCF1BD90562DEDD083FD783E2CA9A982C08BCA2C455F50BF977B98' : true, '610B774EA0B634E6F9B5A73C2DE39026C1A55D9425691B68DF4803228BDB7F8A' : true, '6129C7157898F2D29FDF04A78AC6730FFB248F7467858C9F3441A5D4D6B88C8D' : true, - '613E70A1BE3CA6314EDB7C00B2477990271E0C8DE8210EED56ACD391E8CFF28F' : true, + '615745882CBA2C8B9875198E3FB62A6831207B74A21330847BA9AD01DC9D5586' : true, '618F1FA3F38C857898847A865AE73D87B0071C8DCFD4EBB7E80828B11862151A' : true, '61BA185CD2FAB39562813CDCDDFCD75184A1572E2B2B87667728C2EE8596AC65' : true, '61FDD344421DEEB7314FAA2A6C1A5CD97720CB90B48C801EC4AE74C7D88F1E39' : true, - '62210E1578BEBACCA159EED5A0EEE3192B7FA0C17FA2556A686E28B251D80C60' : true, '626D3DAAE3451C750616F520086766043D22C2E2C34F483D6C7EB06E76ABF206' : true, - '628B608326DFE57DF84B8289702D0510AF97D93EE30499B0CB5140921EC87DFD' : true, - '62AD913E74BC37FCF69CB86718E13A47FDF1440C2B18A4241D3EEE7831456160' : true, + '62B59DE2632C2A03669FF060A2C2047B9A95F49050C64B6BF5A782806AC10E99' : true, '62C9A052080F8EBA5E8FEB9615B5CDDFFF1D74F8467653030CB1BA12337EB5D7' : true, '63448627F20BDD4F11B278941D82DE56AD3A689CC06064D867FF060FCFE29A49' : true, '63A4A98B9778705A9CD9A0F1A40827B0A6C86E2A520DEFFB1AD8F815D760D992' : true, - '63AB6D72993230FECFB8A489FC3B76C1A16D158A2F8C0AF9AA7B02F6A638F4E4' : true, - '63B7D2C03D1507A80B8617E50895472A3C9E47CA34E8756069378DCEF952CFD3' : true, - '63E6A22E453B17B4EA3E35C6E39EB315DBB77A237B1BBA9BFB2B3BCF675A63B9' : true, '640ABE7DD00142C0BC18A62F0DF54284DC89AA1BA000DBCD992F719A4B9D2887' : true, - '644685FCA2BDCE4C6D4AA3876174676CB961619414083ADA90FE2443CF929D32' : true, - '64831454483CA9CA55859BBD324F492638DA8179EAAED19EA3CC8E16FCE7A83B' : true, - '648B6539CC321D112EE1762198FAC01AFC8B598E29317833ACFA9C02307F5E72' : true, + '640AD0B7F4803223887EAE106DDD628BED925569AB309C01E1C8B640FF05B2B5' : true, '64D1D9522071A54B43A6C43A759223AEA7AE209FEAB423EA24E3E95FD83BDFCC' : true, - '64E4359CB75DDA1A17413906C2881931CCBA16E52A52F13F16E65A752C2097A4' : true, + '64FA303A129E23C91B42F1C76DBEC8089307AFE11E5C937704D88B919BA60B45' : true, '651F8FBEC4C5909A0FDC3B8E8D557574FAF01B33981B5B725311B57DEBB47B24' : true, '6581498408FD7D10902F7D56704A23B3278D6EE675FBA214F305D43C1B620CE9' : true, '65ACF48C5CF24783794CB8D5AFC30737273D3DDF93F62EF803EDCD05650D775F' : true, '663A06084041682DEE8C4F8C41BB7C829E5946E2A83D28BECD5E62756502825C' : true, + '6640103D01C44839CC471424756C6CEEFE090B3BB98534B35675BC524D2FDA50' : true, '664EF517A09AAC31503712482FAD76860E0376164400E67A96177EDC25CC4CE2' : true, '6688912D47D0A49A3BF7EBA09AFCEA36E0D4DDF4BB571B383C134B763B17DF7A' : true, - '668B926F5EAA59F351B7ABFCBBE5FA17B547B01C5A7D4AE385736CE8FD13359E' : true, '66B10F427AD63DB6544E9E20191BDE4F827A7C96F1DB17E01E0B254D67BE282E' : true, '66D67EC6407BBAA2F4A0EAF49D81F223332DEAADC96292827CD749DB07A82C02' : true, '67118345997FE5257EB55439485C3BE019B32F1235E050EA2769A7DD80E6BBF3' : true, '673739D407C00E1F449A4F9846B8453C09BA0D0F46442053DD5339F93A2B0065' : true, - '67F7903A02481CD91A864899AE21E1D8C7E7D3FFEA34021EDB6F29C3DC9FE9CC' : true, '6860622481E0AB0EAD93B771290792279985D4989D072D5C1E376F451FFB1360' : true, - '688CBCC96F65054917A6D042282C3E33BC4B2F7A7F3C2AA0EFA97F31F2FEF21F' : true, - '688FE577BEDBA2FDAA3581F2A97A1388CA0E380387227AFB252297AEB6BD6FDA' : true, + '68DCC59DAF7A9F7BD72A11A0027A02AD2A4015C4D3351E331FFF7DF81C41F6D8' : true, '68F575FF9F2EE5CBBE2975DB80B0D2E8582B2B5A1624A70EE6470FD562D59E93' : true, - '69643C10B6E53A5667D8BAF683B1D566BB54B001E0588D7B791E648EA5681BBB' : true, + '692C0A28DE13EBB75674023CC105A5F663CF5C67153225EF1193209E985CB1D4' : true, + '69CE183BD9B04AD76F8FEBE25095D92D95888AA7D8735400158CD60B836FCF05' : true, '69EC7BB154853BCCDC5C5646ED659F54B957152BDF1799B2BD48D4EF52DD9A85' : true, - '69F71F4F07365D7F684EC748F9CE61559DA33FBE1C9772F836664D656F51A5F6' : true, + '6A7D32C4F099C8D7ECA61CECDFCE82C5D241F33F6A02B3A00D89802D4689DCBC' : true, '6AAC975279BDCCFB9D64F96F258D116ECDC41E526DE6B14FB10A8EEFA550A784' : true, '6AC112C1828538894A1FAC7CECE0ACFEE75658118041513498E880274BD2B7C9' : true, '6AD39077DC61A2347F25E34A809107D3F11E18B1E197A88A9A39F5FDBB0A3861' : true, @@ -437,16 +434,23 @@ const X509ChainWhitelist = { '6B16CAD6D99596442162EEE7113248C0C77EBA7DBE1D3BDC044AB9802337D2CE' : true, '6B8153379F9AD865DAA48C0B805430D7B62D6624C4AA9389FBD770A366439995' : true, '6BC4B8F5756C6E11852DEAF28C2208733B463931BC5413937F897D4735CC2F01' : true, + '6BF2234F99577BEF099F5A651C125E660A765202F83A7FF24C82FFC87F87C3FB' : true, + '6BF93E269F6A628136F482392804350AED624D75C68CA78D744CC06CF68EE1D4' : true, '6C2FD820535D5A821A1D96C86B45519B751F141CEE8E1DFE6E52EA5370E1E7F5' : true, '6CF13EB678D9631F8E425073339FF5B4FC020969732BBE54ED0D3087FA774303' : true, + '6D1A6A751BC763F5027ADCB9DD5D2FDD2B3BF82A755B3013851D2C8BB98342B1' : true, '6D2E55B7B10EC7E3F82F060350C9BB7DAEED8B6ACB8E79B4B088D9B711A9CC6E' : true, '6D53AA3328CC9AC46F2872113922BC105CC4A5C2B3EB7F45C331A93BBE4ADE3E' : true, '6D9C7D48EBEC4A7D808E0A45C6ADB9A6CC5E61551DDF1A24A3A74846039208AF' : true, '6DB177AE67C272A729818F26A5DC8A327236919BDF09E43961204BD9538CB09F' : true, '6DB3ED8E913F7236F1691473EB370D7FD9DA84FB1D8E07438E128878840EEEE5' : true, '6DC6A2951DC967373452FB4E9A95DEEBCAC70945DDE09BDA398F74161060EEC7' : true, + '6DCF946587948A63E73023A5F33AAEC7EACE0525DA389B15F1F8AF1AF80F51CF' : true, '6DD13D5385101A3323ECC27F7548813E240A1D58E37DF8D820CD2E2998BBB8C1' : true, + '6E1EBDACC8C14CBC6635F612329AA11C13C8C13BF612858C392A3B8C472AD059' : true, + '6E2E497FB005ECE46395535FD0DDFB0D25109D1BDA9D1933F522706D8D79E179' : true, '6EAC221C01F1C4E158E51B8AA15965260D186BDF22A579C9CE8D89E787A36FB3' : true, + '6EB7B7B5944AE125A6CB7A1E47F94EEB2707DB51DDA0A74B6DC73A9EA683F963' : true, '6EC6D27D2BE121B49CCDB7866F4FFCC3C2091AF00405CED481AD072FE4BC2307' : true, '6F45127FE064F0BBB5EAF17D7A4D9EA3A47175AEF7CAB5C98F2B6D11F28A4BB7' : true, '6FFF24F5CF69ACA10DFEBDCEA8B5A56990728D9EADA33D0CD316BF042E79068C' : true, @@ -455,57 +459,53 @@ const X509ChainWhitelist = { '70A137BA9CBC1043B06D08AF2800FC09F4D3334ACDC0915124CDC834A77564A1' : true, '711280787458F0E54B0C9294A54270FA83E8CAB29E212ADAF665D7F6345C4DF9' : true, '711C387F2C7A8AD850D98BB2D145DA6F0240960AC5563A50CC6251C28D659503' : true, + '712DFCF0FDE6A19BB956670492E1C39956012537416F6B0F90EFDF093ECE2D88' : true, '716121E1DA67D3A82CC8116139F78C34C30E6DC96F647B7F474CE569B38D0F3F' : true, '7177E89F5B3033D51F000533ACEA71FDEAEC93E4C3CEA1E0FF68F78BF35C8B21' : true, '71C96A7294C59E44C257A0BDA7578AC44118DE25DEE425F73E0A211066FE6AD4' : true, '71CBA0C7ADFA0E0688BBE75D856278A477C4041C6F0895AB384BAD02B9D951BA' : true, - '721728072AA0815DC7EC109C8737500ECAD862B2003518851C323664A749BB7C' : true, - '722368B696E375C97556E68FA5D53C3BA7CDCA15B13B72DB9E49090EE7C9C163' : true, + '7231ADFE0CF97B4891B54A4F17EC2104C2A732D06878323D7585801DC8883E6E' : true, '72438F5523C4516DEF379EA7206A883EA5876DDAEA39EC848A5C456E9215A1D3' : true, '727EB1C33A66E7DC0768741432204682504B8D4302D3B097181090064DB99F53' : true, - '72950D958C6C1FFDAED4C597635776C7EC60B32CC683D03AF405B023C686FEC0' : true, '72F3DB1BB2B0B3D65683F62D927E20C95303A00E8C845E0088E4DACD4F3B19FE' : true, '730C9CFC51120B6E5C66F07772ECB96F2933EB184A397BAF90453D2BB43BB600' : true, '7334856F73A23C5F0A60FD1EB2DD14EDB444B1B8B62516FFFC38589D1200B09D' : true, '739A4410178E7D1D310A8120651655322CCBA6F84D3F566FE9A9F1C268578DD1' : true, + '739BAFCDED267B356D90B89CEB40EF6C9C77DC768025EC662EDFE035A816DDDE' : true, '73A621FFE0ABD75757F5C92C8EF20E63EC8F4A279A450BACC7E4FA9D75E0EE5A' : true, - '73D889F527C021A7BB8B363C2467F7499145D97DB7B6E0207D6CB12DFA550903' : true, - '74395721FEE13356EFDE73462CBBFB2A471B4C95563BCDB979DA57B786D16A88' : true, '74711F9774C66CEC41DE4FD32197132B13A40A6758A106DC95BCADB9298A6241' : true, '757071EF34F3CA907D7D29C6420EC14B6953F433FA03F2049636F55265E456B0' : true, '7572D3C2860E9D28159C0337E8DC7C693F307AE0F1F02E0C35E091AC1C1571F6' : true, + '757BFE2C52AE03FF39624F9AB6449135C4499CD5BD4839C1204EAD50D589CAB8' : true, '75893F8249D9326D2316BFA87F7DE3062EA1E00116C921C6876AFF322B636664' : true, + '75A9264209E9CFFCF8C4D74F1988A6AD0F509269A5DDA3DAEFC0068EDBE6AB26' : true, '75B83054C471114D4A2839FB6B0FF55FE147D4968770A78F469ABEE5DE3E07E6' : true, '760650CA663BAF50AB023FB340DC4316998A7E66FE226C3A66E7D31CAACC9330' : true, - '7644E55E75802D6FF784B75B8D77DCFADDADA23DA2FBF95836FA3CB975C6B982' : true, - '76498ECB08242DC8AB6DE47C0EF0F87127C2809D2C1E1B8216D6297ED7D791D0' : true, + '7645E014C8465F11596B1B7093FCE41313B51FCAC1FBADD409033F63F5475CC6' : true, + '76CFE101ED5A3770EEFE332008D40852C8F01E9030C06A024117BDA1CCA7AC2F' : true, '76F8713E43FCFFDC282532FD58B8474C514D432CE8C85734923D96450A6623E3' : true, '76F92D711D9E8BB1F3210C9CDEE23CA1DCCA929595CA0F5D0C3150DA56B2618B' : true, + '77011CEBCD8791962FB34FA78597897A9CD8757BD10F4A3A595359986F6022AB' : true, '770784FC2B1A52F110194800E972006E868F055C52A8BE467F3AD7BCD7E441CC' : true, - '7889B1659DAF073B50A3FED9BDD6CA3F3F69E90E22C9EAC126E2F915C476984D' : true, - '78E4E5B9DC94A09084EF738F43D30114F90F95DDC550D6BC2ED203D722323EE3' : true, + '7871679EEF661F72EE1CCD043F1B7C597E8F23196B653B42634C37F2B6619B00' : true, '78EA89695196A279F7B44D8F1AA15080C91C3BB240F1D1878A88F2B27228D430' : true, - '79244B0AFBB3B26770A470A4F23555757DC25D3856F56D0096D9F06EB47D5889' : true, '792EE0B202E6A45AAA85E918497D9C9F16FEAC99500A7940C0FC812ECC42120C' : true, '79506C5663C38F43902B55BE2FFABE0757A806105C2A18473770E9DEE5322E40' : true, '79F3CF8BED0EEB720C3411D03257BB351FF5824181EFA725214AD60C11E7DE2A' : true, - '7A081DEE8006EF40615953A1EF9BA820BADAA31338157E69660B3EBE7852838C' : true, - '7A95B01B834A4CFF097B69C8D84488E0843D9C51A8045BF5AF6AC2CEAB65B079' : true, '7AE7C2EA08D84EB5EE0F978D061FC9D6DDFB57C1382D5215977205894898E0EF' : true, '7B90E5B537B13743AC7B5B9F3EA28B3F5F5E95A6D9F4AA0904DE22858F38C780' : true, '7B91BB0669DCF091D0C042FD14F1CA6B8718A4E1798A4BE8957DE6EEF186AB83' : true, + '7BDE39A76CE550ABEBE58E8195C5D2635A04B6362CEC665EADB76E8807C0A39B' : true, '7C63B78CCB8DE59051349EFBA4A9E34EB627F65855F3C754312DCFCDBFDC270C' : true, - '7C99FBE3E1BF4CE4683186F8BC44BEA34B07919C1542ACDE9420CD75BBF3F388' : true, - '7D08B399CE7B4D7A6DAD696C24FD870D577ED45A8081D3E1BF34577B6DEC77B9' : true, - '7D3EF8DEBFDDD39FA7CA90EAC62E660639521686926488A315B10FB2A0005F6A' : true, + '7D0D5D92F1A6306F7161413B8E086383A6A37A1AEB5E91FC39373464CB9FB217' : true, '7D4642DEBC7CF346EC7846E9B0314B73B6B9C23F8016E23E8BD49ED247D2BEBC' : true, - '7D7CB9E4195E89426B889E09DD6EF0018B702EEA4C8E1C5C39DDB538E20CF150' : true, - '7DFD6433613550E46711F591EB0B0790233460AB951DCCB4B60B61C91C359B83' : true, '7E01E1EBA9D9E46D3DEBEC868180199AE64DB3BC878F66066E91CB4C060B55D0' : true, '7E0920FB66D549811711C20F1789AF9FFC54846E738997B8A18A2F154F57D29F' : true, '7E0AB095FE17F430AAE0B4AB7490366DF97BADF13AC223D96AF0913D6919BE7D' : true, + '7E723113D07305D5E9843032E474637331F1567CF33EDD8316059148AA2E3ED8' : true, '7E73DC62FF77BE88149C85444C4066E0657AADB72716230EBC073848DBD7F59A' : true, '7EAF183A91E8DA3866531C499039CEF3AEC4F214BEE293F268A28616B67D0474' : true, + '7EB86A40F92731EBBE58C26A9ABE78C3C1D2E2406EA2CBB6FC5908EF852253D3' : true, '7F1566D05D1E3A90A9D5D551AEF51D2F1827FC9E82922F2BB32A08CDC5BDEC7F' : true, '7F7453584CDB1B6048A5508FD8FE1FB7009FB225E754CA38FDFFC28206BD2640' : true, '7FFDBE3A1A423CCC6EC3C9FCE2D51B91D70EB1A122BD7FB53875F4BB08E3E966' : true, @@ -517,19 +517,20 @@ const X509ChainWhitelist = { '8117437E2D53CBAF96B03A772D719EA4783D32C4401D6C590BA9F941C52E54FF' : true, '8133AEBBA592FF513EB1EA61723A0CEF57A583CDE66794FA9DE2FC0A8F573B54' : true, '814328B3A40AA4F30950FF66E5DF4304428357F2C5AEA8C1E397723C751651C6' : true, + '817085684B201068835A0E3E8A3B0B8CFC31CB0F8CD5E451DF94997E1A958CAF' : true, '8179173BEEC9E5175036B790F2CED009213A8FF7D62CDED95DE000BE2B03B068' : true, + '820CD9756E7EC92E85459F6F260007CD5EB8CEDCF0A7EDEF61271196CFB946E4' : true, + '82362F61201C87FE00EC65651619A9328FD56E81135F03ACC3D4B366F7F772EB' : true, '826F129EED33C26A96D2FA3EA71B7897E065E2A68280A77C03E948C9EAD80945' : true, '829124925C3F7AB9329A17C8329D55F04DE8C98994845083D9293F2546CFEED3' : true, - '82D1AEF2AFC46271D18C5FE50811DF9A5EAB812156C2FE6F531A34FD529E75A9' : true, '82F25208D7357EE223C6715E802CD0F8D019E3004DEFD76A90BFAB18D2DF07CE' : true, - '836E748E62C7EF083DEC6A11521F79E4F2EFA40CE0EFCDBE43CF3228F905CE14' : true, + '839596D68CDA901FE0D021E3F9AAA8D2163FD2B41F233D90159E656D7C7C534E' : true, '843DE3411DE65A522709898B3CF9AD8A6CD1011BAE6F9DE0FE7DF2496F95C84B' : true, '84A093B67AC79FA09CC2E40B54BE4027DE363B86EDF64B623BC346188B877ACF' : true, '84A8C623C4304D57CE03893ACBF4E51FC9975C58658B89127508E5C33BE992A7' : true, '84B91F7D19D03A64195173E28A98C6A24AD166106B5AC14B36A404C45608B2D6' : true, '8502DA6C4457ACBF635D8B3719166A351ACB8F2EAE0F9756EC1636B90CF6068C' : true, '8540F78EF676D50879CFF30B3CAFCDCDB1287CE9472D0E39AD221AC0B049BF5C' : true, - '8544A63131F49B49F2802FA5FFB5BB62D726E1A5972F668781040E2342770042' : true, '8565CBCC3E3484929C4C2D7408530788E83FF8CE2B8502125176AA2F89D3C350' : true, '856D54922C6DB9C5747A1EE5ADB099907C63E0BB928B1D00BEFBF81E6B0E83A6' : true, '857EB3AE3D76F7A86260D7DF2583D65053D7DBC30558CF41078A51A841A15408' : true, @@ -537,18 +538,15 @@ const X509ChainWhitelist = { '8620FBF8F4B3D858B8AE9A6EF3423068026CEAD38ED1B70B12E65A66EBE62845' : true, '8627217D9525127A4161D0F1809492211C4105596A011CCD2F10968D3C3307CD' : true, '8632291EE6C74182159207F88A43B60EDD3715D9B23CB51B878C7DFA413AEBAC' : true, + '87505A19F4BF8A251C9F7EEC090BB5F91FF1FBF950EFCC6BFB9B513EBB62AEE9' : true, '878F9A1345B5F3F76831E0AA2CEC43E51FD88455FD70FF0C671DDB8D8646BECF' : true, '8798A29F91634076CE7FFE713E075C4A9E231DB4113DEEFE4FF052C73E900069' : true, '88A9F13EF3721A05CD57C6E13E4B2D6F699C00312E92C24E04D86990177BFD3D' : true, - '88D68B8F6C5B10D7E9413E6B62A450E74806DA84C0EB558EE9E98E2BDEDD16E7' : true, + '88C3951EA08F6218D53C848FD0745408A54B8588AD3728B9634AFF9280055838' : true, '88DA049C5A0F1F2FF5C8D53A9763C6E53B5E653753AEBD8C1A7227F5CA83995D' : true, '891419933107B0EC0222BF502DB271240F352C825D2E32776842C40D13C2F8C1' : true, - '89972853B85F67232811C446ADD4CDCEF7D262CAF5E565E92DE28350D653B982' : true, - '8998929C795E1C1A4D769B9E0FB886892FBA9D8F1542DD894E15E12530424BCC' : true, - '8A0A728D550D96C56A17DA2A0A97A6A9CAF22D5AEC3BA7A6434C51FDBF698785' : true, '8A0BD2A91793B98A002F45011E47B8B81C1F11CF4F10550B39861B709A22A8B0' : true, '8AA440E22415685F4A009BA8F14D9B8251614D78159C926A712542B0E9FCA143' : true, - '8ADE74E6435437386C63E8C22DBF3BF0533A4B49E6668F5F15824AB58AF721D0' : true, '8B41B56DC76B41CBEF93FD4F1F74525CF5B11723140CB81A7DD29AA3D95703BD' : true, '8B83806B610FF233FDE11E892A0023140E5CAD1500847E29F5E5C6CC21BF33C5' : true, '8BD1BB8CD29EBAEB36A58AFE2BA070CBB92EC003064B71AEC49E812E39C2874E' : true, @@ -557,18 +555,14 @@ const X509ChainWhitelist = { '8C2DDBA5CA9E4CF79937A5A3AFCA79F371B6F235B37308EB53ADF12C319A7EC9' : true, '8C4AA99089DE2B772FA47DE3D9901FE175AA49A46B9D056BD8211B53848276AF' : true, '8C742B891F670721F4F8E1D4DADEC74C9E9256E0C7D132578973823FE27C3A33' : true, - '8C959CC99EA9E228577582BB36DBC373836E4D91CDD4FA3C89B20A289B11CD23' : true, - '8D0394524B030A612B174B7F2FA75A535F6DE732E9317A394BA9286CD3F42F18' : true, '8D0CF6F0B227BE9394DA0DADABAB81A44900D104A915645ABF030220F3AE187C' : true, '8D1399FC7382FB9F29574FADD5757DD9213F6A13D8A318ED9F60B9936F46C548' : true, - '8D2E6A0020C2C53A264A392C371146ACBC83A8966438387CA289807BB5583C15' : true, '8E778C2C00AEB79E3C3BD5B071E2102021DA3E343A2F39E18B0F114682974D9C' : true, '8E8FBD2654D291051FC080C47960747B4191C58D85765C77CAC1C239FF3DDD1C' : true, - '8F31ABA69837A432E88579184085B0AE867412379E04666EF880DE539CB03257' : true, - '8F9608587BFDD90423D96C82A5338A09203663970E435AF25EE4079922B60E21' : true, - '8FA478A1DE3999FD32313D519AB1BF7DA3C485C1EC90176E34F82CA74EE170B6' : true, + '8EFFA0588BA33DBD060A3822B4486504342BEDB7E0D6F04D642DE2FF89F07758' : true, '9055AB7512901D1134842CD2E96FA6A7ACD149ECB71088495948DB65D70C5377' : true, '90C2F31A64343BA4CBEEAC90A43FCBDB46932CC21CC58095FB6D6CDA7B33F362' : true, + '90E09E115ADE38DD414CC283D49DC3B42D7CD5A45E7501F60CCBF8A0264D3FCE' : true, '90E64A0F26C4DB9ADC398C779A5E526DC969AAFEDD0E93CC3D8E8409EE0A14E5' : true, '91045740421F423B4863813FDA01E15F2DBFFF49AD80C9B732B0921980734999' : true, '9122BF7F13DF3B05605A0F292B4C90830F29A3196A5156D97B76AA8507D3FEB2' : true, @@ -578,211 +572,202 @@ const X509ChainWhitelist = { '91728081A414570C9CFDDB6A7F70CE56010D44F4E165762B73F4B05436D85351' : true, '918B02B75417DE289310E10FC77AF7041D1F380F02939D64F063776F121AD61E' : true, '91EE28B14AB2C7571BE6CDE2D75FD4C05C960FB033DA819EDD463D5D3C494591' : true, - '922D7192C60ECCB0A2367C8E7897C8289C2CD7010B98CF82A964ACA2B56D8BF7' : true, - '9244CDCD0DED69F9AECD82846D0467062DDA89CD32D8174CD69F9DE602AED97E' : true, + '92059CF4A0175D14DDA7D7EC71DFC76A7A91A75F4B9BD886E5595413920885FC' : true, + '924BC74FE59554AEA09046C36D47000CC6DF8D06D63D4C21E7A11D7B3FE6DD92' : true, '926B2CC74A86E6919298CF1B5D43A44E70214CC94C416E9DA227701666BBEE6C' : true, '9295435D6B38A570B2F537814147422BC442A7E39E1AA307550DDEF0AB93C3DC' : true, + '92BF7C35E4A9C241A5D5C74AB7723187BE0D0AA544447BEC0EC3AC45BAC91A8D' : true, '92E91A15A0542407788FCD78EF9287724B2B25A27F703C9FBF2F5BEE709A68F3' : true, '92FC5C28899C60D64BE77DDC8D6F746182A5C5CAED5A3CA093E6A6FC8070B64B' : true, '92FD30739B92B5509945785B19CA286449968DDF5EF7B8F44C6C8556711DD3B5' : true, - '93197C3990B717E3C0A72941DE6DC382265AF352701F62FE07714449334CDD7F' : true, '93671EC41A75DADCAD2454D2D9951DA643ADD6C899C6F4EDF6E8806217949732' : true, - '9386153F7472D5A4E3218FC3353ECF45BE32905B7FDA3D7882C4FFE6CF966AA3' : true, - '939BF6798DB161C0B92007D4E725EF2EAE06985A8FCD7754967CE7AB0D650F5A' : true, - '93BF03482F668B7E936D4EAF23D3EA36DE0E603480C2F559406F2E44B0B3148F' : true, - '93DCEAA3D67BD8992097C446EECE4A6A02DCF89EAB0008EFAE7D0C9BE26B7C00' : true, '9446A5F64DFA26478AFBF6D0F3A0773ACDD46F1A4F7691A72BF24A58A411B340' : true, '9452917F8C5F6F630305312187EA4858EC07A829CC74DAD74BA24EFE7F4F883D' : true, '94F858E57AC5AA1A13209E8D6DB28141036EDF3AE160BE93AE79A7CEB0CA33B9' : true, + '95130BCD7669BD1B1F2FF94AF3096312509FE7FDC95A535D73F7883CAFB18DE5' : true, '951A1AEC1EFF82FA3366E4569838AC37BCE65385B88CF81B0D96B6A552258690' : true, - '95A1D4BC10A9AF2304C4C9489A3C55845CE7BF588BCF920365C6B2A423923A59' : true, + '95344A65172BBC66E7F20CBBED554FC6A745542212A0E3A782C26BE16ABDA783' : true, '95A80082CCA2E52DFF16CA0E49B9FFE32F7ECB93770D20913605BBD47A2C65A6' : true, + '960B5A0740783B428A6F0A86DD6BB5AB90A0FD0A43C237F941E64D8ED8417998' : true, '9663C730BE3E8838AF256662B79C2EEC10D7AB2595D9712EAD7BB4C8F5454837' : true, '9668363E5A4509F63E66C774CC7374E8D7654D0D63E833131665F65BB0116D90' : true, - '96ED7F4947B39E44EDCEEA05043F9B286C35BFA932C02D88A00B5338BE7829D5' : true, '9703B5D60B49A69534FA129729FE3176EA17E03C53BC90BF11280C050F776E73' : true, '970D20E6919A2FACA4E42CDD5E94B6F26ABB2AC051278F10E746CFD897996249' : true, '9728534E56087F5D0E34881BF62834B32DBE8EC7629A7EE04F52878A9A61E36C' : true, '976ECEBA965B747F498F8E4D26E3BABEFC48A6DD2645210168D7D82BB97C15C5' : true, + '977C77EDC0AE3D98F2FE87B8C309DACC9306DC575D2D8FC358973DC716EAD715' : true, '9787C483E07B0D1A0251A93D9F86495C6E39D25375C395E9939145D6C1E818D6' : true, - '979F95AFF9D71DE4B8ECE178862627DE62E0E24E5ABDA2E8A20E5177E8F428D2' : true, '9874E435B3A12419DA88FE7AE98EEFA9DE47D098DC95AA6204B499202AB1A0CB' : true, - '995FB24A5192D81E32B762C20EA1298A1C67820CC360914FCCE1613A12CEF526' : true, - '99A4816C0BCDE615242EF4FCB3CD6E84EC60952E9F97E248424080DAD5D0629F' : true, + '990A30FD404D16728C9D91297777C31FFCD460CCB2E940DEFDB037EE791604B9' : true, '99BD9F4C25AF74058C9E443467C9FBA76EB37661CBEF5A1E1244D8077200A250' : true, + '99CBBF6AFBFF1BD3AC24402B5F4D3CBD7B6984131B6B0A6955AA3295B92891F0' : true, + '99CC71A07B4304B5F9392B1D2AE627E33EC83F527206B3C1D0E6EDB41A93EC07' : true, '99DDDA7A8D6D222C3111DDF5E85A45261AE9A7CAE2972567996A7729D0FD6E68' : true, '99E2609E0CDCFD36015CC659568D5C5B01CE4F7FA0C5671738D525FD8C518B44' : true, '99F02B4F32B9993CB7656021DA511B31A2944585B6B9C6DD5BC1F4A41681C5DD' : true, '9A01E5759613554A5FAEB7E8889F18EEE16568073CCEDEFA0485F01969535C43' : true, '9A2ABE7CC70A0E4C5938A7AF3CB4C165872C3387BFC4653F48A68F39C13F3899' : true, '9ADA51307C3FA225DB6F8E1FA3A218E477F775FA3D3DBE839232E3C385310902' : true, - '9AF3A66EB67ED022E3F99B1E810BA8C0A110F83F0BF250914AA5F1F0989B2196' : true, '9B128E182D224AE31F63FA92892A8A322AE42BF2D4723D62F5A6744973C82F6C' : true, - '9B1F3F707765DA5034A4C9B9C3D341BDEDEEC1A13C3EA464045D905CBB9B4ADA' : true, '9B37ABC1012C67357E1B828C3F70EF7584EA128D20968DA23969B0BE939CB83B' : true, - '9B4F75DA103442C908F7CE2C0D7EF9674813C56C384A0A64D326BE91F34A6F63' : true, - '9B641759FBECFC4BD8839B33889BC669CA8F1592A94AAEF087967530A34BA32B' : true, '9B80DD5C98B0F0A7AE343DBB896DBCE45DA52EB4E31BE057287A2A738D9CE3D6' : true, '9B8B430BCC7FFDD28FA85A1B18690D76DE8F18DE340656F63BD1472816A3C83E' : true, '9BAE8B30BBFA182D0BC3DCE5BADF78381980EE69F15884A0B93F291EA09A7EB9' : true, '9BEB9D4CF88A648ACC9CFFA48A687370D76E9F8188AB3BD638D9BFABD2D6AB24' : true, '9C052D1467B80EC3013D5641910680BFFE3616095B7F3FE61338C31A4E08A6A5' : true, '9C5435D416BDB4EAE642E2A66B8382BC848B362E3937069725DEFD9282772612' : true, - '9C7DCBE2DF8C0BC947A09C39B1B6CD2EE137D366554F8CB46AFD80C5FA9C3B81' : true, '9CBBB47E211DC5C8FB0613F90EF2828B4C14945D15C27A6F16BA4F90B02D066F' : true, '9CFB4802809B54253FD655390678454D0AFFE4E5B0239AF6E4D5CFD90FEF6931' : true, '9D10CB4207766E66BF3482393E13D3E3BB23AEC361470B6693597632FDAEB302' : true, '9D28BF964F6C820DD26D42FFC18689C1D2FD43F4C4DA9B35F11CEB8FA24F2073' : true, '9D98952A99B9FF1B2B7A86D21F50E311B3147CD9475830A856A4C63798B05630' : true, + '9DF8866928CE72889BC13E7A31F716B17E4DBC40AD610615B10AD25629A1E0A9' : true, + '9E1FEA6617DEB24D7E3DCCACDCE1C98337E581262A08D42EB3F912333E977D39' : true, '9E418F784C18C79930946ED9BC408D8E2F694BE1E3DBAE4BB20917F8E1B277A7' : true, - '9E492AEE3B5838FF2E4BDA9FF98D73B48CA846FBD2AEEDA19FB885A489F58DF1' : true, + '9EBA1808D31F89FD26CA580E6FD37B15D0261A807154FBAF11A7DA4B0C9A5E06' : true, '9EE2376792A6437F098A3DA7A2CA9AB54D9E9138051FB201CF84A91653C9C32B' : true, - '9F194F70160074F1321FC1140FD02064E1FC084CFDB96E1080396841F6D3BB4B' : true, '9F31E8A729CDBA0C25E4D73181264776E6DC12F264ACDE58F047382B0326E463' : true, - '9F5CB7420AFF2B5250A87EE7D0F1878496A34BCADB0971DD5AC3C33465C07565' : true, '9FB66B76C9B0AB6ED5DA3188A3DC6FCBC369AB273DCA99468C1EE4604A1E9E99' : true, - 'A0212D4EE874832A0202ECD1349ED750083B1D238DB6E30120702BE1256F53D8' : true, - 'A024128989862D72CA20143420C8437F2E91D063A2D85E3B44C0E9F125DC7E59' : true, - 'A03D7CE2FA040738CCFEF1F20872DDC1E321745B2C34095822A51B3BDC07D9F5' : true, 'A03F32B0A7677B8D7102BCE24F121EE6CC503FF173C43CDD6B914BC69D954ACA' : true, - 'A06E313693C42005CB7B7AE33A96E3ABD66E05A57012B6294671FBBEF4A84AAC' : true, 'A08110BB7D0D5F694D791F82071E44B4C968D4990C73A402B25E0E0ACA5EA6E7' : true, - 'A09161C66FBE8334516AA4F5705D03ED3022BEB980CEC77041C57ACF4C04EB21' : true, 'A0B9ADCD27CD63E8842BAE80188453C09DEC27270C32748A4EC2508372AD36A5' : true, + 'A1359CA553460934748962D75921CFB51E3298EFD3FB1ECF5823BAF599E56136' : true, 'A13EAF82F0814BE5FA12BFB4D2FFBB75FC6375DF19E16B8490D140CFEB54AEE3' : true, 'A1434249C4B9832F01BE03643639D862CD66EA988BB1297822D5ED9A9D0B86D0' : true, 'A15455BAF823A9C2A7B971C6F11D799D4C6E5B59D274150AE67294035C94ADC0' : true, 'A15BB49CD56693B9881AD43F6366FD2966AF816643BB107E8A249E07227F67EA' : true, 'A16BC03AE3E35E7C39B45D339A22BEB39CEC134D6B9CCA289E873F91A384DCBF' : true, - 'A19514A23AD3729EF69553D8293E9693528EC67609464D4EA0A96CEF8E9C3E05' : true, 'A1C8AEB8D3097DE429CEA435BE063B3E16447F24132E1F1AE459C5855BC4DAB3' : true, - 'A242ECCA540644D65C4152B7D44ECC0DD7A831DB42653CB4E92406E2D0AE4CCE' : true, + 'A20571EB3FCEFA102CE99C087F9217BD081AAA8DBB618558D49EC7364AE2CA72' : true, + 'A2263FF0D63F93183AF81B16964F4C8A3AB8A02E836CDFEE2CBE32C3E09EB486' : true, 'A277B893194AE7687EBBCFA344178B3578AA6228D2B430BBE2FC8D5EAEE43135' : true, 'A278FEDD023B6A1BE29917353E38320B8D8EBED9ADB0F88A8D00434D9B1A0851' : true, - 'A28337D306B9F107098D473AF3F34D8C14DCCBF62D725D5F8EEAE11BAAC558B0' : true, 'A29725F7446E6A2AD03DF0B7D77B72F9CF0249733B42F48DA80AE41C6B206C49' : true, 'A2C85895E192F69BFF3BD6CE420B8C84A6FC87B3A999F84701F0230887DD3344' : true, 'A300C56C8CB909C4F6ABAD6A7FCACC5E621BE17D5209717912B3F3BF2F7D6CAF' : true, - 'A32C868E44827044CE85B05E7E694717A5D3A7F8B9D28C41B7770DCD84F81218' : true, - 'A33C924A4181FC26CCE183DF2C30AD332CF6D6A94626E2B6455CEF77560438F4' : true, - 'A35426EFDAE7DC04D5F7926E254D5CEA23D4CAC5371D577ADA3A4AF828766F1F' : true, - 'A37B9444FE3BB0FB2EC43F2677926EF458D0ED4F0688FEA6443A5F243F10C2AB' : true, 'A3BD2DB1D95E67D4A20301B41F1E797421E259948072A2E4B9DF9158D8FA9143' : true, + 'A3D68A1A93E75E8250BE2851500FADA3A3F3A0FB073197DF59ADCF9569C22B4D' : true, 'A41920689CEE150BF8CDA57D32B36D32985FE08AD4F0E52D150D1CE5C7096810' : true, - 'A4A4A1370E59CF5B199B4B0B5A04E12DE67465C6BA51DD379678194E1328FDE0' : true, 'A503E853F535F69CB099A247D5FA9D2F656CA1992C65C050CC5A36FF11DD47FB' : true, + 'A57EE515604253DDBB4FFB6C1FEF243E6F680910808147AE52318A02699220FB' : true, 'A5DF74566E059491858A87805B36E5060095F7963D35877692C2951C1D649E22' : true, - 'A6436C7837EB4F0FD89A1F3ECE954BCDC0D76E3817AD0289B64A22B78B071D7E' : true, + 'A6120E041C5F648F18FFFFD6D79C3A4EB29F8E88FDE41308F28D4A52511B5BC1' : true, 'A66BDA4B1FB0A132F118520414B7C2FE89EB9CAEA7E599743F0DDB2F5DA36294' : true, + 'A67D1D9EAD7E9D1CDCD3070F40B96C88A6214EDCDEE36E84305DFAD4BBFFE78F' : true, 'A686BB3EA8129BEA261D5B99357BDD2BC22DE15F0140AFA2D7CA3ADBCB64DE14' : true, - 'A6B23EA2BFF90B8406D914D1D5B5B11D84F759C88B9AFAF64B77B2DCE08D28F4' : true, - 'A718CF6FB0B4672FDB9BA1CDB812CDB98423DD8ACC8991780BE5E0FAEB863FBC' : true, 'A7636BE0A08F56D7F05A8D69AF0B7199FA7C05AAC123DCE71AB57C538A4D910A' : true, + 'A768C6ECF2758D2070C72BB5C554F89AF332DBE52464482100C703CB7B01AC81' : true, 'A7BBF060D6455FAC1B40C3C14FDC8DCAB6B032A3C636F78EFF0035E035D2A289' : true, - 'A828D902865C9F63FCD670F5752ADB8F8D95C6DD434F33962466496EB8D6BB3C' : true, - 'A82D480B6360B97B8FA507BD461FA4E2D6B73BDF171723C707FDBFD7C9C2C144' : true, 'A85EC0692236ED65D5C36943B771F81FA013E93A887264C8870599C858456241' : true, - 'A8F36E0AEAF9A102084B815C248191CB8EAE56E4A732C669092E6C693606425F' : true, 'A8FFD3DCAC35478A6187DB3E317D7A9BA8D9823BDDA70440B8FCD5D83F49B836' : true, + 'A905FD2FCB5494E9126BFD0372D166EA641B4FB9E0162E56FC70085392036974' : true, 'A91F446F5E2FF93B1FA514B3CECA23118E1000AD358CFE04DFD5E6E25E7AB292' : true, 'A9869713F6E5332E3F4902E82E81EACF34994042C411A28C8AAC116131EE90E9' : true, 'A9913780644EF0A55C80B8BBFFA76A7453DF7F9FC04E9BB09FB9434240D03961' : true, 'A9C3D776062E86182D7BFAD9005B716E1189EBD051D477078341EBA83F602DC7' : true, - 'A9E614A0EBCCB8C193707AB9EB139666AE3C4CE774741351D00A25647ECE659E' : true, 'AA0F48D748A88A3DF4392B0AF891FB99981D3D66D213B261AF14863E44F66870' : true, 'AA6A6EB3A263EC4DD20257BAD1C1A94F80FD17E51BB03DF1BF0332AF48FDA5EF' : true, + 'AA70F6E381B7B7BE508E8D5EB062186FB323FE00A75B264F43B771B731FE96AB' : true, 'AAA0B610FC8267716C7703C164E8E8A47B0DB68F821405F83AFBF5F4D7BB5219' : true, 'AB33CA8B659481B0120C5A227487E4F99D28106362B530D054FD812F7278CA51' : true, - 'AB3975DCF7B531638F8E8EE570E416890F6E1FA4DFB66CD2EA62E81F6CB19383' : true, 'AB5608534365B885795A5E3D004C5F29613BA05E2C9CABE0FE00C99067318A36' : true, + 'ABE32C06C939CB27C5B7744697B92399AB712132074139162FD988DD108C1061' : true, 'ABEAC0745A8B282D5BB1DB3044B94C07D11F414A514894CCE62C067DF99382A5' : true, + 'ABFD6DB878DBD4D664B3449C4F307DDB328C10414164F58492BE73195579B2BA' : true, 'AC1199A88C3BB6564557B6BA422B776E8032D9457EE1099D0BD3E53DC44F73F5' : true, 'AC3DBED034C44698984D68EA44B0B3D74C0DE3B7615C3240A71C1709958DC3BF' : true, 'AC523C58EEF332E2FA0491FD81659997FE32F1EEA4F7694D9C149ADF4B18BF2F' : true, + 'AC523FD08C897CD327DE0751BB2C5DD6AFF7A6948D7561478E300AE758F9BE77' : true, 'AC72106DE06D4C1A17E641546E6DC5C53A1F48FCED34B9BD09368429F828CD70' : true, 'ACA129E9ABBBC9473A45F1F0688C8FB4BB9E7B9965D8BA382DB371575A2100FC' : true, - 'AD0C2E82F0B607A9B4D0571DF0302FF442E2B99ECE91C18E22C416B46B67E4F7' : true, 'AD56E6AD659C808689220F5959DECE86001E37EEB88F452E2111BBAD634B4AFC' : true, 'AD5A935C6684CDB2459FA1D67250E8F9B6A6CB6455BC628750F9633FCF6EBF62' : true, 'AE3359DA4CEE82D978C3C7B4954AD6E0A80E53D1CEDB3A6262996F9CA0B77D83' : true, + 'AE387E179AFCB2F919BA3BD839B2350E9EF48A03A5B5AAC0B87517502456F051' : true, + 'AE4C57D65E9308A4658AE987C0A10AE56939D0578E22D0CE6E5A6E400D492335' : true, 'AE51B75FD36BE0B6CF478F2441E57E91C216179A93BC05E35983D5FCD582CA91' : true, 'AE7D10798CDAEF50F7599FB03394DE7DED48C3054CE987479DB018E789E3718C' : true, 'AEA0E3A8AC6F70B681BDEFB28D9F156116F80230149D8E5C9DE76E9062EC015B' : true, 'AEDE30ABFD76FFEFF77B437F8862FF677913239CB0DE0360FF93EDA6B515F731' : true, 'AF6F25BC29AA257FB80826165B3AA5BECB2CEF777817998D0619544F02FAF897' : true, 'AFE6418D301202651844A84CC8B19A56C479D627DE922366E532643D995470A9' : true, - 'B040095E5483E488179D07D81A9C14C6CE026480DBA570A6D16D75A7414D7499' : true, + 'B03FB37D54CC8E27E281D02BF684E553FFA3CECB66583C141A9C99B22E1D2BB7' : true, 'B05633EABB92254800392A31FA1627F077F2C91B29D82CF1EB1D507EC7D44038' : true, 'B0A3CC901A3D58371289521F9345843F7ADEA438660729BE9B7B520DDB0BB965' : true, 'B145A895F26B09540185848A600F7F58C0B03740C17B61A1B43BDC652740B80B' : true, + 'B17B2A39EF0B4A01171DCA730D2AA7214B570F692ED75B439B84B1EFE528F7D8' : true, 'B19BEC326EB5F611BA8CE10410932955840A0818BFD2C1C690BC1C06C63A686F' : true, + 'B1B58B7EEBC1947CB840FC4C2713D0DDB23DEBC75E58DB15610AB4EA9A1DE1C3' : true, 'B1D9B3EE2512A48A8E703E2D2263EEB4B0A3D24963F5165DB3719CD4750D2986' : true, 'B2618AD6AE584F2CDCEC050ECB0FCE8E5BF0E9E978AFE692E4A1BCB8B7D03044' : true, 'B29A6DB4686379EB52C1D8F249A74FA55A1DD9F2162B0B3E0683912C1E942437' : true, 'B2B46BCF24DBED9CB8A829DEDB3536B95774AE8223A8B160C2B097154A3EB8E0' : true, - 'B2C34569468F2754686AD5C63A5B6C71FBDC5D7C78B161C70F97309CAE2FF270' : true, 'B2CB5A2A69339A575A4198D5B76822E6A0F90871A45C8348F2A060CEE67EC98D' : true, 'B31C07387E56AA457F17CA3D3A4C485683253CF387E6DCE37469B6A8E51CBF29' : true, 'B3251BB9A1B4F219400E69789FB08CA2BBA396C6D2FD3C4B69F4B7E1C0DDB615' : true, 'B33419AF991DF06128CC6A1EF6CAD190F68C1903CFB16B5346D0653C9C5139CA' : true, - 'B3381C627EFBEF5DF3BCC9DB71A9B6E4C0A4F3114F7E7408A356FB33FBA5D20B' : true, - 'B36D72C8B1F436DA49520421FC0A2869A9952DA405DA5E29EC3A1919453DD6F5' : true, 'B38307BF753F924511125E6FE9542C79A8541FCC780FF6905BA237A4C7FCBB13' : true, + 'B394D63292D829C96CB346802B997C42285D8DB94292166AB984F5264BBF8C96' : true, 'B3A416E4B0C7F99B72761D34E3362F92D0F59EED1EA412FBC54F1699A79A1951' : true, 'B3B278DD571DDC491FD26D3B0942C78EC4A1AE3D9A5D07C1E317CE901E6B8979' : true, 'B4130785116E5A84BF7B191696B213BA8877228388B18C2DA38DCB9EE14AC8CA' : true, - 'B458C6F566E833CA5856703868BF09531CCC61D32AAB1BE65808DEEEC56EEF25' : true, + 'B43A735BA55D1C7D255F8E14DE97ED2FC89DEEF492BF38E871556FE7FF1712E4' : true, + 'B470B24D87A479A33017E9EF00405D50EF5A22BB7D4DBEB6217DD71BB6463D62' : true, 'B478303C0A26FF8A262C29BA3A9683FFC4CF075735E637F6A958640C5EC33669' : true, - 'B49A2871E348639F681896FB62D6535C945182A3524297258EE2E356D6D5B3A0' : true, + 'B4A68B8D5855C4F4D988F2E0BED73417308B1681EAF5A2C2338E4783091E6824' : true, 'B50AADEEA7AEA0CC344AFC4BDC81C75292E1F52374DC4E405CA9376CBA5594BF' : true, 'B54B1776D34DF92E8E090FBF0C927D9852E6F18F98E6F306AE0369229A4AE2E6' : true, 'B5826AF547B2C4FBB118246774B8C027E7E18255F864395300F07B03E43571CE' : true, + 'B5E58034813A6D2A70A162E5C9469EA7D31FE15F7478564E5698A388F201A646' : true, 'B5F50267B0042B154B8529FCD98F5E01C986F7D23628B49B63011A3C90398CEC' : true, 'B613D69F10DE096E664C3B4AA083E0BC9F50A98D0F9B682C496FDABB2E4AC9D2' : true, 'B663B6C8C60A5969BEE4F6844813AAB8945EE2CE2253CFBA67500B991CD8A07F' : true, 'B7193D3E26C14AB91AB1C2AB9728C7F9D832A6C4EDBBD2953385E3F1D2B9BB91' : true, - 'B72804ECFF97803B8A40A2FEB3686B4CC1918E9605AA9EA4775441E762D73687' : true, 'B75601AB7AE44FB2C77FF1E9C6FBC4B4D9ECB548009BF40C46CDDBBA8C0FE493' : true, + 'B87A6FAC22CF54752FF918799C09D2D582F3621A35F1AA5751AB86E5A56EEBBA' : true, 'B89D499E25ABC593F9B29B3C7364EF7196146DC810443334895D99BD15A5846E' : true, - 'B902076C4F3E4FC9D45AE90E5AF637247D3A4566DBA2D6DAB15364828CF7BCD3' : true, - 'B93093DB93D5FE8D16B007F9E40D627BB7B78D617879EC6C4F8528F4B21BDD6F' : true, 'B9891F4ABEA7FE5802FA2C07E596905422C39B16E36612B37FFABB81F49A0BCA' : true, + 'B9AE7FDCA7B2FF24247A2E0F5B56AD0F1DC900F238C45BF40D8A852257218298' : true, 'B9B8984BD73419077A912955DEF673CCB572907E2C494256D627DCCAF86226A0' : true, - 'B9EC2202B3D25F6C2CFEEC96ECB1967C1171197A121F6278682988D68C9CCB6B' : true, - 'BA43FBF51015CAA4D822D17A43F4DFB32561617B62E711D921112F12B76F9E43' : true, - 'BA52B8302644DF24B0DBDE018536FE6D2C41315131698A53D2906347DEE8BB82' : true, - 'BA5BE146EA09B76F106B28AC62830E5240D1B7DC43BAD171EECC9998B1718E28' : true, + 'BA4C966939F1680966D9B9BC85E5E7B011F51BCF1F41FB01142D603F9A45EE3D' : true, 'BA74E086962745CB5EDA606276E3FCE2220C2EDEF5824FC5D67EBFD1A94A0685' : true, 'BACEEA64658C6E86E126219A40FCBEE7B3A0C7687503114E59B3EF28E0C06A19' : true, 'BB6970E212CBF8325822B968387F263BA8D6CC479F448CF712381A36C92965DB' : true, 'BB998A2EEB4ED3C4251EB69296AE91EAE7360B0CBAF690FD250C38A710ACB38A' : true, - 'BC6CD35DE4628EB8F61CDA81F90A4E7DC7F58EA9B7A8590DA1BF2F8C78EBAAE1' : true, + 'BBABDCCD647C247047D39ECC57EECD8174CA5A8CF00349B1DAA1DEE75AEB84E9' : true, + 'BC51725047DF86083608C9849E05C1A6C1FFBA6991A6FC781543C906BA479450' : true, + 'BC7FCB90CF245804DAF432637A53FDEF6B5F88BAF87EB23245AF20C668CA74EA' : true, + 'BC86367AF49A238438C89460780C94DE2C1E49021437B3DFC590A63F46332888' : true, 'BC9B66EC1AF4106896624836D64B109922DA4163B83288E2131FD9A012CC95AC' : true, 'BCB6468D80641046B9B1D3A9A24FB092B76603F256FFEF183D0EB6A9218DF2C3' : true, 'BCCC1893C98C4BD177A414C7B3D5EBD74893F964FB9A62B96B48A84F1FE64B53' : true, 'BCEAEC2D8B8C18B58BD320D77850EC38285F419ACA8A9E939DAE7DFDF26696D0' : true, + 'BCF2EE107D285BD0BCB864C39BEB0171DD94657D761DB1EED17DA1D5F8E7D576' : true, 'BD273332A459B8980589FD5B8D03967EA78809CFB4F77AF25F578EA77CE9C785' : true, - 'BD6055F00FD05A1C84C05454958354052E8924FDAC99539EC2291C5B85C8953F' : true, + 'BD2B6A9DA30AAB3D39906793DB2C9C238C7260EC5B8835CCF8D9C58558B4A945' : true, + 'BDB42DE005453117D2B60263504B9B58E9AB64B57A7385279CA0323D7246F02A' : true, 'BE6E70EB169369668EF9523107E95867B1B9C0320C750180303720B35CF09798' : true, + 'BEA63BBA0D4C8E462D0FE2722B9ECC23A8E6E89905E19C15362BC33458D47CFA' : true, 'BEA7ED0A4C77505CFF6FAEA9F1B399C41324C52804D35EE4D9076F726C8D2C4E' : true, 'BED1A9D1A4414F4D465F04F9D8C8EC331F89388E19419D0371D0D177FA60287C' : true, 'BEEA29655F2F0DE938C7460012B5265BDF623C09F11529CDC33A4B6BEAF96616' : true, 'BEEB38B82A906102D7CD92E5FD98661DAB5D3C9B7DCA9DE3533565EA9607C5EA' : true, - 'BF1B69CDF599AA45F38EC98CEE4695058AA29CD8B489108944EA95707D58595B' : true, 'BF209FFCABFF17D3ED4987EC0FB5AAC5C0D961546AF52CF873B560BA4BA48A8A' : true, - 'BF61A5AF1BAF57E17B092D5A833B4C9A392BDC7529676D4C7248816F00CDA5EB' : true, + 'BF46BAD48562C88CA9B110FD99D88DF43EAB728810C78F12A062C292876612B6' : true, 'BF7EAFFAA2647F47D816A83ADD1D7579F0CDDA690CBA00F75BC6ABD564987346' : true, 'C0144D1B67F2AB403DD08B73E5F1772F050E9713D8F2FD98BE999FCEE51D2792' : true, 'C03976BCBA4A9A4ADD099CE8F878A6DFF9B066179EC7DCF932EC4AA737FE415A' : true, 'C0AB8B4E884A20E51AB9325567115F185D18654803E08E2C2C6A4632D7ACC2D0' : true, - 'C0CDB9DCBD1FC873712C871C230C327A9E53E6D78FBD0E5CE1ABED5DA0D1C7D2' : true, 'C0F030365B0F33FE3624CCAE4EB7A81BC7B9127966953E82DEA179DD1AE66458' : true, + 'C1529D3D2B287392E5CFF924DE47B904B2BE179468929FB61D10D5B8F02FC8CD' : true, 'C18C15016390F78742A45137409C8BEAC8A0475E39A444448D3ACE0499546462' : true, 'C1E47B7AE65AB520DC18A03F063101FD14AB70E868F16DB2C42ECCBEEEE5A6D9' : true, 'C1EB50953EE0D16410A5DDFD97F5C05060B39F2902807F139EF6B015D0C66729' : true, 'C2118D84846AAB7DE521B0379672EC639CFD745D82E3D504EF68CA723725C5F6' : true, 'C2126EE4AAC4400E18D80ED8195C1A28517EBB3920244FD66D9F67BE89247FF7' : true, 'C2295D7C0FD4FC4DC7681FAF3CE851F6B416405554781C77FC8212DA169C258D' : true, + 'C23E48B97775B7A76C994A4F0A83C2DAA05C5D741043B84E63840A700031E44F' : true, + 'C2B9C5E5C1B36BDC9D85E9B5883C4E71F0C9CDD45B8691F628480F1EAEA4A8CB' : true, 'C2C9A263D5F88D7064870FD13AB8633A10CD97E8281F0ECC49C2C1C3F54327A6' : true, 'C2EC6DD4A6B571933F5DE0F94508D629FAA849B1A31A8AB979DAAECFED2AD253' : true, 'C3107C690BA5007E11C076B2FEB58BF88E67D1ADA15DF1B8280D226177AB6A13' : true, @@ -792,83 +777,88 @@ const X509ChainWhitelist = { 'C34069193CBFC866E03EB745416B50B25BBCAA00B5DE50D1D62D3365749CEDE4' : true, 'C34CDEA10E72069587970C7033095864B6F069B6637C6263A1E7A7A5187923BB' : true, 'C35CD8ADD8FF80A9CEFC31D3E0DB613D725FDB0BE52B9ECBB730E970A59E7E98' : true, - 'C391E32BB11DD8F6F13BF71E0B9CE225364A50006E3F91147EDE39D2AA6E70E0' : true, + 'C3DCE474FB44F22E6497A1FCE2C45DEE167853134C6F1C21C13F1707B0BC7FBC' : true, + 'C41706089A520406BBBDFB4ECABC4FAC33920CCEE6731CD703B502612E316E54' : true, 'C4BDB4AF6E9CEE6017D3FB7ADD286E4B6348088E14D994CF698095DC86C939EB' : true, 'C58563CE93B0DF900E0681376244F32977F577D130320226D3BD9CF82863402E' : true, 'C586979CC69441D6717388E137E2B01FD04BF3C7C4F6E5006D71B45B81A7C04E' : true, - 'C591A346116A065185360B973A875B0329B48D924E15BE8D4FC4C0B849182732' : true, 'C5C58D7B5A145FD684B3A5A6D12468617BE9DF323D37015420BAEFAFC086EBA1' : true, 'C5FCA59FE803B0F5B7BDD9387C65A1A5B9CDC8D0C76B79C2954CB769506DD1F7' : true, 'C677F67FCA735BCF6AFB51031697A967AD09FB8ED0A9EE9A1F532F1CB5F6AF59' : true, 'C689F3B9238DB156A7D563E76DF45FCA607B4B5F6CD62BDDC1AD1AC720E67952' : true, - 'C6B197D2663DD850504C900569A800D914A5C99FD7E0DC7C2424A063B6C42CE5' : true, 'C6F63ACDAA452E008A1DCC711CAD36D00AFE55F958F2CC82A139BB53E27D11EB' : true, 'C6F893D20A417841D7584A029E6E6A2A44B044D858ADFBAD4B11F35B7199309A' : true, 'C700D31BDB3076006337BC249FF7CDFDFBB8A3677F206CB475E7807FE6FBE286' : true, 'C7056A5FFEA8A4751271C17CAA9EF3BBDB7142A08ACA673522EDFD9AD18AFE66' : true, 'C71294A0124420512711C918C36F77192D2B45CDF8C99824B4BC862D0B31C3B0' : true, + 'C7C3A02A4A1C71C54C37BE7889E60467E9C6A48A64FDC85289598188F4D2D839' : true, 'C82AE26EBA1954BC778047DF9684F330C424E9FF778033485305AE0C87E57D68' : true, + 'C84E5F64496198370D4E53DD6FD1828388E878759375F498A8670C035275D6C1' : true, 'C936FEC68191D7AF75334834906C8CFB18F91FD53BDE7C2F0B2ACF8100ED3855' : true, 'C9462B9099A574DBBB9E2BB9B87C4AEA825DA388EE8153AB74414555420AA6DC' : true, 'C95235BA613C42AEEBE5B2CD04707B323083EF4BAF4B11C633288AAA7CF98AD7' : true, 'C959CD326D9F3AA21FDEDD42A5AF0B7A2FAA5E9B92907654F29F1ACDC691DBE6' : true, + 'C97F815DB2FE0895632311CBE80C5A8F99A025201CDD3F70939D5C1E1BADC94C' : true, 'C9A9B118F63E40C8F5F73E89E580626EDEE028DF8ABE5D3374CDA69459207CDB' : true, 'C9D7767021698AB5CFE3F43AB281F424E1515A52A0868C8752018CB292DE3190' : true, 'CA157632863D3E7B499F141741724FA84DBA48AEB51B04A53A9D3DFEA7F70BF1' : true, 'CA46DA728E76E97AD214DBB6AC9CB1EA2DC87202C88C35E87CE574FC1F2E0438' : true, 'CA529AC5A7489D57CEC2D6BA5881213C5A163409BD6946558DACFE899A977009' : true, - 'CA93EC5E6881B59BFA7B2B59B2A9D574F599534BBA6D3D50834271DEBB31A1A6' : true, 'CAAF21212D1AFB10BA4844150A49541967BC1C9879801E43064429A632DFD941' : true, - 'CAB896F9E8F1D4C0BBF05F4A48DEC534FB7A2E9E21D3C3B36F72D50131917243' : true, - 'CADF1142EA883AABDF13A65D7F0C5044AD293A719AB56A1C1B88D30D96BDA14D' : true, 'CAF98B60B1CE36971AD2DA67A18E72E53345EFCA16382827BD1C2022D009E751' : true, 'CB133229997821E418467CC3A72F77A7B9E31CC62B41032D6A82577B7AF1C6A2' : true, 'CBBF31DA8CB7BF399EFEA030057004346FD5D8BD07CEBCE934E28609BB6AFF14' : true, - 'CBF04D84EDCCF90EDC1BB7FADC6995A4A956A9A6568F2605409BB2A782326D5A' : true, 'CC2E477D4A2640BCF70F232C040954DFC4878E536A4B03E788173E673A2D31FD' : true, + 'CC6267D34E7EFF2C8BA692C3F96B2FDA39BD351D2B8E280E9D81DECAFEFE7233' : true, + 'CC73DEDCFB8EC2BD78A979BAA47FB8D1697C38BD286E0F4A716619939D6F495F' : true, 'CC99A37B34F4914C3E3B8B8D6236CE0E8F92DC77CEBEB09D50C6004D51C8D4CC' : true, 'CC9DE9ACA31709D03188E3FE36B902288F56A3AD1510AAEBCE0881A363CB8B66' : true, 'CCD4C850054C2E89024A8E78E337518B9137528B9190B9417E182E6CFA0180B9' : true, + 'CCDD0AD541F322CED13EB7E00654FD567B39EAC71E146760EBC9D5C736329993' : true, 'CD35C7ABA0839C0D865DEA4C1DB624F709E5EA041A68DB55842E2C189F38BAC1' : true, - 'CDB02DBACBAD381EB4F6854E84372DAD1FD76462ACBC26A9DC86164E81E75C85' : true, 'CE77D1F5ED11C8CA34DA5DBB0E999CAB0469D215552BCAE775B1AE6ED072F01B' : true, + 'CEACC5425237EED1F7736E13A92AE0A70A94F15EB08B564D0CDEA3EB042D1BF2' : true, 'CEB1ADB71C3CBA6FD012A778BF70CC93BEAB621B4DA4A464934C5440868E58C7' : true, + 'CED6501D3B06CDB7033EE79351EC3080BBC2993D0991AB91325DFC0550689AA7' : true, 'CF099A3A9DBE3D79F3E420A47A8447A50A2F87ACF2874CA86D49F271B82A68C5' : true, 'CF19B1004488D5D9C882E2C4D0A47789618E0BCD6475F6D9C6B5591C2BF333C9' : true, 'CF2A79710CABB0EB440EE621B37934C249C50612DB4FF926EDDE5B8A30686BED' : true, 'CF41907FD2550A0AAFF0E09AF82423DCFDFE470F225A003D607C19F709A591CC' : true, - 'CF44B5D052E8869D4632230291A81F3EBB7F681276D371161609BC23E40C8636' : true, 'CFDC25BD3A406CC65DF19685CB300D33E13AB2F2064BE7071ECA3A6F76AA3215' : true, 'CFE1E4D56E0D95E238F3317CC981740011F0D3E4DE08ECD27313F83378F150BA' : true, - 'CFF31BD8AB9FBB4681C17AA4135E67D402345E32CA8DC9D566537CA530F27B7D' : true, 'D004BA3611B7EE32714173A1C1C5EDF071902F49D67542EB4310D6BA34B33DC8' : true, 'D03547E78303C9FBD70A38BEAFE87AA9F266A92275D818D1A8758DCB9D08DAE0' : true, + 'D0F0E41EA07E5EDF9E9241B0FB6FE08AC2F623F2F596406CEA34B73EEF6C5BEC' : true, 'D103ECB2B7F74BEFD44109C1CA30EA92D9016C0F9347F1DF3E5467C3AC20221B' : true, - 'D10DFC97304D163140768E2D1698B1A0A3AF8331C4941F928622AB80091A3273' : true, - 'D1C4E4D1F014FB8F889F45AFA39485BE742F64268C662BB28494855E393ADE96' : true, 'D2785F7C48F180342D70978EEABFFC424D33A495A07D04F32C08B771BC4E43A4' : true, + 'D3676F00560CED41E28BE263ADFC10B602DEA2026CAD2C7E77E9AA585E085DFA' : true, + 'D368841DDBBC15C7CDA82090EB95511736C97FDE82BA9AF5F95114653EB5234A' : true, 'D3946220D26CD68E238632CD7AD63FD62669D9F60770C62788747C7552AEFC8B' : true, 'D39BD0C1656F99A47DA9D2957E2D7A49FC9EDD92CC6BE729C29299ECECFC42E7' : true, 'D3D5C3556B8724C6601E217415EA7E89740A9F1B2523D6421ED2BD2E3044145C' : true, 'D44DF644880E56596405F1364D8C3E5301F05ACBF82FD66B671D895288C75360' : true, 'D462D57028E10CB7A7C87ADA83EBD7FE9B4DA384D2971BD7A708816C4EA8711F' : true, 'D46D29E4176A93E3DCD80BA5861A87E84FB7866B784488A977E7E4E4076DD2BD' : true, - 'D5B0165C0F4C8F14A2E0C2310AE4A51B6EA08D2FD9790DFD49BCF3FD78AD5198' : true, + 'D472AA6946ED45E5746D88E98DF7711E828987ABA8A5D64D466F5C1C5B4EEDA0' : true, + 'D4CB5B06AF9ABEBF5639377BF36B289CA95A3205A84537D36B4506DF51430669' : true, + 'D53A4E1FB44B5C282566F8AC28D68A76E12B76EFEF719AED86F11D15BCE9A0B5' : true, 'D5EDEAF240AD74C81017160821DE0FF6470839A2F8AB998D84E7392E90280D0D' : true, 'D652650A3DE79A5C0DFEC1925007DA094925533D13F14094722A80F936FC9A8B' : true, 'D7198C80471105D95103DB11B6BD2F6CDC8E7A7E67DB8329F1FA75C5F5D5E8CE' : true, 'D74E275CC5800C7DA6D65C11F4FDF07B81EAC91D412D05EA64C928E035F1C129' : true, - 'D83D1AED881CB22ED4E92AABA18DC390D6931CCF74591C64C236C662EFCDF557' : true, 'D844DEE1597B654C0E645C787DB52F6EA5C855C6C35626BD7787E71E873CAF8F' : true, 'D8B6CC82BEA51A5BDEBA5B3B046B0D1965528CCF70B8F7D27E57A99CDD87D226' : true, 'D8B8F53177C1E04D93746C8460A7296707654094814772BFAD31F79C03802240' : true, - 'D9AC7500E87D9DCB4397D3707594267602061F590BEF6DF84CC507412FC43902' : true, - 'D9FDB29EF83808BC82A97839FB2F22C2D20DAB2E6B67BF5862C8922BB1FA9068' : true, + 'D8EB3A26B3132739539EEF2B7E3EB472578112D5D8AE470B0F2CD4EE99250ADC' : true, + 'D942963C31649F76D7F96313922A7B163B631AF72FF9962767D6E4DB84026B62' : true, + 'D97CF453986570998A9B529709574C7A2EC1E7D43CC42A659A5CD908CA3CED89' : true, + 'D9D5FFCAD69421840F7A7159B3F8641F050A53EBF2B91D909C2CD7455FCC5C7D' : true, + 'D9DD6D21944C5623DA765567EF61919B1F6BF2B1E8E79137B5BD48F4AF75C405' : true, + 'D9E191EC52F4ECE1E0C43968EAD53E421ED62A7A7DBC0C39ECB2B8FF7962F01C' : true, + 'D9FF33B827DE9E502ED5380068CEBB6E7855849A8680B49BD2EA11441A7F1E01' : true, 'DA0D9391992825F7A10312F7E85568086F18DB901838A303E721E58239158EA0' : true, - 'DA29D8725034D89C221F415CC5282F82A6502E1EAF416DFA41507BC662C90258' : true, 'DA5110BB1526CBA9E86FBC66B91A8A2880E85440765C9208A1FF4D3DF2E8AD65' : true, 'DA5D20F1A6CF6CEC3AA7028A6E17D8F2E1A60069E497758B0CC938C08F4E76BC' : true, - 'DAA384D0D2A94A18A14E3DDF7A963E59BE41C06B978F3DC8862E1EE6C8E76DD0' : true, 'DAA9CED5BA817CED9942DB9CFAD0210505937A9DB2214298E0BEB831BFC8A31B' : true, 'DAF6B7470355545FF9FF41E11016056CBD9537558F503D7F9C049C8ACC446112' : true, 'DB301590A7DE580916559C6DE948B95A3F7FC50A7AB8678BC365595A4DCE4E4B' : true, @@ -876,73 +866,81 @@ const X509ChainWhitelist = { 'DBB0C3CC436B5E592960BE7E8836AE58D8D632D435365ED2EA3CFAA86681E272' : true, 'DBBF2D4498ED91C779C81FED5E96F9B5210CE86EA463712268BCAF098FE2E285' : true, 'DC04E4E5B03D875F796835B599AE226470B9ACDAF0DC79AB2F766B77AC59F3E5' : true, - 'DC2FCD6AEAEE45D7E82C443FD3F76EDE1C88CE43E5FCEC3B4DEC9F12AF34BAA8' : true, + 'DC31F2640E8AF9887C05C44C34A999030A6D245A36EE45EB48966E8EB6665F9C' : true, 'DC8D710118FF258F27ED436F585756252FDB30F42DBB58B23B8CD3B2140E13B8' : true, 'DCA17501D12F98C84EE99DF4BC8EFC1FFFA9B65E2BC5A92B20C9296EC61C96CA' : true, 'DCF33FB3953551E4B5F06060A7EC211432C30FEF86FA7B45EE76A8F9F3473C86' : true, + 'DCFF47F0DCA2B78BCEC9D6F35E84BAD6803DEC85A888028C9DBA44A9B69C5BC2' : true, 'DD55F1E1BEBA4CF9F582CBEEF4A35E1C1DE36750A3403489C1C98955FCE9950E' : true, 'DD64C7D9E60AE6748B449ACE8CF9C21B5551BC6427EDDCE1D77B7C7720FD21E4' : true, 'DD98420C927FBBBB0F2D1FFFFF359416FB7B352770A6550E3D68BA33CC23ED57' : true, + 'DDD0BC82A32A5341EFA53746F39B0D88C668E0483D705BDE607F071FBE937062' : true, + 'DDDEDD50F49CDC46A4F576F1C571CCCF6F32F2DA30CE9BE228DAD3599BBC34DE' : true, 'DDF758753965C89E747CA6799902A045B22F473F654CEDB51B3C0CA0EA01BB51' : true, 'DE327172F9BCDA3DBD4E6EEFC759F3EE88FBC635BAD34D76E360541420CDC8BC' : true, 'DE411E4537133A4D436E0D730AE192277792AA1D0584E60B1CECCDC736F53407' : true, 'DEA472B5BED8DA9F6F5539F8DC66FB5340010F7316FB28055E14EA76E03BBE41' : true, 'DEB6A31937F3D2822CFA6C563F00F107DB6A445596E8B775D989500FF2E09F0F' : true, 'DEC7DC8AB8ED70C1D2FB2875F0F99FA99FB53E6BED70CD47B244ABA2104DA5AD' : true, + 'DEEB105F77ED36DAECBE1AEC896736B7925F56C86BA06FC1A43AD5F35E9E914E' : true, 'DEF20D4F0C0D98AE8C9786C364182CCD8990A834C96C1F0989AAE9ECAF33720F' : true, 'DF03F73A71A568E6A05A7E9FCE240EC0254EE86E24790D6DFCCDC71A5763C27C' : true, 'DF0525A7807F3709BAD2DEC2ECC569A1D473F97F0C382C932DF726C79926DA0E' : true, - 'DF4482289B54CB444569A5436AEEBEBFB348D966D2FBC8C5115376F3E5496303' : true, - 'DF7FBA4917800A850600F3E7BD4DD0A717F2649060B300F5AF3B1F490BD26536' : true, - 'DF86C03A5DE71075F0F3AEE3A0951A55321BAC33642847CD1EFA0334DBAAE148' : true, + 'DF533C33DB800394971D608B89269426D3A2F58B76F190229C0573985E4F7CB8' : true, 'DFB9975C6CB5E5E0A555789055A543460C93C34378BD0565339A0194D56CE58B' : true, 'DFD291C1074E972A9FE6261BE6FFDDA85472A8AA7F543C867F53B7D8946478DB' : true, 'DFE29EDC6A77622D4963EAF8CEEAD0ED5DE393DD069425FE30175AD008D609DE' : true, + 'DFE3CB9DB34E3CDE7E6B641C90D116F906DB0C916C5B437308CA502C756C6331' : true, + 'DFF00B8DF7748E81750E0302A10B9160B3BD3F56967E854C4F8D7B3C008757D8' : true, 'E01A5251FAC16C537237EE4249874187E3BE3AF9B0F1D472E6C69E6C8B8832ED' : true, 'E09CD94E0A501BB4D25D5BBB02CCAE95A24D0BAF8CABADEC9D55A74B7D2C5BD8' : true, + 'E0D373C9758BB237C4E5C616A072F192E0D11EC0E48ECE22A326ACE69E3CF771' : true, 'E0D7FA4702E25E7F51F94DD0D12C39A352DF48DE10A5249AE2687CBC15020CB3' : true, + 'E0E11F4703CA92B8F0837DDE262F347B3EE57238914F7AC07BBF332636B4CCD7' : true, + 'E0FBE92538CF16C3940552932766472A0821D1539BAC597F5C87F818296D8E14' : true, 'E1117A0AB7E1A80334C1C56891A4306CB553C100424773BB0F10C7574CF44ED5' : true, - 'E113CDDD84A81BB13795798E245E5D1B3CA1650D6A59AC34777577AB764DFC69' : true, 'E1176E46C4FA7841D94FC724013E3D192E7B414933F92CD50EA36C51617A2C60' : true, 'E1595A9AA15B24610100AEB57ED619460CA1D976B769B856398EADA5A01F952B' : true, 'E1A55E7ABA746B4A053359D13C91DCD7415F2CEECB7E87292DFD697213986946' : true, 'E1C97EFF3C246073604F341DBB3CEC9683EB6692463D85C1D23FA5269D9F3FFD' : true, 'E1CB2358E3FB5CE1135999465778BB5E6691353751FE577C1B032DF832532A8A' : true, - 'E26F4C34273553354334DC7A22DC56A781F2491181799287CC91F12871FEB50D' : true, + 'E1DBBD569E797BC58D21935695EB6EF34DAD0C82FCBB4F4A1C5E644EF161F190' : true, + 'E22F7A2669FF7B9F9C89B3BB1B0A5FA485C26A697CF2418869394A0710AA5EAF' : true, 'E297439120E6E2701069440EC321BA98A5CFF9EA3F407FF16185671E466B87F0' : true, 'E2D55EAADCF87AD1BD50E53B7168CCC08561F0172004C1EC4DC13D8166D1A313' : true, + 'E321AD541727DAEC0801A774095546FDD0642CDB597A7AD431C6BFA5C7F447E1' : true, 'E32ECC9EEA662085C10C003A5C910D77A6DCC1E99BD187576EFDD1BFA84591C4' : true, 'E335D8CABE2F4940CA80CA10A6BE55A138A163E1C56C281165FBA3FA601C61A9' : true, 'E3570B254ED1BFACE2C2CFB35A3AF277C8F26A81D1212BEC92CFD84A35FCB53B' : true, 'E37314E72C7304D32336940ABB576DBD7BE3190CD9A5E8F87413CEEB7579D502' : true, 'E381DF6792973BFE322D23C6CF2A6C24A4ECFC77F43F03D2FC04EE39FAD7C683' : true, - 'E4D680D0579075DCA20740BD4EF6AA4CEFD5542727071005774421A247941B8D' : true, + 'E4866B48A6E45C4B11326D3FC5409D4AC595DB81D59075FF1AF4815ADD15B54A' : true, 'E549DACF42BED70415999CB677AD037F972087B39E6B2C20BBF2E3473AC8BB49' : true, 'E5E61E81BD6BDB914235B1C227E3FEB83091ED8F453F0897035EA775A7DD9334' : true, + 'E5F65E0B9FA619FB212BA4DE4AD7166DF37C0690AF8AAF30DD68E2B53802DACB' : true, 'E5FA7806C1E6122EE6F7B008711DAF068DC6FDE60B2A5877DDEECA8A23F96586' : true, + 'E606BBBB4E98E5F9BC9A2DCF767A1D8B5E95AE7E35D5E14C554778BA1890C79D' : true, 'E692108B3683F3C6362DF92476D62BAE60687035B70B9119F962190C9C215B04' : true, 'E696A05D698717888181DFB7B903B380E42454076BA429EC8AB0FB58206AB166' : true, 'E7EB8B4D5DE598BED2B9C817AB7D42F1EC99F16640B8C673AF2152D42F5344C4' : true, + 'E9CFA5E0C69E623B15F54AF73644E6FD5B0F86F24826F378F7C903D50A1AAA28' : true, 'EA7AD4DE86B47BEC726BFE21172676F92E0C0BB86888417916CB3123086E84A1' : true, - 'EAA0454F2BBEED65A2FC7AAB8F308982387BDF33E6B56A1F3203F70F2981083A' : true, + 'EACDBC29504EE8E44559D3FCF154E1CF632CBBB4065734CB5C6C1B16D42352B5' : true, 'EAE734ABC9AB7F65DF19ABE693F0C1AA6AF5E9C76561F0779D523FA5ABC6A3B4' : true, 'EB59182D7ACE742ED7D7AEE751763EF9F09EDF68D1DDF765E80BE40A53AD0E10' : true, 'EB6B1F16F70E3080F38E7ADDC7E3AB69164ECD068F5E8F15931575FDD62B0A64' : true, 'EB6D34EFBF063DCACDFB823734B9788D9FB5E22A48372B7EA8AAFED8046652E1' : true, 'EB907252FF62CCF97B16796B9106686C4260E682878EFCA7721D37D6B8C83319' : true, - 'EB98F744424597BB5AF5F209D20D161DB2682089271EC2662BE177D36A737FBA' : true, - 'EBD2581C1B0224FBDA489A642503CF3D3306751C336A66EB1816989900DA52BE' : true, - 'EC173388B04C066ED8A36DB45C804E353EF6BEEC7BBDCEF4C28DEFDE917A0C5B' : true, 'EC3A708B75908F8EA0660EF8A9C14B07DAB3AECB71E96E87EB06BB317790A118' : true, 'EC521C3B04AF772AF812B63555A7C24BDA282C06EC619E1766CC346780EC6E04' : true, - 'EC869ABCCE3A1C036F1AFABE5ECD4FDA581D16C0E81E16A2734E6004A55896BC' : true, + 'ED4BB615EA54DAB9EDC94BA434DC0B194FA5EB91BCA7E1B05CA9C21ACE3E4A43' : true, 'ED4D737C0BBE1DC2CD305D8A912D1C1D923C1C4325401D66349541F754233B53' : true, + 'ED918BDFDFCB9E4E679BC7C1938F9CE412AA85500BA3531FC550AD5213D5BDC7' : true, 'EDD929C40001C1ACDABD51797B63D689A0B80434FA323B4F7AD213AB8A530B8C' : true, - 'EDEEE393369C2968B2277F06C24CBB9ADFC6D3EAAB264C292A7963065C8FAA49' : true, 'EE3B7480B691828ABEBECA3DB0EE96619F01E886FC959942F6AB7EB3D263A237' : true, 'EE49B2B0E38A16743525D6CEE70CB71038D43094BC71BE2EEE861E4602B6D891' : true, 'EE5B8C42532363A48222B1493803B14EC2C98366CD0C5BA4126F468BA19C559D' : true, - 'EE5D710097EAD11639F98940D1F32793ECC114F0408856CCB6536F1EF2366704' : true, + 'EEEAC8F1C70F20FDF05D777140A4A5F72AA9FEABFA9699F9B0F5120147A26486' : true, 'EF0EE2FBF54D87B6AC02AEB88050155A27E1A60A5A8C4AC46FF24B529D912B04' : true, 'F08A2008114880DE65D1C1A47D55DB0B1EC6029562BA7B8976A78507F4EB80B2' : true, 'F094E7890A2B177AB1517C2EAA8D1DF0F69DB94633C4A510BC02CA8D71B36403' : true, @@ -952,7 +950,6 @@ const X509ChainWhitelist = { 'F0DC85D554A245F0146851FB8FCAB6CE5F955E65ACCAAC92E875F8B8E1E2495A' : true, 'F0EDB0C989C20672BAFC51FA2710F3841BA5793BE379FC212D7ACC3AD4743455' : true, 'F1147FBF98A54E12693453EC571CE8B86C05D7FDF3995D775DFF135E10B9C520' : true, - 'F153813F6CD126543E985CEFA06C8B978FE5D4825C189F58944DC0DE17D5A0E9' : true, 'F15E12419E936A907F201FD9D6D3DE2E01E5F8465AC4D8EDDCE1E58262183223' : true, 'F1A9F7B5F76EC4E234A078662581DE91E76B1CF83C219986D1BEA3717E4513A6' : true, 'F1B73AEECC6698895051EE69179C3897A1DC398C2D72DDD720A29F9C9520457C' : true, @@ -960,47 +957,50 @@ const X509ChainWhitelist = { 'F205928C933AFF1F1A6411AB779CFAE3FAAF43754AB86735DB52F74DB1DA81D2' : true, 'F22F96FB88C9D96104167D95B3AD8B5888C92680B0AD13DC785FD5AD3E19EDB7' : true, 'F234FBFD807A0302CBF855175C73ABF27C94915B95135E3146C0ED73662DE3F5' : true, - 'F28C56AA368BC4F8DA6B77CF3F8D2A7EF4994BBDE7DF85AA40FF740DC004750B' : true, - 'F3926080B8F8289E7DCC479153999D4F459951765A0A22977F056D8249BF5FF5' : true, + 'F35B9D7C54418022E6FD4FDFE88C3261FD138329A11C013AD640145D40BE934A' : true, 'F39D175463288D9639AE5C852B945D89ED858548F8621E5DDC29853E8C84BE36' : true, 'F3D480D69675A57DC2061544BF7F52B631BB02716680C0E5605413C9B2A6183F' : true, 'F402A9D58A73C40B396B5CE756EDFCA68257AC6D8DE80AA8217F16C97512C51B' : true, 'F4F3D03488B8B699725AEBCF9033B73C8997AED2D4504891EE4FFAC3E7CB4272' : true, + 'F501FC68C9AF9E476349B8E40ABBC7B4C371B328A9CFEE397004D7166BEA2EBB' : true, 'F513DC8D7F8B425FCF55E74BDCF2675EF2ABF98523E5226CF8A2391B0A36A919' : true, 'F55617B92584757BB516B19BFCBDA9B4A71237075487651831CD9C5F9C6F5F29' : true, 'F5CACF11F3673BFE76BC638692B907E7E1407AD77F3C8943CF4F4BF22A2D5137' : true, + 'F5D715B6BE56D1A677ECBF7C26B4D79716F5EC2D2E2EC323ABDFE3442F40BD31' : true, 'F5E43F516D61A0329F78A2560454B8346732A9420C172AC9983C0BEFFD8DEA0A' : true, 'F605AA2BD611765748A88F933BCBCEC70272F6C6A1A4AC614C2D02D17DAC6CEC' : true, 'F6620F848AB3CFC1695D2AF5399FD8FDD8F2FEC43F73F2924DF78C1A26C22653' : true, 'F6D424B2B0304F80F9F57E9A501576769B75304FFB569A1118B9B0D5E72561C6' : true, + 'F7120F4A84D6392A786CDE2F29377B267154621AA4DF7D9F4AEEA8461F8F504E' : true, 'F74D9E23F4CB53775CA60178347F2A029F77579000B21AA08EC62A1C2932348A' : true, 'F754352E819D0C33E6CFC06EECBB4356DB5D8BD1FD2591C7C817CCE662BE2BC4' : true, 'F7835EBD5236BECAB435AE25E9D79BB389DFA8462D552965A2B901ED70B4FF79' : true, 'F805AE1FEDB2D94096F0D341B703ECD4975D773A179555DDC83D424F85578571' : true, - 'F94C306978496ED2183DC7591DA0240B513527293E5D522CF7089530E4C58D29' : true, - 'F961BA44302F5AF5DC4045A7E3989D4B77AD4BDD53DE92A45F39FE56947293BF' : true, 'F99371163EC08FF74F0742422AC3108264DCCAAD1A731A5CD5CDCA9FAE8EAEE0' : true, 'F9AA3378654B8DAE243713E502260C71E88F8AD2B7021072A02574D09E34D1A0' : true, + 'F9B011926D3405A3B902B76FD7DB90E8A62429A5A34ADAD21B9870446D425130' : true, 'F9E220AC82D672997DC20E9EE89BF0713BC4153FB5F2EBC8D9AC9EE35A6E494D' : true, + 'FA0E3BFAEEA2FBC6A9E4A33EB6F289EF6C35228008ABAD3878AC4B2C8E87F957' : true, + 'FA324620CEE61AFCCA03A0B31508287FB4A78CCE65362F979770B7AF69CA0AC1' : true, 'FA616BE68A75F14CA6331BD5BFDBE3840CE34CC3C3C98E3C8C3E10F027389F2F' : true, - 'FA75601E87823F0B02F8764B29377F4EBB02A179051297597E93FB4B1F5FCAD5' : true, - 'FAA02D9B700650AAA34F4BDDA8882618BDBF954078A7B4796FD76B7961DE964C' : true, + 'FAD57B1698DDD7EEDC68ACA2B91FFC327696BA682F8B1DC7CC18D058EDB48632' : true, 'FAEDB6948B44BBBEB18CC3DE18788AD31CE938A2BA36BD84765BF47728C415E9' : true, - 'FB067C05D337FC01FC0721FA712A9E1A4FFDE059A35F3B494D36FFE241107465' : true, - 'FB1DF67EE132C7163167839175485C179E82024AD59EF806AF9D968A97F2ACA2' : true, + 'FB26AD0A3ADB010EB9B8C70998BA5AF151F8CCF1B31312A9AE5CCC3B8E4F709B' : true, 'FB3A5B27D3488E28ABA3F303A726C2F0440133025981816FEDF798E45B9B1751' : true, 'FB7EF701469F77B6412100BB2D6399B1A574BB9610186FFFCC0119E14CB2021F' : true, 'FB81BF294DB8EDE0C4DFFB7F5528EB3EB406FE435A6D62E6894482D8B42CCC48' : true, - 'FBF769E6019DEA2724DB5768974B5D32E8A91F8045707B4F50552FE1D3BEAE4E' : true, 'FC072A7AD4E6E41680493AF4BEB98215D4D2F7CE040C95004BB3A1621A9DD513' : true, 'FCA9C3A036EA797D58CA26F793C98A9952E59D37C35E352B67A30D4F8F49FC7D' : true, + 'FD347806B062972B566135DB8D7F2773BACDCD90C0143866EAF386BCFB09AF86' : true, 'FDB416F216D943190D8CADA2EB8F138F77A99CB1BC1334246697D37D8C04AB38' : true, 'FDF0D11B28F98D542D2D0B2658C0CB0CB46E5E155398B8739AD968944B4C41FB' : true, + 'FE075A2C82D9FA253B59B401A7A31C4AD5D17FD66FE393D8EE5ACD7FA478743D' : true, + 'FE0F03CC43B6AA47FF82C4D6CFDD4E696EEE91F2904ACDE87FAC4FF35F511709' : true, + 'FE2ACBE26A3ACFBA15C9C3425A9A06EED0006E94A82669BFE3BE705D578021D6' : true, 'FE739A748FB17DAFB6CBA0DA5B2164B8E0435E8DA7FB85E7970BBE731B428631' : true, - 'FEE9BBCB25431C59C14C72C963CEDF437D795B6BEFE79EBF262B7054B0E583A1' : true, 'FF3E77DFF8C24FE2DC89CE8757B6AE9ACBB838D35AEBDBD9A29D099E211380BB' : true, - 'FF5A1D7B021E92D968CCB4D6955A6A8449BF13D75D9EEB1CF36BEC3A178DB9DE' : true, 'FF8C4E466EBCD5BD1A16F83E6096501479D74D077F84F2EDEA264781DFD82270' : true, + 'FFA2F572D6F89A48043006E117D0B7B7F1D8FC7AC8C264EFD491422A38AEBDE8' : true, 'FFAE947BA6D3D7E8D31D04F02EEEE60601B0200ACDEBCB12AA5D617F650D5FD0' : true, 'FFB09E8C7F4CCA88C213AF60CD7047B85A6085DA93C7C3C7D3B73C57FA05702F' : true, 'FFFB09720CCEF3A610BCB81EEF5FCD614C1602D4968A9DE8400C05256AEDC1ED' : true, |