diff options
author | Ruben Rodriguez <ruben@gnu.org> | 2018-02-25 20:04:31 -0500 |
---|---|---|
committer | Ruben Rodriguez <ruben@gnu.org> | 2018-02-25 20:04:31 -0500 |
commit | 229240370f009a7ba1dc31f57bcfcbd2cf785d0a (patch) | |
tree | defa51219f44d19451bbcfd1e8298eadb1e3f4b7 /data/extensions/https-everywhere-eff@eff.org/chrome/content/code | |
parent | f2a3be07039056c76e3ca4e6040ec900ba64f376 (diff) |
Updated extensions
- HTTPS Everywhere updated to 2018.1.11
- "goteo.org payments with free JS" updated to 1.1
- "LibreJS compatible Pay.gov" updated to 1.3
- "Reveal hidden HTML" updated to 1.6
- Enabled WebRTC, but prevent leaking the LAN ip.
Diffstat (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/code')
11 files changed, 0 insertions, 4448 deletions
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm deleted file mode 100644 index a269e04..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/AndroidUI.jsm +++ /dev/null @@ -1,260 +0,0 @@ -const CC = Components.classes; -const CI = Components.interfaces; -const CU = Components.utils; - -var HTTPSEverywhere = CC["@eff.org/https-everywhere;1"] - .getService(CI.nsISupports).wrappedJSObject; - -CU.import("resource://gre/modules/Prompt.jsm"); - -var menuToggleId; -var menuParentId; -var menuRulesId; -var menuDefaultsId; -var aWindow = getWindow(); - - -/* - * Setup/Teardown for the UI - */ - -function loadIntoWindow() { - if (!aWindow) { - return; - } - var enabled = HTTPSEverywhere.prefs.getBoolPref("globalEnabled"); - addMenuItems(enabled); - - // When navigating away from a page, we want to clear the applicable list for - // that page. There are a few different APIs to do this, but this is the one - // that work on mobile. We trigger on pagehide rather than pageshow because we - // want to capture subresources during load. - var BrowserApp = aWindow.BrowserApp; - BrowserApp.deck.addEventListener("pagehide", function(evt) { - var browser = BrowserApp.getBrowserForDocument(evt.target); - HTTPSEverywhere.resetApplicableList(browser); - }, true); -} - -function unloadFromWindow() { - if (!aWindow) { - return; - } - aWindow.NativeWindow.menu.remove(menuParentId); -} - - -/* - * Add a menu item to toggle HTTPS Everywhere - */ - -function addToggleItemToMenu(enabled) { - if (menuToggleId) { aWindow.NativeWindow.menu.remove(menuToggleId); } - var menuLabel = enabled ? "Disable" : "Enable"; - menuToggleId = aWindow.NativeWindow.menu.add({ - name: menuLabel, - callback: function() { - popupToggleMenu(aWindow, enabled); - }, - parent: menuParentId - }); -} - -function addRulesItemToMenu(enabled){ - if (menuRulesId) { aWindow.NativeWindow.menu.remove(menuRulesId); } - - if (enabled) { - menuRulesId = aWindow.NativeWindow.menu.add({ - name: "Enable/disable rules", - callback: function() { - popupInfo.fill(); - rulesPrompt.setMultiChoiceItems(popupInfo.ruleItems); - rulesPrompt.show(function(data) { - var db = data.button; - if (db === -1) { return null; } // user didn't click the accept button - - for (var i=0; i<popupInfo.rules.length; i++) { - var ruleOn = popupInfo.ruleStatus[i]; - var ruleChecked = (data.list.indexOf(i) == -1 ? false : true); - if (ruleOn !== ruleChecked) { - HTTPSEverywhere.log(4, "toggling: "+JSON.stringify(popupInfo.rules[i])); - popupInfo.rules[i].toggle(); - } - } - reloadTab(); - return null; - }); - }, - parent: menuParentId - }); - } -} - -function addDefaultsItemToMenu(enabled){ - if (menuDefaultsId) { aWindow.NativeWindow.menu.remove(menuDefaultsId); } - - if (enabled) { - menuDefaultsId = aWindow.NativeWindow.menu.add({ - name: "Reset to Defaults", - callback: function() { - popupResetDefaultsMenu(aWindow); - }, - parent: menuParentId - }); - } -} - -function addMenuItems(enabled){ - if(!menuParentId){ - menuParentId = aWindow.NativeWindow.menu.add({ - name: "HTTPS Everywhere", - }); - } - addToggleItemToMenu(enabled); - addRulesItemToMenu(enabled); - addDefaultsItemToMenu(enabled); -} - -function popupToggleMenu(aWindow, enabled) { - var buttons = [ - { - label: "Yes", - callback: function() { - toggleEnabledState(); - var msg = enabled ? "HTTPS Everywhere disabled!" : "HTTPS Everywhere enabled!"; - aWindow.NativeWindow.toast.show(msg, "short"); - return true; - }, - positive: true - }, { - label: "No", - callback: function() { return false; } - } - ]; - var newState = enabled ? "off?" : "on?"; - aWindow.NativeWindow.doorhanger.show("Would you like to turn HTTPS Everywhere "+newState, - "doorhanger-toggle", buttons); -} - - -/* - * The HTTPS Everywhere icon in the URL bar shows a popup of rules that the - * user can activate/deactivate. On long click, reset all rules to defaults. - */ - -var popupInfo = { - rules: [], - ruleItems: [], - ruleStatus: [], - alist: null, - getApplicableList: function() { - var browser = aWindow.BrowserApp.selectedBrowser; - return HTTPSEverywhere.getApplicableListForBrowser(browser); - }, - fill: function() { - this.clear(); - this.alist = this.getApplicableList(); - HTTPSEverywhere.log(4,"applicable list active: "+JSON.stringify(this.alist.active)); - HTTPSEverywhere.log(4,"applicable list inactive: "+JSON.stringify(this.alist.inactive)); - for (var rule in this.alist.all) { - if (this.alist.active.hasOwnProperty(rule)) { - // active rules are checked and toggleable - this.ruleItems.push({ label: rule, selected: true }); - this.ruleStatus.push(true); - this.rules.push(this.alist.active[rule]); - } else if (this.alist.moot.hasOwnProperty(rule)) { - // moot rules are checked and toggleable too - this.ruleItems.push({ label: rule, selected: true }); - this.ruleStatus.push(true); - this.rules.push(this.alist.moot[rule]); - } else if (this.alist.inactive.hasOwnProperty(rule)) { - // inactive rules are unchecked and toggleable - this.ruleItems.push({ label: rule }); - this.ruleStatus.push(false); - this.rules.push(this.alist.inactive[rule]); - } else if (this.alist.breaking.hasOwnProperty(rule)) { - // breaking rules are get a unicode clockwise arrow next to them - var ruleLabel = "\u21B7"+rule; - var isSelected = this.alist.breaking[rule].active; - this.ruleItems.push({ label: ruleLabel, selected: isSelected }); - this.ruleStatus.push(isSelected); - this.rules.push(this.alist.breaking[rule]); - } - } - }, - clear: function() { - this.rules = []; - this.ruleItems = []; - this.ruleStatus = []; - this.alist = {}; - } -}; - -var rulesPrompt = new Prompt({ - window: aWindow, - title: "Enable/disable rules", - buttons: ["Apply changes"] -}); - -function popupResetDefaultsMenu(aWindow) { - var buttons = [ - { - label: "Yes", - callback: function() { - resetToDefaults(); - var msg = "Default rules reset."; - aWindow.NativeWindow.toast.show(msg, "short"); - return true; - }, - positive: true - }, { - label: "No", - callback: function() { return false; } - } - ]; - aWindow.NativeWindow.doorhanger.show("Reset all HTTPS Everywhere rules to defaults?", - "doorhanger-reset", buttons); -} - - -/* - * Some useful utils - */ - -function reloadTab() { - // There seems to be no API to do this directly? - aWindow.BrowserApp.selectedTab.window.location.reload(); -} - -function toggleEnabledState(){ - HTTPSEverywhere.toggleEnabledState(); - loadIntoWindow(); - reloadTab(); -} - -function resetToDefaults() { - HTTPSEverywhere.https_rules.resetRulesetsToDefaults(); - reloadTab(); -} - -function getWindow() { - return CC['@mozilla.org/appshell/window-mediator;1'] - .getService(CI.nsIWindowMediator) - .getMostRecentWindow('navigator:browser'); -} - - -/* - * Here's the external API to this UI module - */ - -var AndroidUI = { - init: function() { - loadIntoWindow(); - }, - shutdown: function() { - unloadFromWindow(); - } -}; - -var EXPORTED_SYMBOLS = ["AndroidUI"]; 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 deleted file mode 100644 index 1c5263a..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/ApplicableList.js +++ /dev/null @@ -1,279 +0,0 @@ -// An ApplicableList is a structure used to keep track of which rulesets -// were applied, and which ones weren't but might have been, to the contents -// of a given page (top level nsIDOMWindow) - -var serial_number = 0; - -function ApplicableList(logger, uri) { - this.log = logger; - this.uri = uri.clone(); - if (!this.uri) { - this.log(WARN,"NULL CLONING URI " + doc); - if (uri) { - this.log(WARN,"NULL CLONING URI " + uri.spec); - } - } - this.home = uri.spec; // what doc we're housekeeping for - this.active = {}; - this.breaking = {}; // rulesets with redirection loops - this.inactive = {}; - this.moot={}; // rulesets that might be applicable but uris are already https - this.all={}; // active + breaking + inactive + moot - serial_number += 1; - this.serial = serial_number; - this.log(DBUG,"Alist serial #" + this.serial + " for " + this.home); -} - -ApplicableList.prototype = { - - empty: function() { - // Empty everything, used when toggles occur in order to ensure that if - // the reload fails, the resulting list is not erroneous - this.active = {}; - this.breaking = {}; - this.inactive = {}; - this.moot={}; - this.all={}; - }, - - active_rule: function(ruleset) { - this.log(INFO,"active rule " + ruleset.name +" in "+ this.home +" -> " + - this.uri.spec+ " serial " + this.serial); - this.active[ruleset.name] = ruleset; - this.all[ruleset.name] = ruleset; - }, - - breaking_rule: function(ruleset) { - this.log(NOTE,"breaking rule " + ruleset.name +" in "+ this.home +" -> " + - this.uri.spec+ " serial " + this.serial); - this.breaking[ruleset.name] = ruleset; - this.all[ruleset.name] = ruleset; - }, - - inactive_rule: function(ruleset) { - - this.log(INFO,"inactive rule " + ruleset.name +" in "+ this.home +" -> " + - this.uri.spec+ " serial " + this.serial); - this.inactive[ruleset.name] = ruleset; - this.all[ruleset.name] = ruleset; - }, - - moot_rule: function(ruleset) { - this.log(INFO,"moot rule " + ruleset.name +" in "+ this.home + " serial " + this.serial); - this.moot[ruleset.name] = ruleset; - this.all[ruleset.name] = ruleset; - }, - - dom_handler: function(operation,key,data,src,dst) { - // See https://developer.mozilla.org/En/DOM/UserDataHandler - if (src && dst) - dst.setUserData(key, data, this.dom_handler); - }, - - 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. - 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); - }, - - populate_menu: function(document, menupopup, weird) { - this.populate_list(); - this.document = document; - - var https_everywhere = CC["@eff.org/https-everywhere;1"].getService(Components.interfaces.nsISupports).wrappedJSObject; - - // get the menu popup - this.menupopup = menupopup; - - // empty it all of its menuitems - while(this.menupopup.firstChild.tagName != "menuseparator") { - this.menupopup.removeChild(this.menupopup.firstChild); - } - - // add global enable/disable toggle button - var strings = document.getElementById("HttpsEverywhereStrings"); - - var enableLabel = document.createElement('menuitem'); - var text = strings.getString("https-everywhere.menu.globalDisable"); - if(!https_everywhere.prefs.getBoolPref("globalEnabled")) - text = strings.getString("https-everywhere.menu.globalEnable"); - - enableLabel.setAttribute('label', text); - enableLabel.setAttribute('command', 'https-everywhere-menuitem-globalEnableToggle'); - this.prepend_child(enableLabel); - - // add the label at the top - var any_rules = false; - for(var x in this.all) { - any_rules = true; // how did JavaScript get this ugly? - break; - } - // This label just describes the fact that the items underneath it enable - // and disable rules. - var label = document.createElement('menuitem'); - label.setAttribute('label', strings.getString('https-everywhere.menu.enableDisable')); - label.setAttribute('disabled', 'true'); - label.setAttribute('class', 'menuitem-non-iconic'); - label.setAttribute('style', 'font-weight: bold; color: -moz-MenuBarText;'); - var label2 = false; - if (!any_rules) { - label2 = document.createElement('menuitem'); - if (!weird) text = strings.getString('https-everywhere.menu.noRules'); - else text = strings.getString('https-everywhere.menu.unknownRules'); - label2.setAttribute('label', text); - label2.setAttribute('command', 'https-everywhere-menuitem-preferences'); - label2.setAttribute('style', 'color:#909090;'); - } - - // create a commandset if it doesn't already exist - this.commandset = document.getElementById('https-everywhere-commandset'); - if(!this.commandset) { - this.commandset = document.createElement('commandset'); - this.commandset.setAttribute('id', 'https-everywhere-commandset'); - var win = document.getElementById('main-window'); - win.appendChild(this.commandset); - } else { - // empty commandset - while(this.commandset.firstChild) - this.commandset.removeChild(this.commandset.firstChild); - } - - var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] - .getService(Components.interfaces.nsIWindowMediator); - - var browser = wm.getMostRecentWindow("navigator:browser").gBrowser.selectedBrowser; - var location = browser.currentURI.asciiSpec; //full url, including about:certerror details - - if(location.substr(0, 6) == "about:"){ - //"From" portion of the rule is retrieved from the location bar via document.getElementById("urlbar").value - - var fromHost = document.getElementById("urlbar").value; - - //scheme must be trimmed out to check for applicable rulesets - if(fromHost.indexOf("://") != -1) - fromHost = fromHost.substr(fromHost.indexOf("://") + 3, fromHost.length); - - //trim off any page locations - we only want the host - e.g. domain.com - if(fromHost.indexOf("/") != -1) - fromHost = fromHost.substr(0, fromHost.indexOf("/")); - - // Search for applicable rulesets for the host listed in the location bar - var plist = HTTPSRules.potentiallyApplicableRulesets(fromHost); - for (var i = 0 ; i < plist.length ; i++){ - //For each applicable rulset, determine active/inactive, and append to proper list. - var ruleOn = false; - try { - if(https_everywhere.rule_toggle_prefs.getBoolPref(plist[i].name)) - ruleOn = true; - } catch(e) { - if(https_everywhere.https_rules.rulesetsByName[plist[i].name].active) - ruleOn = true; - } - if(ruleOn) - this.active_rule(plist[i]); - else - this.inactive_rule(plist[i]); - } - } - - // add all applicable commands - for(var x in this.breaking) - this.add_command(this.breaking[x]); - for(var x in this.active) - this.add_command(this.active[x]); - for(var x in this.moot) - this.add_command(this.moot[x]); - for(var x in this.inactive) - this.add_command(this.inactive[x]); - - if(https_everywhere.prefs.getBoolPref("globalEnabled")){ - // add all the menu items - for (var x in this.inactive) - this.add_menuitem(this.inactive[x], 'inactive'); - // rules that are active for some uris are not really moot - for (var x in this.moot) - if (!(x in this.active)) - this.add_menuitem(this.moot[x], 'moot'); - // break once break everywhere - for (var x in this.active) - if (!(x in this.breaking)) - this.add_menuitem(this.active[x], 'active'); - for (var x in this.breaking) - this.add_menuitem(this.breaking[x], 'breaking'); - - if (label2) this.prepend_child(label2); - this.prepend_child(label); - } - - }, - - prepend_child: function(node) { - this.menupopup.insertBefore(node, this.menupopup.firstChild); - }, - - 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', ruleId+'-command'); - command.setAttribute('data-id', ruleId); - command.setAttribute('label', rule.name); - this.commandset.appendChild(command); - }, - - // add a menu item for a rule -- type is "active", "inactive", "moot", - // or "breaking" - - add_menuitem: function(rule, type) { - // create the menuitem - var item = this.document.createElement('menuitem'); - item.setAttribute('command', rule.id+'-command'); - item.setAttribute('class', type+'-item menuitem-iconic'); - item.setAttribute('type', 'checkbox'); - item.setAttribute('label', rule.name); - - // we can get confused if rulesets have their state changed after the - // ApplicableList was constructed - if (!rule.active && (type == 'active' || type == 'moot')) - type = 'inactive'; - if (rule.active && type == 'inactive') - type = 'moot'; - - // set the icon - var image_src; - if (type == 'active') image_src = 'tick.png'; - else if (type == 'inactive') image_src = 'cross.png'; - else if (type == 'moot') image_src = 'tick-moot.png'; - else if (type == 'breaking') image_src = 'loop.png'; - item.setAttribute('image', 'chrome://https-everywhere/skin/'+image_src); - - // all done - this.prepend_child(item); - }, - - show_applicable: function() { - this.log(WARN, "Applicable list number " + this.serial); - for (var x in this.active) - this.log(WARN,"Active: " + this.active[x].name); - - for (var x in this.breaking) - this.log(WARN,"Breaking: " + this.breaking[x].name); - - for (x in this.inactive) - this.log(WARN,"Inactive: " + this.inactive[x].name); - - for (x in this.moot) - this.log(WARN,"Moot: " + this.moot[x].name); - - } -}; - 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 deleted file mode 100644 index 80b3e50..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js +++ /dev/null @@ -1,150 +0,0 @@ -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 (p of 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 deleted file mode 100644 index c7328f6..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPS.js +++ /dev/null @@ -1,330 +0,0 @@ -INCLUDE('Cookie'); - -var securityService = CC['@mozilla.org/ssservice;1'] - .getService(CI.nsISiteSecurityService); - -// Hack. We only need the part of the policystate that tracks content -// policy loading. -const PolicyState = { - attach: function(channel) { - IOUtil.attachToChannel(channel, "httpseverywhere.policyLoaded", true); - }, - - extract: function(channel) { - var res = IOUtil.extractFromChannel(channel, - "httpseverywhere.policyLoaded", true); - return res; - }, -}; - -const HTTPS = { - ready: false, - - secureCookies: true, - secureCookiesExceptions: null, - secureCookiesForced: null, - httpsForced: null, - httpsForcedExceptions: null, - httpsRewrite: null, - - /** - * Given a channel and a list of potentially applicable rules, - * redirect or abort a request if appropriate. - * - * @param {RuleSet[]} applicable_list A list of potentially applicable rules - * (i.e. those that match on a hostname basis). - * @param {nsIChannel} channel The channel to be manipulated. - * @param {boolean} httpNowhereEnabled Whether to abort non-https requests. - * @returns {boolean} True if the request was redirected; false if it was - * untouched or aborted. - */ - replaceChannel: function(applicable_list, channel, httpNowhereEnabled) { - var blob = HTTPSRules.rewrittenURI(applicable_list, channel.URI.clone()); - var uri; - if (blob === null) { - // Abort insecure non-onion, non-localhost requests if HTTP Nowhere is on - if (httpNowhereEnabled && - channel.URI.schemeIs("http") && - !/\.onion$/.test(channel.URI.host) && - !/^localhost$/.test(channel.URI.host) && - !/^127(\.[0-9]{1,3}){3}$/.test(channel.URI.host) && - !/^0\.0\.0\.0$/.test(channel.URI.host) - ) { - var newurl = channel.URI.spec.replace(/^http:/, "https:"); - uri = CC["@mozilla.org/network/standard-url;1"]. - createInstance(CI.nsIStandardURL); - uri.init(CI.nsIStandardURL.URLTYPE_STANDARD, 443, - newurl, channel.URI.originCharset, null); - uri = uri.QueryInterface(CI.nsIURI); - } else { - return false; // no rewrite - } - } else { - uri = blob.newuri; - } - if (!uri) this.log(WARN, "OH NO BAD ARGH\nARGH"); - - // Abort downgrading if HTTP Nowhere is on - if (httpNowhereEnabled && uri.schemeIs("http")) { - IOUtil.abort(channel); - } - - var c2 = channel.QueryInterface(CI.nsIHttpChannel); - this.log(DBUG, channel.URI.spec+": Redirection limit is " + c2.redirectionLimit); - // XXX This used to be (c2.redirectionLimit == 1), but that's very - // inefficient in a case (eg amazon) where this may happen A LOT. - // Rather than number like 10, we should use the starting value - // in network.http.redirection-limit minus some counter - if (c2.redirectionLimit < 10) { - this.log(WARN, "Redirection loop trying to set HTTPS on:\n " + - channel.URI.spec +"\n(falling back to HTTP)"); - if (blob) { - if (!blob.applied_ruleset) { - this.log(WARN,"Blacklisting rule for: " + channel.URI.spec); - https_everywhere_blacklist[channel.URI.spec] = true; - } - https_everywhere_blacklist[channel.URI.spec] = blob.applied_ruleset; - } - var domain = null; - try { domain = channel.URI.host; } catch (e) {} - if (domain) https_blacklist_domains[domain] = true; - if (httpNowhereEnabled && channel.URI.schemeIs("http")) { - IOUtil.abort(channel); - } - return false; - } - - // Check for the new internal redirect API. If it exists, use it. - if (!"redirectTo" in channel) { - this.log(WARN, "nsIHTTPChannel.redirectTo API is missing. This version of HTTPS Everywhere is useless!!!!\n!!!\n"); - return false; - } - - this.log(INFO, "Using nsIHttpChannel.redirectTo: " + channel.URI.spec + " -> " + uri.spec); - try { - channel.redirectTo(uri); - return true; - } catch(e) { - // This should not happen. We should only get exceptions if - // the channel was already open. - this.log(WARN, "Exception on nsIHttpChannel.redirectTo: "+e); - } - this.log(WARN,"Aborting redirection " + channel.name + ", should be HTTPS!"); - IOUtil.abort(channel); - return false; - }, - - // getApplicableListForContext was remove along with the nsIContentPolicy - // bindings and the and forceURI path that used them. - - onCrossSiteRequest: function(channel, origin, browser, rw) { - try { - this.handleCrossSiteCookies(channel, origin, browser); - } catch(e) { - this.log(WARN, e + " --- " + e.stack); - } - }, - - registered: false, - handleSecureCookies: function(req) { - - try { - req = req.QueryInterface(CI.nsIHttpChannel); - } catch(e) { - this.log(WARN, "Request is not an nsIHttpChannel: " + req); - return; - } - if (!this.secureCookies) return; - var uri = req.URI; - if (!uri) { - this.log(WARN,"No URI inside request " +req); - return; - } - //this.log(DBUG, "Cookie hunting in " + uri.spec); - var alist = HTTPSEverywhere.instance.getApplicableListForChannel(req); - if (!alist) - this.log(INFO, "No alist for cookies for "+(req.URI) ? req.URI.spec : "???"); - - if (uri.schemeIs("https")) { - var host = uri.host; - try { - var cookies = req.getResponseHeader("Set-Cookie"); - } catch(mayHappen) { - //this.log(VERB,"Exception hunting Set-Cookie in headers: " + mayHappen); - return; - } - if (!cookies) return; - var c; - for (var cs of cookies.split("\n")) { - this.log(DBUG, "Examining cookie: "); - c = new Cookie(cs, host); - if (!c.secure && HTTPSRules.shouldSecureCookie(alist, c, true)) { - this.log(INFO, "Securing cookie: " + c.domain + " " + c.name); - c.secure = true; - req.setResponseHeader("Set-Cookie", c.source + ";Secure", true); - } - } - - } - }, - - handleInsecureCookie: function(c) { - if (HTTPSRules.shouldSecureCookie(null, c, false)) { - this.log(INFO, "Securing cookie from event: " + c.host + " " + c.name); - var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"] - .getService(Components.interfaces.nsICookieManager2); - //some braindead cookies apparently use umghzabilliontrabilions - var expiry = Math.min(c.expiry, Math.pow(2,31)); - cookieManager.remove(c.host, c.name, c.path, false, c.originAttributes); - cookieManager.add(c.host, c.path, c.name, c.value, true, c.isHTTPOnly, c.isSession, expiry, c.originAttributes); - } - }, - - handleCrossSiteCookies: function(req, origin, browser) { - - var unsafeCookies = this.getUnsafeCookies(browser); - if (!unsafeCookies) return; - - var uri = req.URI; - var dscheme = uri.scheme; - - var oparts = origin && origin.match(/^(https?):\/\/([^\/:]+).*?(\/.*)/); - if (!(oparts && /https?/.test(dscheme))) return; - - var oscheme = oparts[1]; - if (oscheme == dscheme) return; // we want to check only cross-scheme requests - - var dsecure = dscheme == "https"; - - if (dsecure && !ns.getPref("secureCookies.recycle", false)) return; - - var dhost = uri.host; - var dpath = uri.path; - - var ohost = oparts[2]; - var opath = oparts[3]; - - var ocookieCount = 0, totCount = 0; - var dcookies = []; - var c; - - for (var k in unsafeCookies) { - c = unsafeCookies[k]; - if (!c.exists()) { - delete unsafeCookies[k]; - } else { - totCount++; - if (c.belongsTo(dhost, dpath) && c.secure != dsecure) { // either secure on http or not secure on https - dcookies.push(c); - } - if (c.belongsTo(ohost, opath)) { - ocookieCount++; - } - } - } - - if (!totCount) { - this.setUnsafeCookies(browser, null); - return; - } - - // We want to "desecurify" cookies only if cross-navigation to unsafe - // destination originates from a site sharing some secured cookies - - if (ocookieCount == 0 && !dsecure || !dcookies.length) return; - - if (dsecure) { - this.log(WARN,"Detected cross-site navigation with secured cookies: " + origin + " -> " + uri.spec); - - } else { - this.log(WARN,"Detected unsafe navigation with NoScript-secured cookies: " + origin + " -> " + uri.spec); - this.log(WARN,uri.prePath + " cannot support secure cookies because it does not use HTTPS. Consider forcing HTTPS for " + uri.host + " in NoScript's Advanced HTTPS options panel."); - } - - var cs = CC['@mozilla.org/cookieService;1'].getService(CI.nsICookieService).getCookieString(uri, req); - - for (c of dcookies) { - c.secure = dsecure; - c.save(); - this.log(WARN,"Toggled secure flag on " + c); - } - - if (cs) { - dcookies.push.apply( - dcookies, cs.split(/\s*;\s*/).map(function(cs) { var nv = cs.split("="); return { name: nv.shift(), value: nv.join("=") }; }) - .filter(function(c) { return dcookies.every(function(x) { return x.name != c.name; }); }) - ); - } - - cs = dcookies.map(function(c) { return c.name + "=" + c.value; }).join("; "); - - this.log(WARN,"Sending Cookie for " + dhost + ": " + cs); - req.setRequestHeader("Cookie", cs, false); // "false" because merge syntax breaks Cookie header - }, - - - cookiesCleanup: function(refCookie) { - var ignored = this.secureCookiesExceptions; - var disabled = !this.secureCookies; - var bi = DOM.createBrowserIterator(); - var unsafe, k, c, total, deleted; - for (var browser; browser = bi.next();) { - unsafe = this.getUnsafeCookies(browser); - if (!unsafe) continue; - total = deleted = 0; - for (k in unsafe) { - c = unsafe[k]; - total++; - if (disabled || (refCookie ? c.belongsTo(refCookie.host) : ignored && ignored.test(c.rawHost))) { - if (c.exists()) { - this.log(WARN,"Cleaning Secure flag from " + c); - c.secure = false; - c.save(); - } - delete unsafe[k]; - deleted++; - } - } - if (total == deleted) this.setUnsafeCookies(browser, null); - if (!this.cookiesPerTab) break; - } - }, - - get cookiesPerTab() { - return ns.getPref("secureCookies.perTab", false); - }, - - _globalUnsafeCookies: {}, - getUnsafeCookies: function(browser) { - return this.cookiesPerTab - ? browser && ns.getExpando(browser, "unsafeCookies") - : this._globalUnsafeCookies; - }, - setUnsafeCookies: function(browser, value) { - return this.cookiesPerTab - ? browser && ns.setExpando(browser, "unsafeCookies", value) - : this._globalUnsafeCookies = value; - }, - - _getParent: function(req, w) { - return w && w.frameElement || DOM.findBrowserForNode(w || IOUtil.findWindow(req)); - } - -}; - -(function () { - ["secureCookies", "secureCookiesExceptions", "secureCookiesForced"].forEach(function(p) { - var v = HTTPS[p]; - delete HTTPS[p]; - HTTPS.__defineGetter__(p, function() { - return v; - }); - HTTPS.__defineSetter__(p, function(n) { - v = n; - if (HTTPS.ready) HTTPS.cookiesCleanup(); - return v; - }); - }); -})(); - -HTTPS.ready = true; 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 deleted file mode 100644 index 1ae74d4..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js +++ /dev/null @@ -1,780 +0,0 @@ -// Compilation of RegExps is now delayed until they are first used... - -function Rule(from, to) { - this.to = to; - this.from_c = from; // This will become a RegExp after compilation -} - -function Exclusion(pattern) { - this.pattern_c = pattern; // Will become a RegExp after compilation -} - -function CookieRule(host, cookiename) { - this.host = host; - this.name = cookiename; - - // These will be made during compilation: - - //this.host_c = new RegExp(host); - //this.name_c = new RegExp(cookiename); -} - -function RuleSet(id, name, xmlName, match_rule, default_off, platform) { - if(xmlName == "WordPress.xml" || xmlName == "Github.xml") { - this.log(NOTE, "RuleSet( name="+name+", xmlName="+xmlName+", match_rule="+match_rule+", default_off="+default_off+", platform="+platform+" )"); - } - - this.id=id; - this.on_by_default = true; - this.compiled = false; - this.name = name; - this.xmlName = xmlName; - this.notes = ""; - - if (match_rule) this.ruleset_match_c = new RegExp(match_rule); - else this.ruleset_match_c = null; - if (default_off) { - // Perhaps problematically, this currently ignores the actual content of - // the default_off XML attribute. Ideally we'd like this attribute to be - // "valueless" - this.notes = default_off; - this.on_by_default = false; - } - if (platform) - if (platform.search(HTTPSRules.localPlatformRegexp) == -1) { - this.on_by_default = false; - this.notes = "Only for " + platform; - } - - this.rules = []; - this.exclusions = []; - this.cookierules = []; - - this.rule_toggle_prefs = HTTPSEverywhere.instance.rule_toggle_prefs; - - try { - // if this pref exists, use it - this.active = this.rule_toggle_prefs.getBoolPref(name); - } catch(e) { - // if not, use the default - this.active = this.on_by_default; - } -} - -var dom_parser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser); - -RuleSet.prototype = { - - ensureCompiled: function() { - // Postpone compilation of exclusions, rules and cookies until now, to accelerate - // browser load time. - if (this.compiled) return; - var i; - - for (i = 0; i < this.exclusions.length; ++i) { - this.exclusions[i].pattern_c = new RegExp(this.exclusions[i].pattern_c); - } - for (i = 0; i < this.rules.length; ++i) { - this.rules[i].from_c = new RegExp(this.rules[i].from_c); - } - - for (i = 0; i < this.cookierules.length; i++) { - var cr = this.cookierules[i]; - cr.host_c = new RegExp(cr.host); - cr.name_c = new RegExp(cr.name); - } - - this.compiled = true; - }, - - apply: function(urispec) { - // return null if it does not apply - // and the new url if it does apply - var i; - var returl = null; - this.ensureCompiled(); - // If a rulset has a match_rule and it fails, go no further - if (this.ruleset_match_c && !this.ruleset_match_c.test(urispec)) { - this.log(VERB, "ruleset_match_c excluded " + urispec); - return null; - } - // Even so, if we're covered by an exclusion, go home - for (i = 0; i < this.exclusions.length; ++i) { - if (this.exclusions[i].pattern_c.test(urispec)) { - this.log(DBUG,"excluded uri " + urispec); - return null; - } - } - // Okay, now find the first rule that triggers - for (i = 0; i < this.rules.length; ++i) { - // This is just for displaying inactive rules - returl = urispec.replace(this.rules[i].from_c, this.rules[i].to); - if (returl != urispec) { - // we rewrote the uri - this.log(DBUG, "Rewrote " + urispec + " -> " + returl + " using " + this.xmlName + ": " + this.rules[i].from_c + " -> " + this.rules[i].to); - return returl; - } - } - - return null; - }, - log: function(level, msg) { - https_everywhereLog(level, msg); - }, - - wouldMatch: function(hypothetical_uri, alist) { - // return true if this ruleset would match the uri, assuming it were http - // used for judging moot / inactive rulesets - // alist is optional - - // if the ruleset is already somewhere in this applicable list, we don't - // care about hypothetical wouldMatch questions - if (alist && (this.name in alist.all)) return false; - - this.log(DBUG,"Would " +this.name + " match " +hypothetical_uri.spec + - "? serial " + (alist && alist.serial)); - - var uri = hypothetical_uri.clone(); - if (uri.scheme == "https") uri.scheme = "http"; - 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; - }, - - transformURI: function(uri) { - // If no rule applies, return null; if a rule would have applied but was - // inactive, return 0; otherwise, return a fresh uri instance - // for the target - var newurl = this.apply(uri.spec); - if (null == newurl) - return null; - var newuri = Components.classes["@mozilla.org/network/standard-url;1"]. - createInstance(CI.nsIStandardURL); - newuri.init(CI.nsIStandardURL.URLTYPE_STANDARD, 443, - newurl, uri.originCharset, null); - newuri = newuri.QueryInterface(CI.nsIURI); - return newuri; - }, - - enable: function() { - // Enable us. - this.rule_toggle_prefs.setBoolPref(this.name, true); - this.active = true; - }, - - disable: function() { - // Disable us. - this.rule_toggle_prefs.setBoolPref(this.name, false); - this.active = false; - }, - - toggle: function() { - this.active = !this.active; - this.rule_toggle_prefs.setBoolPref(this.name, this.active); - }, - - clear: function() { - try { - this.rule_toggle_prefs.clearUserPref(this.name); - } catch(e) { - // this ruleset has never been toggled - } - this.active = this.on_by_default; - } -}; - -const RuleWriter = { - - getCustomRuleDir: function() { - var loc = "ProfD"; // profile directory - var file = - CC["@mozilla.org/file/directory_service;1"] - .getService(CI.nsIProperties) - .get(loc, CI.nsILocalFile) - .clone(); - file.append("HTTPSEverywhereUserRules"); - // Check for existence, if not, create. - if (!file.exists()) { - file.create(CI.nsIFile.DIRECTORY_TYPE, 0700); - } - if (!file.isDirectory()) { - // XXX: Arg, death! - } - return file; - }, - - chromeToPath: function (aPath) { - if (!aPath || !(/^chrome:/.test(aPath))) - return; //not a chrome url - - var ios = - CC['@mozilla.org/network/io-service;1'] - .getService(CI.nsIIOService); - var uri = ios.newURI(aPath, "UTF-8", null); - var cr = - CC['@mozilla.org/chrome/chrome-registry;1'] - .getService(CI.nsIChromeRegistry); - var rv = cr.convertChromeURL(uri).spec; - - if (/^file:/.test(rv)) - rv = this.urlToPath(rv); - else - rv = this.urlToPath("file://"+rv); - - return rv; - }, - - urlToPath: function (aPath) { - if (!aPath || !/^file:/.test(aPath)) - return ; - - var ph = - CC["@mozilla.org/network/protocol;1?name=file"] - .createInstance(CI.nsIFileProtocolHandler); - var rv = ph.getFileFromURLSpec(aPath).path; - - return rv; - }, - - readFromUrl: function (url) { - var ios = CC['@mozilla.org/network/io-service;1'] - .getService(CI.nsIIOService); - var encoding = "UTF-8"; - var channel = ios.newChannel(url, encoding, null); - var stream = channel.open(); - var streamSize = stream.available(); - - if (!streamSize) { - return null; - } - - var convStream = CC["@mozilla.org/intl/converter-input-stream;1"] - .createInstance(CI.nsIConverterInputStream); - - convStream.init(stream, encoding, streamSize, - convStream.DEFAULT_REPLACEMENT_CHARACTER); - - var data = {}; - convStream.readString(streamSize, data); - - return data.value; - }, - - readFromFile: function(file) { - if (!file.exists()) - return null; - var data = ""; - var fstream = CC["@mozilla.org/network/file-input-stream;1"] - .createInstance(CI.nsIFileInputStream); - var sstream = CC["@mozilla.org/scriptableinputstream;1"] - .createInstance(CI.nsIScriptableInputStream); - fstream.init(file, -1, 0, 0); - sstream.init(fstream); - - var str = sstream.read(4096); - while (str.length > 0) { - data += str; - str = sstream.read(4096); - } - - sstream.close(); - fstream.close(); - return data; - }, - - write: function(file, data) { - //if (!file.exists()) - // return null; - this.log(DBUG, "Opening " + file.path + " for writing"); - var fstream = CC["@mozilla.org/network/file-output-stream;1"] - .createInstance(CI.nsIFileOutputStream); - fstream.init(file, -1, -1, 0); - - var retval = fstream.write(data, data.length); - this.log(DBUG, "Got retval " + retval); - fstream.close(); - return data; - }, - - rulesetFromFile: function(file, rule_store, ruleset_id) { - if ((rule_store.targets == null) && (rule_store.targets != {})) - this.log(WARN, "TARGETS IS NULL"); - var data = this.readFromFile(file); - if (!data) return null; - return this.readFromString(data, rule_store, ruleset_id); - }, - - readFromString: function(data, rule_store, ruleset_id) { - try { - var xmlruleset = dom_parser.parseFromString(data, "text/xml"); - } catch(e) { // file has been corrupted; XXX: handle error differently - this.log(WARN,"Error in XML data: " + e + "\n" + data); - return null; - } - this.parseOneRuleset(xmlruleset.documentElement, rule_store, ruleset_id); - }, - - parseOneRuleset: function(xmlruleset, rule_store, ruleset_id) { - // Extract an xmlruleset into the rulestore - if (!xmlruleset.getAttribute("name")) { - this.log(WARN, "This blob: '" + xmlruleset + "' is not a ruleset\n"); - return null; - } - - this.log(DBUG, "Parsing " + xmlruleset.getAttribute("name")); - - var match_rl = xmlruleset.getAttribute("match_rule"); - var dflt_off = xmlruleset.getAttribute("default_off"); - var platform = xmlruleset.getAttribute("platform"); - var rs = new RuleSet(ruleset_id, xmlruleset.getAttribute("name"), xmlruleset.getAttribute("f"), match_rl, dflt_off, platform); - - // see if this ruleset has the same name as an existing ruleset; - // if so, this ruleset is ignored; DON'T add or return it. - if (rs.name in rule_store.rulesetsByName) { - this.log(WARN, "Error: found duplicate rule name " + rs.name); - return null; - } - - // 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 JSON database is built. - var targets = xmlruleset.getElementsByTagName("target"); - for (var i = 0; i < targets.length; i++) { - var host = targets[i].getAttribute("host"); - if (!host) { - this.log(WARN, "<target> missing host in " + xmlruleset.getAttribute("name")); - return null; - } - if (! rule_store.targets[host]) - rule_store.targets[host] = []; - this.log(DBUG, "Adding " + host + " to targets, pointing at " + ruleset_id); - rule_store.targets[host].push(ruleset_id); - } - - var exclusions = xmlruleset.getElementsByTagName("exclusion"); - for (var i = 0; i < exclusions.length; i++) { - var exclusion = new Exclusion(exclusions[i].getAttribute("pattern")); - rs.exclusions.push(exclusion); - } - - var rules = xmlruleset.getElementsByTagName("rule"); - for (var i = 0; i < rules.length; i++) { - var rule = new Rule(rules[i].getAttribute("from"), - rules[i].getAttribute("to")); - rs.rules.push(rule); - } - - var securecookies = xmlruleset.getElementsByTagName("securecookie"); - for (var i = 0; i < securecookies.length; i++) { - var c_rule = new CookieRule(securecookies[i].getAttribute("host"), - securecookies[i].getAttribute("name")); - rs.cookierules.push(c_rule); - this.log(DBUG,"Cookie rule "+ c_rule.host+ " " +c_rule.name); - } - - rule_store.rulesets.push(rs); - rule_store.rulesetsByID[rs.id] = rs; - rule_store.rulesetsByName[rs.name] = rs; - }, - - enumerate: function(dir) { - // file is the given directory (nsIFile) - var entries = dir.directoryEntries; - var ret = []; - while(entries.hasMoreElements()) { - var entry = entries.getNext(); - entry.QueryInterface(Components.interfaces.nsIFile); - ret.push(entry); - } - return ret; - }, -}; - - - -const HTTPSRules = { - init: function() { - try { - this.rulesets = []; - this.targets = {}; // dict mapping target host pattern -> list of - // applicable ruleset ids - this.rulesetsByID = {}; - this.rulesetsByName = {}; - var t1 = new Date().getTime(); - this.checkMixedContentHandling(); - var rulefiles = RuleWriter.enumerate(RuleWriter.getCustomRuleDir()); - - this.loadTargets(); - this.scanRulefiles(rulefiles); - - } 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; - }, - - /** - * 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 loc = "chrome://https-everywhere/content/rulesets.json"; - var data = RuleWriter.readFromUrl(loc); - var rules = JSON.parse(data); - this.targets = rules.targets; - this.rulesetStrings = rules.rulesetStrings; - }, - - checkMixedContentHandling: function() { - // Firefox 23+ blocks mixed content by default, so rulesets that create - // mixed content situations should be disabled there - var appInfo = CC["@mozilla.org/xre/app-info;1"].getService(CI.nsIXULAppInfo); - var platformVer = appInfo.platformVersion; - var versionChecker = CC["@mozilla.org/xpcom/version-comparator;1"] - .getService(CI.nsIVersionComparator); - var prefs = Components.classes["@mozilla.org/preferences-service;1"] - .getService(Components.interfaces.nsIPrefService).getBranch(""); - - - // If mixed content is present and enabled, and the user hasn't opted to enable - // mixed content triggering rules, leave them out. Otherwise add them in. - if(versionChecker.compare(appInfo.version, "23.0a1") >= 0 - && prefs.getBoolPref("security.mixed_content.block_active_content") - && !prefs.getBoolPref("extensions.https_everywhere.enable_mixed_rulesets")) { - this.log(INFO, "Not activating rules that trigger mixed content errors."); - this.localPlatformRegexp = new RegExp("firefox"); - } else { - this.log(INFO, "Activating rules that would normally trigger mixed content"); - this.localPlatformRegexp = new RegExp("(firefox|mixedcontent)"); - } - }, - - scanRulefiles: function(rulefiles) { - var i = 0; - var r = null; - for(i = 0; i < rulefiles.length; ++i) { - try { - this.log(DBUG,"Loading ruleset file: "+rulefiles[i].path); - var ruleset_id = "custom_" + i; - RuleWriter.rulesetFromFile(rulefiles[i], this, ruleset_id); - } catch(e) { - this.log(WARN, "Error in ruleset file: " + e); - if (e.lineNumber) - this.log(WARN, "(line number: " + e.lineNumber + ")"); - } - } - }, - - resetRulesetsToDefaults: function() { - // Callable from within the prefs UI and also for cleaning up buggy - // configurations... - for (var i in this.rulesets) { - this.rulesets[i].clear(); - } - }, - - - 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 - // the new uri if there was a rewrite. Now it returns a JS object with a - // newuri attribute and an applied_ruleset attribute (or null if there's - // no rewrite). - var i = 0; - userpass_present = false; // Global so that sanitiseURI can tweak it. - // Why does JS have no tuples, again? - var blob = {}; blob.newuri = null; - 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 rs = this.potentiallyApplicableRulesets(uri.host); - } catch(e) { - 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; - } - 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) { - // Rulesets shouldn't try to parse usernames and passwords. If we find - // those, apply the ruleset without them (and then add them back later). - // When .userPass is absent, sometimes it is false and sometimes trying - // to read it raises an exception (probably depending on the URI type). - var uri = input_uri; - try { - if (input_uri.userPass) { - uri = input_uri.clone(); - userpass_present = true; // tweaking a global in our caller :( - uri.userPass = null; - } - } catch(e) {} - - // example.com. is equivalent to example.com - // example.com.. is invalid, but firefox would load it anyway - try { - if (uri.host) - try { - var h = uri.host; - if (h.charAt(h.length - 1) == ".") { - while (h.charAt(h.length - 1) == ".") - h = h.slice(0,-1); - uri = uri.clone(); - uri.host = h; - } - } catch(e) { - this.log(WARN, "Failed to normalise domain: "); - try {this.log(WARN, input_uri.host);} - catch(e2) {this.log(WARN, "bang" + e + " & " + e2 + " & "+ input_uri);} - } - } catch(e3) { - this.log(INFO, "uri.host is explosive!"); - try { this.log(INFO, "(" + uri.spec + ")"); } // happens for about: uris and so forth - catch(e4) { this.log(WARN, "(and unprintable!!!!!!)"); } - } - return uri; - }, - - setInsert: function(intoList, fromList) { - // Insert any elements from fromList into intoList, if they are not - // already there. fromList may be null. - if (!fromList) return; - for (var i = 0; i < fromList.length; i++) - if (intoList.indexOf(fromList[i]) == -1) - intoList.push(fromList[i]); - }, - - // Load a ruleset by numeric id, e.g. 234 - 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. - 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]); - } - } - } else { - this.log(DBUG, "For target " + target + ", found no ids in DB"); - } - return output; - }, - - /** - * Return a list of rulesets that declare targets matching a given hostname. - * The returned rulesets include those that are disabled for various reasons. - * 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 {Array.<RuleSet>} - */ - potentiallyApplicableRulesets: function(host) { - var i, tmp, t; - 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]; - segmented[i] = "*"; - t = segmented.join("."); - segmented[i] = tmp; - 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("."); - 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; - }, - - /** - * If a cookie's domain attribute has a leading dot to indicate it should be - * sent for all subdomains (".example.com"), return the actual host part (the - * part after the dot). - * - * @param cookieDomain {string} A cookie domain to strip a leading dot from. - * @return {string} a fully qualified hostname. - */ - hostFromCookieDomain: function(cookieDomain) { - if (cookieDomain.length > 0 && cookieDomain[0] == ".") { - return cookieDomain.slice(1); - } else { - return cookieDomain; - } - }, - - /** - * Check to see if the Cookie object c meets any of our cookierule criteria - * for being marked as secure. - * - * @param applicable_list {ApplicableList} an ApplicableList for record keeping - * @param c {nsICookie2} The cookie we might secure. - * @param known_https {boolean} True if the cookie appeared in an HTTPS request and - * so we know it is okay to mark it secure (assuming a cookierule matches it. - * TODO(jsha): Double-check that the code calling this actually does that. - * @return {boolean} True if the cookie in question should have the 'secure' - * flag set to true. - */ - shouldSecureCookie: function(applicable_list, c, known_https) { - this.log(DBUG," rawhost: " + c.rawHost + " name: " + c.name + " host" + c.host); - var i,j; - // potentiallyApplicableRulesets is defined on hostnames not cookie-style - // "domain" attributes, so we strip a leading dot before calling. - 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))) { - continue; - } - for (j = 0; j < ruleset.cookierules.length; j++) { - var cr = ruleset.cookierules[j]; - if (cr.host_c.test(c.host) && cr.name_c.test(c.name)) { - if (applicable_list) applicable_list.active_rule(ruleset); - this.log(INFO,"Active cookie rule " + ruleset.name); - return true; - } - } - if (ruleset.cookierules.length > 0 && applicable_list) { - applicable_list.moot_rule(ruleset); - } - } else if (ruleset.cookierules.length > 0) { - if (applicable_list) { - applicable_list.inactive_rule(ruleset); - } - this.log(INFO,"Inactive cookie rule " + ruleset.name); - } - } - return false; - }, - - /** - * Check if the domain might be being served over HTTP. If so, it isn't - * safe to secure a cookie! We can't always know this for sure because - * observing cookie-changed doesn't give us enough context to know the - * full origin URI. In particular, if cookies are set from Javascript (as - * opposed to HTTP/HTTPS responses), we don't know what page context that - * Javascript ran in. - - * First, if there are any redirect loops on this domain, don't secure - * cookies. XXX This is not a very satisfactory heuristic. Sometimes we - * would want to secure the cookie anyway, because the URLs that loop are - * not authenticated or not important. Also by the time the loop has been - * observed and the domain blacklisted, a cookie might already have been - * flagged as secure. - * - * @param domain {string} The cookie's 'domain' attribute. - * @return {boolean} True if it's safe to secure a cookie on that domain. - */ - safeToSecureCookie: function(domain) { - if (domain in https_blacklist_domains) { - this.log(INFO, "cookies for " + domain + "blacklisted"); - return false; - } - - // If we passed that test, make up a random URL on the domain, and see if - // we would HTTPSify that. - try { - var nonce_path = "/" + Math.random().toString(); - nonce_path = nonce_path + nonce_path; - var test_uri = "http://" + domain + nonce_path; - } catch (e) { - this.log(WARN, "explosion in safeToSecureCookie for " + domain + "\n" - + "(" + e + ")"); - return false; - } - - 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); - if (rewrite) { - this.log(DBUG, "Safe to secure cookie for " + test_uri + ": " + rewrite); - return true; - } - } - this.log(DBUG, "Unsafe to secure cookie for " + test_uri); - return false; - } -}; diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js deleted file mode 100644 index 4893763..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/IOUtil.js +++ /dev/null @@ -1,267 +0,0 @@ -Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); - -const IO = { - readFile: function(file, charset) { - var res; - - const is = Cc["@mozilla.org/network/file-input-stream;1"] - .createInstance(Ci.nsIFileInputStream ); - is.init(file ,0x01, 256 /*0400*/, null); - const sis = Cc["@mozilla.org/scriptableinputstream;1"] - .createInstance(Ci.nsIScriptableInputStream); - sis.init(is); - - res = sis.read(sis.available()); - is.close(); - - if (charset !== null) { // use "null" if you want unconverted data... - const unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"] - .createInstance(Ci.nsIScriptableUnicodeConverter); - try { - unicodeConverter.charset = charset || "UTF-8"; - } catch(ex) { - unicodeConverter.charset = "UTF-8"; - } - res = unicodeConverter.ConvertToUnicode(res); - } - - return res; - }, - writeFile: function(file, content, charset) { - const unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"] - .createInstance(Ci.nsIScriptableUnicodeConverter); - try { - unicodeConverter.charset = charset || "UTF-8"; - } catch(ex) { - unicodeConverter.charset = "UTF-8"; - } - - content = unicodeConverter.ConvertFromUnicode(content); - const os = Cc["@mozilla.org/network/file-output-stream;1"] - .createInstance(Ci.nsIFileOutputStream); - os.init(file, 0x02 | 0x08 | 0x20, 448 /*0700*/, 0); - os.write(content, content.length); - os.close(); - }, - - safeWriteFile: function(file, content, charset) { - var tmp = file.clone(); - var name = file.leafName; - tmp.leafName = name + ".tmp"; - tmp.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, file.exists() ? file.permissions : 384 /*0600*/); - this.writeFile(tmp, content, charset); - tmp.moveTo(file.parent, name); - } -}; - - -function nsISupportsWrapper(wrapped) { - this.wrappedJSObject = wrapped; -} -nsISupportsWrapper.prototype = { - QueryInterface: XPCOMUtils.generateQI([]) -}; - -const IOUtil = { - asyncNetworking: true, - proxiedDNS: 0, - - attachToChannel: function(channel, key, requestInfo) { - if (channel instanceof Ci.nsIWritablePropertyBag2) - channel.setPropertyAsInterface(key, requestInfo); - }, - extractFromChannel: function(channel, key, preserve) { - if (channel instanceof Ci.nsIPropertyBag2) { - let p = channel.get(key); - if (p) { - if (!preserve && (channel instanceof Ci.nsIWritablePropertyBag)) channel.deleteProperty(key); - if (p.wrappedJSObject) return p.wrappedJSObject; - p instanceof Ci.nsIURL || p instanceof Ci.nsIURL; - return p; - } - } - return null; - }, - - extractInternalReferrer: function(channel) { - if (channel instanceof Ci.nsIPropertyBag2) { - const key = "docshell.internalReferrer"; - if (channel.hasKey(key)) - try { - return channel.getPropertyAsInterface(key, Ci.nsIURL); - } catch(e) {} - } - return null; - }, - extractInternalReferrerSpec: function(channel) { - var ref = this.extractInternalReferrer(channel); - return ref && ref.spec || null; - }, - - getProxyInfo: function(channel) { - return Ci.nsIProxiedChannel && (channel instanceof Ci.nsIProxiedChannel) - ? channel.proxyInfo - : Components.classes["@mozilla.org/network/protocol-proxy-service;1"] - .getService(Components.interfaces.nsIProtocolProxyService) - .resolve(channel.URI, 0); - }, - - - canDoDNS: function(channel) { - if (!channel || IOS.offline) return false; - - var proxyInfo = this.getProxyInfo(channel); - switch(this.proxiedDNS) { - case 1: - return !(proxyInfo && (proxyInfo.flags & Ci.nsIProxyInfo.TRANSPARENT_PROXY_RESOLVES_HOST)); - case 2: - return true; - default: - return !proxyInfo || proxyInfo.type == "direct"; - } - - }, - - abort: function(channel, noNetwork) { - channel.cancel(Components.results.NS_ERROR_ABORT); - }, - - findWindow: function(channel) { - for (var cb of [channel.notificationCallbacks, - channel.loadGroup && channel.loadGroup.notificationCallbacks]) { - if (cb instanceof Ci.nsIInterfaceRequestor) { - if (Ci.nsILoadContext) try { - // For Gecko 1.9.1 - return cb.getInterface(Ci.nsILoadContext).associatedWindow; - } catch(e) {} - - try { - // For Gecko 1.9.0 - return cb.getInterface(Ci.nsIDOMWindow); - } catch(e) {} - } - } - return null; - }, - - readFile: IO.readFile, - writeFile: IO.writeFile, - safeWriteFIle: IO.safeWriteFile, - - _protocols: {}, // caching them we gain a 33% speed boost in URI creation :) - newURI: function(url) { - try { - let scheme = url.substring(0, url.indexOf(':')); - return (this._protocols[scheme] || - (this._protocols[scheme] = - Cc["@mozilla.org/network/protocol;1?name=" + scheme] - .getService(Ci.nsIProtocolHandler))) - .newURI(url, null, null); - } catch(e) { - return IOS.newURI(url, null, null); - } - }, - - unwrapURL: function(url) { - try { - if (!(url instanceof Ci.nsIURI)) - url = this.newURI(url); - - switch (url.scheme) { - case "view-source": - return this.unwrapURL(url.path); - case "feed": - let u = url.spec.substring(5); - if (u.substring(0, 2) == '//') u = "http:" + u; - return this.unwrapURL(u); - case "wyciwyg": - return this.unwrapURL(url.path.replace(/^\/\/\d+\//, "")); - case "jar": - if (url instanceof Ci.nsIJARURI) - return this.unwrapURL(url.JARFile); - } - } - catch (e) {} - - return url; - }, - - - get _channelFlags() { - delete this._channelFlags; - const constRx = /^[A-Z_]+$/; - const ff = {}; - [Ci.nsIHttpChannel, Ci.nsICachingChannel].forEach(function(c) { - for (var p in c) { - if (constRx.test(p)) ff[p] = c[p]; - } - }); - return this._channelFlags = ff; - }, - humanFlags: function(loadFlags) { - var hf = []; - var c = this._channelFlags; - for (var p in c) { - if (loadFlags & c[p]) hf.push(p + "=" + c[p]); - } - return hf.join("\n"); - }, - - queryNotificationCallbacks: function(chan, iid) { - var cb; - try { - cb = chan.notificationCallbacks.getInterface(iid); - if (cb) return cb; - } catch(e) {} - - try { - return chan.loadGroup && chan.loadGroup.notificationCallbacks.getInterface(iid); - } catch(e) {} - - return null; - }, - - - anonymizeURI: function(uri, cookie) { - if (uri instanceof Ci.nsIURL) { - uri.query = this.anonymizeQS(uri.query, cookie); - } else return this.anonymizeURL(uri, cookie); - return uri; - }, - anonymizeURL: function(url, cookie) { - var parts = url.split("?"); - if (parts.length < 2) return url; - parts[1] = this.anonymizeQS(parts[1], cookie); - return parts.join("?"); - }, - - _splitName: function(nv) { - return nv.split("=")[0]; - }, - _qsRx: /[&=]/, - _anonRx: /(?:auth|s\w+(?:id|key)$)/, - anonymizeQS: function(qs, cookie) { - if (!qs) return qs; - if (!this._qsRx.test(qs)) return ''; - - var cookieNames, hasCookies; - if ((hasCookies = !!cookie)) cookieNames = cookie.split(/\s*;\s*/).map(this._splitName); - - let parms = qs.split("&"); - for (var j = parms.length; j-- > 0;) { - let nv = parms[j].split("="); - let name = nv[0]; - if (this._anonRx.test(name) || cookie && cookieNames.indexOf(name) > -1) - parms.splice(j, 1); - } - return parms.join("&"); - }, - - get TLDService() { - delete this.TLDService; - return this.TLDService = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService); - } - -}; - - diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js deleted file mode 100644 index 089ae38..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/NSS.js +++ /dev/null @@ -1,489 +0,0 @@ -// Copyright (c) 2011 Moxie Marlinspike <moxie@thoughtcrime.org> -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 3 of the -// License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA - - -/** - * This class manages the ctypes bridge to the NSS (crypto) libraries - * distributed with Mozilla. - * - **/ - -function NSS() { - -} - -NSS.initialize = function() { - var sharedLib; - - Components.utils.import("resource://gre/modules/Services.jsm"); - var nssFile = Services.dirsvc.get("GreD", Ci.nsILocalFile); - nssFile.append(tcypes.libraryName("nss3")); - sharedLib = tcypes.open(nssFile.path); - - NSS.types = new Object(); - - NSS.types.CERTDistNames = tcypes.StructType("CERTDistNames"); - - NSS.types.SECItem = tcypes.StructType("SECItem", - [{'type' : tcypes.int}, - {'data' : tcypes.unsigned_char.ptr}, - {'len' : tcypes.uint32_t}]); - - NSS.types.PLArenaPool = tcypes.StructType("PLArenaPool"); - - NSS.types.CERTCertificateList = tcypes.StructType("CERTCertificateList", - [{'certs' : NSS.types.SECItem.ptr}, - {'len' : tcypes.int}, - {'arena' : NSS.types.PLArenaPool.ptr}]), - - NSS.types.CERTAVA = tcypes.StructType("CERTAVA", - [{'type' : NSS.types.SECItem}, - {'value' : NSS.types.SECItem}]); - - NSS.types.CERTRDN = tcypes.StructType("CERTRDN", - [{'avas' : NSS.types.CERTAVA.ptr.ptr}]); - - NSS.types.SECAlgorithmID = tcypes.StructType("SECAlgorithmID", - [{'algorithm' : NSS.types.SECItem}, - {'parameters' : NSS.types.SECItem}]); - - NSS.types.CERTSignedData = tcypes.StructType("CERTSignedData", - [{'data' : NSS.types.SECItem}, - {'signatureAlgorithm' : NSS.types.SECAlgorithmID}, - {'signature' : NSS.types.SECItem}]); - - NSS.types.CERTOKDomainName = tcypes.StructType("CERTOKDomainName"); - - NSS.types.NSSCertificateStr = tcypes.StructType("NSSCertificateStr"); - - NSS.types.CERTAuthKeyID = tcypes.StructType("CERTAuthKeyID"); - - NSS.types.CERTName = tcypes.StructType("CERTName", - [{'arena' : tcypes.voidptr_t}, - {'rdns' : NSS.types.CERTRDN.ptr.ptr}]); - - NSS.types.CERTValidity = tcypes.StructType("CERTValidity", - [{'arena' : tcypes.voidptr_t}, - {'notBefore' : NSS.types.SECItem}, - {'notAfter' : NSS.types.SECItem}]); - - NSS.types.CERTCertExtension = tcypes.StructType("CERTCertExtension", - [{'id' : NSS.types.SECItem}, - {'critical' : NSS.types.SECItem}, - {'value' : NSS.types.SECItem}]); - - NSS.types.CERTCertDBHandle = tcypes.StructType("CERTCertDBHandle"); - - NSS.types.PK11SlotInfo = tcypes.StructType("PK11SlotInfo"); - - NSS.types.PK11SlotListElement = tcypes.StructType("PK11SlotListElement", - [{'next' : tcypes.StructType("PK11SlotListElement").ptr}, - {'prev' : tcypes.StructType("PK11SlotListElement").ptr}, - {'slot' : NSS.types.PK11SlotInfo.ptr}, - {'refCount' : tcypes.int}]), - - NSS.types.PK11SlotList = tcypes.StructType("PK11SlotList", - [{'head' : NSS.types.PK11SlotListElement.ptr}, - {'tail' : NSS.types.PK11SlotListElement.ptr}, - {'lock' : tcypes.StructType("PZLock").ptr}]), - - NSS.types.SECKEYPrivateKey = tcypes.StructType("SECKEYPrivateKey", - [{'arena' : NSS.types.PLArenaPool.ptr}, - {'keyType' : tcypes.int}, - {'pkcs11Slot' : NSS.types.PK11SlotInfo.ptr}, - {'pkcs11ID' : tcypes.unsigned_long}, - {'pkcs11IsTemp' : tcypes.int}, - {'wincx' : tcypes.voidptr_t}, - {'staticflags' : tcypes.int32_t}]); - - NSS.types.SECKEYPublicKey = tcypes.StructType("SECKEYPublicKey"); - - NSS.types.CERTSubjectPublicKeyInfo = tcypes.StructType("CERTSubjectPublicKeyInfo", - [{'arena' : NSS.types.PLArenaPool.ptr}, - {'algorithm' : NSS.types.SECAlgorithmID}, - {'subjectPublicKey' : NSS.types.SECItem}]); - - NSS.types.CERTCertificateRequest = tcypes.StructType("CERTCertificateRequest"); - - NSS.types.SEC_ASN1Template = tcypes.StructType("SEC_ASN1Template", - [{'kind' : tcypes.unsigned_long}, - {'offset' : tcypes.unsigned_long}, - {'sub' : tcypes.voidptr_t}, - {'size' : tcypes.unsigned_int}]); - - NSS.types.PK11RSAGenParams = tcypes.StructType("PK11RSAGenParams", - [{'keySizeInBits' : tcypes.int}, - {'pe' : tcypes.unsigned_long}]); - - NSS.types.CERTCertTrust = tcypes.StructType("CERTCertTrust", - [{'sslFlags' : tcypes.uint32_t}, - {'emailFlags' : tcypes.uint32_t}, - {'objectSigningFlags' : tcypes.uint32_t}]); - - NSS.types.CERTSubjectList = tcypes.StructType("CERTSubjectList"); - - NSS.types.CERTGeneralName = tcypes.StructType("CERTGeneralName"); - - NSS.types.CERTCertificate = tcypes.StructType("CERTCertificate", - [{'arena' : NSS.types.PLArenaPool.ptr}, - {'subjectName' : tcypes.char.ptr}, - {'issuerName' : tcypes.char.ptr}, - {'signatureWrap' : NSS.types.CERTSignedData}, - {'derCert' : NSS.types.SECItem}, - {'derIssuer' : NSS.types.SECItem}, - {'derSubject' : NSS.types.SECItem}, - {'derPublicKey' : NSS.types.SECItem}, - {'certKey' : NSS.types.SECItem}, - {'version' : NSS.types.SECItem}, - {'serialNumber' : NSS.types.SECItem}, - {'signature' : NSS.types.SECAlgorithmID}, - {'issuer' : NSS.types.CERTName}, - {'validity' : NSS.types.CERTValidity}, - {'subject' : NSS.types.CERTName}, - {'subjectPublicKeyInfo' : NSS.types.CERTSubjectPublicKeyInfo}, - {'issuerID' : NSS.types.SECItem}, - {'subjectID' : NSS.types.SECItem}, - {'extensions' : NSS.types.CERTCertExtension.ptr.ptr}, - {'emailAddr' : tcypes.char.ptr}, - {'dbhandle' : NSS.types.CERTCertDBHandle.ptr}, - {'subjectKeyID' : NSS.types.SECItem}, - {'keyIDGenerated' : tcypes.int}, - {'keyUsage' : tcypes.unsigned_int}, - {'rawKeyUsage' : tcypes.unsigned_int}, - {'keyUsagePresent' : tcypes.int}, - {'nsCertType' : tcypes.uint32_t}, - {'keepSession' : tcypes.int}, - {'timeOK' : tcypes.int}, - {'domainOK' : NSS.types.CERTOKDomainName.ptr}, - {'isperm' : tcypes.int}, - {'istemp' : tcypes.int}, - {'nickname' : tcypes.char.ptr}, - {'dbnickname' : tcypes.char.ptr}, - {'nssCertificate' : NSS.types.NSSCertificateStr.ptr}, - {'trust' : NSS.types.CERTCertTrust.ptr}, - {'referenceCount' : tcypes.int}, - {'subjectList' : NSS.types.CERTSubjectList.ptr}, - {'authKeyID' : NSS.types.CERTAuthKeyID.ptr}, - {'isRoot' : tcypes.int}, - {'options' : tcypes.voidptr_t}, - {'series' : tcypes.int}, - {'slot' : NSS.types.PK11SlotInfo.ptr}, - {'pkcs11ID' : tcypes.unsigned_long}, - {'ownSlot' : tcypes.int}]); - - NSS.types.CERTBasicConstraints = tcypes.StructType("CERTBasicConstraints", - [{'isCA': tcypes.int}, - {'pathLenConstraint' : tcypes.int}]); - - - NSS.lib = { - SEC_OID_MD5 : 3, - SEC_OID_SHA1 : 4, - SEC_OID_X509_KEY_USAGE : 81, - SEC_OID_NS_CERT_EXT_COMMENT : 75, - CKM_RSA_PKCS_KEY_PAIR_GEN : 0, - buffer : tcypes.ArrayType(tcypes.char), - ubuffer : tcypes.ArrayType(tcypes.unsigned_char), - - // CERT_CertificateTemplate : sharedLib.declare("CERT_CertificateTemplate", - // NSS.types.SEC_ASN1Template), - - NSS_Get_CERT_CertificateTemplate : sharedLib.declare("NSS_Get_CERT_CertificateTemplate", - tcypes.default_abi, - NSS.types.SEC_ASN1Template.ptr), - - PK11_HashBuf : sharedLib.declare("PK11_HashBuf", - tcypes.default_abi, - tcypes.int, - tcypes.int, - tcypes.unsigned_char.ptr, - tcypes.unsigned_char.ptr, - tcypes.int32_t), - - CERT_GetDefaultCertDB : sharedLib.declare("CERT_GetDefaultCertDB", - tcypes.default_abi, - NSS.types.CERTCertDBHandle.ptr), - - CERT_ChangeCertTrust : sharedLib.declare("CERT_ChangeCertTrust", - tcypes.default_abi, - tcypes.int32_t, - NSS.types.CERTCertDBHandle.ptr, - NSS.types.CERTCertificate.ptr, - NSS.types.CERTCertTrust.ptr), - - CERT_FindCertByNickname : sharedLib.declare("CERT_FindCertByNickname", - tcypes.default_abi, - NSS.types.CERTCertificate.ptr, - NSS.types.CERTCertDBHandle.ptr, - tcypes.char.ptr), - - CERT_FindCertByDERCert : sharedLib.declare("CERT_FindCertByDERCert", - tcypes.default_abi, - NSS.types.CERTCertificate.ptr, - NSS.types.CERTCertDBHandle.ptr, - NSS.types.SECItem.ptr), - - CERT_VerifyCertNow : sharedLib.declare("CERT_VerifyCertNow", - tcypes.default_abi, - tcypes.int, - NSS.types.CERTCertDBHandle.ptr, - NSS.types.CERTCertificate.ptr, - tcypes.int, - tcypes.int, - tcypes.voidptr_t), - - CERT_CertChainFromCert : sharedLib.declare("CERT_CertChainFromCert", - tcypes.default_abi, - NSS.types.CERTCertificateList.ptr, - NSS.types.CERTCertificate.ptr, - tcypes.int, - tcypes.int), - - PK11_FindKeyByAnyCert : sharedLib.declare("PK11_FindKeyByAnyCert", - tcypes.default_abi, - NSS.types.SECKEYPrivateKey.ptr, - NSS.types.CERTCertificate.ptr, - tcypes.voidptr_t), - - PK11_GetInternalKeySlot : sharedLib.declare("PK11_GetInternalKeySlot", - tcypes.default_abi, - NSS.types.PK11SlotInfo.ptr), - - PK11_GetAllSlotsForCert : sharedLib.declare("PK11_GetAllSlotsForCert", - tcypes.default_abi, - NSS.types.PK11SlotList.ptr, - NSS.types.CERTCertificate.ptr, - tcypes.voidptr_t), - - PK11_GetTokenName : sharedLib.declare("PK11_GetTokenName", - tcypes.default_abi, - tcypes.char.ptr, - NSS.types.PK11SlotInfo.ptr), - - PK11_GenerateKeyPair : sharedLib.declare("PK11_GenerateKeyPair", - tcypes.default_abi, - NSS.types.SECKEYPrivateKey.ptr, - NSS.types.PK11SlotInfo.ptr, - tcypes.int, - NSS.types.PK11RSAGenParams.ptr, - NSS.types.SECKEYPublicKey.ptr.ptr, - tcypes.int, - tcypes.int, - tcypes.voidptr_t), - - PK11_SetPrivateKeyNickname : sharedLib.declare("PK11_SetPrivateKeyNickname", - tcypes.default_abi, - tcypes.int, - NSS.types.SECKEYPrivateKey.ptr, - tcypes.char.ptr), - - SEC_ASN1EncodeItem : sharedLib.declare("SEC_ASN1EncodeItem", - tcypes.default_abi, - NSS.types.SECItem.ptr, - NSS.types.PLArenaPool.ptr, - NSS.types.SECItem.ptr, - tcypes.voidptr_t, - NSS.types.SEC_ASN1Template.ptr), - - SEC_DerSignData : sharedLib.declare("SEC_DerSignData", - tcypes.default_abi, - tcypes.int, - NSS.types.PLArenaPool.ptr, - NSS.types.SECItem.ptr, - tcypes.unsigned_char.ptr, - tcypes.int, - NSS.types.SECKEYPrivateKey.ptr, - tcypes.int), - - SEC_GetSignatureAlgorithmOidTag : sharedLib.declare("SEC_GetSignatureAlgorithmOidTag", - tcypes.default_abi, - tcypes.int, - tcypes.int, - tcypes.int), - - SECOID_SetAlgorithmID : sharedLib.declare("SECOID_SetAlgorithmID", - tcypes.default_abi, - tcypes.int, - NSS.types.PLArenaPool.ptr, - NSS.types.SECAlgorithmID.ptr, - tcypes.int, - NSS.types.SECItem.ptr), - - - CERT_Hexify : sharedLib.declare("CERT_Hexify", - tcypes.default_abi, - tcypes.char.ptr, - NSS.types.SECItem.ptr, - tcypes.int), - - CERT_AsciiToName : sharedLib.declare("CERT_AsciiToName", - tcypes.default_abi, - NSS.types.CERTName.ptr, - tcypes.char.ptr), - - SECKEY_CreateSubjectPublicKeyInfo : sharedLib.declare("SECKEY_CreateSubjectPublicKeyInfo", - tcypes.default_abi, - NSS.types.CERTSubjectPublicKeyInfo.ptr, - NSS.types.SECKEYPublicKey.ptr), - - CERT_CreateCertificateRequest : sharedLib.declare("CERT_CreateCertificateRequest", - tcypes.default_abi, - NSS.types.CERTCertificateRequest.ptr, - NSS.types.CERTName.ptr, - NSS.types.CERTSubjectPublicKeyInfo.ptr, - NSS.types.SECItem.ptr.ptr), - - CERT_CreateCertificate : sharedLib.declare("CERT_CreateCertificate", - tcypes.default_abi, - NSS.types.CERTCertificate.ptr, - tcypes.uint32_t, - NSS.types.CERTName.ptr, - NSS.types.CERTValidity.ptr, - NSS.types.CERTCertificateRequest.ptr), - - CERT_DestroyCertificate : sharedLib.declare("CERT_DestroyCertificate", - tcypes.default_abi, - tcypes.int, - NSS.types.CERTCertificate.ptr), - - CERT_DestroyCertificateList : sharedLib.declare("CERT_DestroyCertificateList", - tcypes.default_abi, - tcypes.int, - NSS.types.CERTCertificateList.ptr), - - CERT_NewTempCertificate : sharedLib.declare("CERT_NewTempCertificate", - tcypes.default_abi, - NSS.types.CERTCertificate.ptr, - NSS.types.CERTCertDBHandle.ptr, - NSS.types.SECItem.ptr, - tcypes.char.ptr, - tcypes.int, - tcypes.int), - - CERT_CreateValidity : sharedLib.declare("CERT_CreateValidity", - tcypes.default_abi, - NSS.types.CERTValidity.ptr, - tcypes.int64_t, - tcypes.int64_t), - - CERT_CertListFromCert : sharedLib.declare("CERT_CertListFromCert", - tcypes.default_abi, - NSS.types.CERTCertificateList.ptr, - NSS.types.CERTCertificate.ptr), - - CERT_StartCertExtensions : sharedLib.declare("CERT_StartCertExtensions", - tcypes.default_abi, - tcypes.voidptr_t, - NSS.types.CERTCertificate.ptr), - - CERT_AddExtension : sharedLib.declare("CERT_AddExtension", - tcypes.default_abi, - tcypes.int, - tcypes.voidptr_t, - tcypes.int, - NSS.types.SECItem.ptr, - tcypes.int, - tcypes.int), - - - CERT_EncodeBasicConstraintValue : sharedLib.declare("CERT_EncodeBasicConstraintValue", - tcypes.default_abi, - tcypes.int, - NSS.types.PLArenaPool.ptr, - NSS.types.CERTBasicConstraints.ptr, - NSS.types.SECItem.ptr), - - CERT_EncodeAndAddBitStrExtension : sharedLib.declare("CERT_EncodeAndAddBitStrExtension", - tcypes.default_abi, - tcypes.int, - tcypes.voidptr_t, - tcypes.int, - NSS.types.SECItem.ptr, - tcypes.int), - - CERT_EncodeAltNameExtension : sharedLib.declare("CERT_EncodeAltNameExtension", - tcypes.default_abi, - tcypes.int, - NSS.types.PLArenaPool.ptr, - NSS.types.CERTGeneralName.ptr, - NSS.types.SECItem.ptr), - - CERT_FinishExtensions : sharedLib.declare("CERT_FinishExtensions", - tcypes.default_abi, - tcypes.int, - tcypes.voidptr_t), - - CERT_ImportCerts : sharedLib.declare("CERT_ImportCerts", - tcypes.default_abi, - tcypes.int, - NSS.types.CERTCertDBHandle.ptr, - tcypes.int, - tcypes.int, - NSS.types.SECItem.ptr.ptr, - NSS.types.CERTCertificate.ptr.ptr.ptr, - tcypes.int, - tcypes.int, - tcypes.char.ptr), - - PORT_NewArena : sharedLib.declare("PORT_NewArena", - tcypes.default_abi, - NSS.types.PLArenaPool.ptr, - tcypes.uint32_t), - - PORT_ArenaZAlloc : sharedLib.declare("PORT_ArenaZAlloc", - tcypes.default_abi, - tcypes.voidptr_t, - NSS.types.PLArenaPool.ptr, - tcypes.int), - - PORT_FreeArena : sharedLib.declare("PORT_FreeArena", - tcypes.default_abi, - tcypes.void_t, - NSS.types.PLArenaPool.ptr, - tcypes.int), - - CERT_GetCommonName : sharedLib.declare("CERT_GetCommonName", - tcypes.default_abi, - tcypes.char.ptr, - NSS.types.CERTName.ptr), - - CERT_GetOrgUnitName : sharedLib.declare("CERT_GetOrgUnitName", - tcypes.default_abi, - tcypes.char.ptr, - NSS.types.CERTName.ptr), - - CERT_GetCertificateNames : sharedLib.declare("CERT_GetCertificateNames", - tcypes.default_abi, - NSS.types.CERTGeneralName.ptr, - NSS.types.CERTCertificate.ptr, - NSS.types.PLArenaPool.ptr), - - CERT_DecodeDERCertificate : sharedLib.declare("__CERT_DecodeDERCertificate", - tcypes.default_abi, - NSS.types.CERTCertificate.ptr, - NSS.types.SECItem.ptr, - tcypes.int, - tcypes.char.ptr), - - CERT_FindCertExtension : sharedLib.declare("CERT_FindCertExtension", - tcypes.default_abi, - tcypes.int, - NSS.types.CERTCertificate.ptr, - tcypes.int, - NSS.types.SECItem.ptr), - }; - -}; diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js deleted file mode 100644 index 15372bc..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Root-CAs.js +++ /dev/null @@ -1,348 +0,0 @@ -// These are concatenated md5 and sha1 fingerprints for the Firefox and -// Microsoft root CAs as of Aug 2010 - -var root_ca_hashes = { - '00531D1D7201D423C820D00B6088C5D143DDB1FFF3B49B73831407F6BC8B975023D07C50' : true, - '015A99C3D64FA94B3C3BB1A3AB274CBFFC219A76112F76C1C508833C9A2FA2BA84AC087A' : true, - '019408DE857F8D806CE602CA89522848750251B2C632536F9D917279543C137CD721C6E0' : true, - '0208EE8CAAB8387A6824DCB4E26A52337E206939CC5FA883635F64C750EBF5FDA9AEE653' : true, - '0226C3015E08303743A9D07DCF37E6BF323C118E1BF7B8B65254E2E2100DD6029037F096' : true, - '034287D7C1167D18AFA4703CB8312C3E4EF2E6670AC9B5091FE06BE0E5483EAAD6BA32D9' : true, - '03DC08EEC4703FFA20E5E179E81AE7C59ED18028FB1E8A9701480A7890A59ACD73DFF871' : true, - '044BFDC96CDA2A32857C598461468A64BEB5A995746B9EDF738B56E6DF437A77BE106B81' : true, - '0468E9247E41CED76C441630703DDDB9AB16DD144ECDC0FC4BAAB62ECF0408896FDE52B7' : true, - '068690F2195471FDDD3DE6EEA161CAFF7030AABF8432A800666CCCC42A887E42B7553E2B' : true, - '069F6979166690021B8C8CA2C3076F3A627F8D7827656399D27D7F9044C9FEB3F33EFA9A' : true, - '06F0171EB1E961ED7A363CA594A1374AFAAA27B8CAF5FDF5CDA98AC3378572E04CE8F2E0' : true, - '06F9EBECCC569D88BA90F5BAB01AE00216D424FE9610E17519AF232BB68774E24144BE6E' : true, - '076192047EA6B9CD5E6B007AE3BF1D0434D499426F9FC2BB27B075BAB682AAE5EFFCBA74' : true, - '087C581F522B44B43B79CD01F8C5C3C995E6ADF8D77146024DD56A21B2E73FCDF23B35FF' : true, - '0B092C1CD721866F94376FE6A7F3224D0409565B77DA582E6495AC0060A72354E64B0192' : true, - '0C412F135BA054F596662D7ECD0E03F4DA79C1711150C23439AA2B0B0C62FD55B2F9F580' : true, - '0C5ADD5AAE29F7A77679FA4151FEF035B865130BEDCA38D27F69929420770BED86EFBC10' : true, - '0C7FDD6AF42AB9C89BBD207EA9DB5C3760D68974B5C2659E8A0FC1887C88D246691B182C' : true, - '0CF89E17FCD403BDE68D9B3C0587FE8433A335C23CE8034B04E13DE5C48E791AEB8C3204' : true, - '0E40A76CDE035D8FD10FE4D18DF96CA9A9E9780814375888F20519B06D2B0D2B6016907D' : true, - '0EFA4BF7D760CD65F7A7068857986239D29F6C98BEFC6D986521543EE8BE56CEBC288CF3' : true, - '0FA01300C3558AB7D37E2D04739EDE3C8B1A1106B8E26B232980FD652E6181376441FD11' : true, - '100EADF35C841D8E035F2DC93937F552742CDF1594049CBF17A2046CC639BB3888E02E33' : true, - '10FC635DF6263E0DF325BE5F79CD6767742C3192E607E424EB4549542BE1BBC53E6174E2' : true, - '119279403CB18340E5AB664A679280DFA9628F4B98A91B4835BAD2C1463286BB66646A8C' : true, - '14F108AD9DFA64E289E71CCFA8AD7D5E3921C115C15D0ECA5CCB5BC4F07D21D8050B566A' : true, - '155EF5117AA2C1150E927E66FE3B84C3B38FECEC0B148AA686C3D00F01ECC8848E8085EB' : true, - '15ACA5C2922D79BCE87FCB67ED02CF36E7B4F69D61EC9069DB7E90A7401A3CF47D4FE8EE' : true, - '15B298A354704048703A375582C45AFA0048F8D37B153F6EA2798C323EF4F318A5624A9E' : true, - '15EE9F5AA08528DF6BDD34A3A056D8307F8A77836BDC6D068F8B0737FCC5725413068CA4' : true, - '160A1613C17FF01D887EE3D9E71261CCF88015D3F98479E1DA553D24FD42BA3F43886AEF' : true, - '173574AF7B611CEBF4F93CE2EE40F9A2925A8F8D2C6D04E0665F596AFF22D863E8256F3F' : true, - '1802B00127036A191B323B83DE9AA985D6BF7994F42BE5FA29DA0BD7587B591F47A44F22' : true, - '1898C0D6E93AFCF9B0F50CF74B014417FAB7EE36972662FB2DB02AF6BF03FDE87C4B2F9B' : true, - '18AE695D15CAB917673267D597B260C04BA7B9DDD68788E12FF852E1A024204BF286A8F6' : true, - '1AD00CB9A6E68A3B6E95860C5B8CD8195A4D0E8B5FDCFDF64E7299A36C060DB222CA78E4' : true, - '1B2E00CA2606903DADFE6F1568D36BB367650DF17E8E7E5B8240A4F4564BCFE23D69C6F0' : true, - '1BD75F76734CC0DC98CA442BCC0F78DD31E2C52CE1089BEFFDDADB26DD7C782EBC4037BD' : true, - '1C4BE2C62DB9AC3114F4400769CB1F4011C5B5F75552B011669C2E9717DE6D9BFF5FA810' : true, - '1D3554048578B03F42424DBF20730A3F02FAF3E291435468607857694DF5E45B68851868' : true, - '1D6496AF2D821A300BA0620D76BC53AA7FBB6ACD7E0AB438DAAF6FD50210D007C6C0829C' : true, - '1E240EA0F876D785A3F5F8A1493D2EBAFD1ED1E2021B0B9F73E8EB75CE23436BBCC746EB' : true, - '1E42950233926BB95FC07FDAD6B24BFCCCAB0EA04C2301D6697BDD379FCD12EB24E3949D' : true, - '1E74C3863C0C35C53EC27FEF3CAA3CD9209900B63D955728140CD13622D8C687A4EB0085' : true, - '200B4A7A88A7A942868A5F74567B880593E6AB220303B52328DCDA569EBAE4D1D1CCFB65' : true, - '206BD68B4A8F48ABE488090DE5651A500CFD83DBAE44B9A0C8F676F3B570650B94B69DBF' : true, - '2124A681C1D8F219AF4998E39DFE0BF46A174570A916FBE84453EED3D070A1D8DA442829' : true, - '21BC82AB49C4133B4BB22B5C6B909C198BAF4C9B1DF02A92F7DA128EB91BACF498604B6F' : true, - '21D84C822B990933A2EB14248D8E5FE84054DA6F1C3F4074ACED0FECCDDB79D153FB901D' : true, - '21EFB85040393F756F27FEE3EA5870EBA59C9B10EC7357515ABB660C4D94F73B9E6E9272' : true, - '222DA601EA7C0AF7F06C56433F7776D3FEB8C432DCF9769ACEAE3DD8908FFD288665647D' : true, - '224D8F8AFCF735C2BB5734907B8B22163E2BF7F2031B96F38CE6C4D8A85D3E2D58476A0F' : true, - '246DABD2F2EA4A66AE5BBCAE50AD6E56F9DD19266B2043F1FE4B3DCB0190AFF11F31A69D' : true, - '2477D9A891D13BFA882DC2FFF8CD3393D8C5388AB7301B1B6ED47AE645253A6F9F1A2761' : true, - '252AC6C5896839F9557202165EA39ED23C71D70E35A5DAA8B2E3812DC3677417F5990DF3' : true, - '255BA669B87BF8780DC18FA6EAE47063FA0882595F9CA6A11ECCBEAF65C764C0CCC311D0' : true, - '257ABA832EB6A20BDAFEF5020F08D7AD81968B3AEF1CDC70F5FA3269C292A3635BD123D3' : true, - '259DCF5EB3259D95B93F00865F47943D43F9B110D5BAFD48225231B0D0082B372FEF9A54' : true, - '266D2C1998B6706838505419EC9034600B77BEBBCB7AA24705DECC0FBD6A02FC7ABD9B52' : true, - '27DE36FE72B70003009DF4F01E6C0424DE3F40BD5093D39B6C60F6DABC076201008976C9' : true, - '27EC3947CDDA5AAFE29A016521A94CBB4D2378EC919539B5007F758F033B211EC54D8BCF' : true, - '2A5D003739469475397B11A6F29341E13F85F2BB4A62B0B58BE1614ABB0D4631B4BEF8BA' : true, - '2A954ECA79B2874573D92D90BAF99FB6A43489159A520F0D93D032CCAF37E7FE20A8B419' : true, - '2B508718392D3BFFC3917F2D7DC08A97B19DD096DCD4E3E0FD676885505A672C438D4E9C' : true, - '2B7020568682A018C807531228702172F17F6FB631DC99E3A3C87FFE1CF1811088D96033' : true, - '2C20269DCB1A4A0085B5B75AAEC201378C96BAEBDD2B070748EE303266A0F3986E7CAE58' : true, - '2C6F17A39562012065D2076EFCB83F6DB1EAC3E5B82476E9D50B1EC67D2CC11E12E0B491' : true, - '2C8C175EB154AB9317B5365ADBD1C6F2A073E5C5BD43610D864C21130A855857CC9CEA46' : true, - '2C8F9F661D1890B147269D8E86828CA96252DC40F71143A22FDE9EF7348E064251B18118' : true, - '2CC2B0D5D622C52E901EF4633F0FBB324A058FDFD761DB21B0C2EE48579BE27F42A4DA1C' : true, - '2DBBE525D3D165823AB70EFAE6EBE2E1B3EAC44776C9C81CEAF29D95B6CCA0081B67EC9D' : true, - '2E03FDC5F5D72B9464C1BE8931F1169B96995C7711E8E52DF9E34BECEC67D3CBF1B6C4D2' : true, - '30C908DDD73E63A4092814C74EB97E2CCFE4313DBA05B8A7C30063995A9EB7C247AD8FD5' : true, - '30C9E71E6BE614EB65B216692031674D3BC0380B33C3F6A60C86152293D9DFF54B81C004' : true, - '31853C62949763B9AAFD894EAF6FE0CF1F4914F7D874951DDDAE02C0BEFD3A2D82755185' : true, - '324A4BBBC863699BBE749AC6DD1D4624AD7E1C28B064EF8F6003402014C3D0E3370EB58A' : true, - '3327D16CFC9185FC8C7E98FA854EF305E70715F6F728365B5190E271DEE4C65EBEEACAF3' : true, - '33B784F55F27D76827DE14DE122AED6F0747220199CE74B97CB03D79B264A2C855E933FF' : true, - '343339FC6D033A8FA25385443270DEC45E5A168867BFFF00987D0B1DC2AB466C4264F956' : true, - '34FCB8D036DB9E14B3C2F2DB8FE494C7379A197B418545350CA60369F33C2EAF474F2079' : true, - '354895364A545A72968EE064CCEF2C8CC90D1BEA883DA7D117BE3B79F4210E1A5894A72D' : true, - '370971C4AFEB7501AE636C3016BFD1E5A399F76F0CBF4C9DA55E4AC24E8960984B2905B6' : true, - '3741491B18569A26F5ADC266FB40A54C4313BB96F1D5869BC14E6A92F6CFF63469878237' : true, - '3785445332451F20F0F395E125C4434EF48B11BFDEABBE94542071E641DE6BBE882B40B9' : true, - '37A56ED4B1258497B7FD56157AF9A200B435D4E1119D1C6690A749EBB394BD637BA782B7' : true, - '3916AAB96A41E11469DF9E6C3B72DCB6879F4BEE05DF98583BE360D633E70D3FFE9871AF' : true, - '3AB2DE229A209349F9EDC8D28AE7680D36863563FD5128C7BEA6F005CFE9B43668086CCE' : true, - '3AE550B039BEC7463633A1FE823E8D943CBB5DE0FCD6397C0588E56697BD462ABDF95C76' : true, - '3B0AE4BB416A84B39D2C575E6542BE478E1032E9245944F84791983EC9E829CB1059B4D3' : true, - '3C4C25CC0A19CAEE6AEB55160086725F23E833233E7D0CC92B7C4279AC19C2F474D604CA' : true, - '3D4129CB1EAA1174CD5DB062AFB0435BDDE1D2A901802E1D875E84B3807E4BB1FD994134' : true, - '3E455215095192E1B75D379FB187298AB1BC968BD4F49D622AA89A81F2150152A41D829C' : true, - '3E80175BADD77C104BF941B0CF1642B000EA522C8A9C06AA3ECCE0B4FA6CDC21D92E8099' : true, - '3F459639E25087F7BBFE980C3C2098E62AC8D58B57CEBF2F49AFF2FC768F511462907A41' : true, - '400125068D21436A0E43009CE743F3D5F9CD0E2CDA7624C18FBDF0F0ABB645B8F7FED57A' : true, - '410352DC0FF7501B16F0028EBA6F45C5DAC9024F54D8F6DF94935FB1732638CA6AD77C13' : true, - '41B807F7A8D109EEB49A8E704DFC1B787A74410FB0CD5C972A364B71BF031D88A6510E9E' : true, - '4265CABE019A9A4CA98C4149CDC0D57F293621028B20ED02F566C532D1D6ED909F45002F' : true, - '42769768CFA6B43824AAA11BF267DECA4178AB4CBFCE7B4102ACDAC4933E6FF50DCF715C' : true, - '4281A0E21CE35510DE558942659622E6E0B4322EB2F6A568B654538448184A5036874384' : true, - '429BD669C6D445AD2E81511D355A89624F555CE20DCD3364E0DC7C41EFDD40F50356C122' : true, - '45E1A572C5A93664409EF5E45884678C6B2F34AD8958BE62FDB06B5CCEBB9DD94F4E39F3' : true, - '45F750114EC5ADBD53688663EC7B6AE1C09AB0C8AD7114714ED5E21A5A276ADCD5E7EFCB' : true, - '468C210EAB92214659DBA6DB0061DE265A5A4DAF7861267C4B1F1E67586BAE6ED4FEB93F' : true, - '48D11E627801C26E4369A42CEE130AB564902AD7277AF3E32CD8CC1DC79DE1FD7F8069EA' : true, - '4963AE27F4D5953DD8DB2486B89C0753D3C063F219ED073E34AD5D750B327629FFD59AF2' : true, - '497904B0EB8719AC47B0BC11519B74D0D1EB23A46D17D68FD92564C2F1F1601764D8E349' : true, - '49EFA6A1F0DE8EA76AEE5B7D1E5FC4463E42A18706BD0C9CCF594750D2E4D6AB0048FDC4' : true, - '4B1C568CA0E8C79E1EF5EE32939965FE4C95A9902ABE0777CED18D6ACCC3372D2748381E' : true, - '4B6771BE33B90DB64B3A400187F08B1F7AC5FFF8DCBC5583176877073BF751735E9BD358' : true, - '4B798DD41D0392AA51EE04E5906F474954F9C163759F19045121A319F64C2D0555B7E073' : true, - '4BE2C99196650CF40E5A9392A00AFEB28CF427FD790C3AD166068DE81E57EFBB932272D4' : true, - '4C5641E50DBB2BE8CAA3ED1808AD43390483ED3399AC3608058722EDBC5E4600E3BEF9D7' : true, - '4D56677ECCE6457259B74F511172E169C0DB578157E9EE82B5917DF0DD6D82EE9039C4E2' : true, - '4FEBF1F070C280635D589FDA123CA9C4E392512F0ACFF505DFF6DE067F7537E165EA574B' : true, - '50193E2FE8B6F4055449F3AEC98B3E1947AFB915CDA26D82467B97FA42914468726138DD' : true, - '5186E81FBCB1C371B51810DB5FDCF62078E9DD0650624DB9CB36B50767F209B843BE15B3' : true, - '556EBEF54C1D7C0360C43418BC9649C1245C97DF7514E7CF2DF8BE72AE957B9E04741E85' : true, - '565FAA80611217F66721E62B6D61568E8025EFF46E70C8D472246584FE403B8A8D6ADBF5' : true, - '58EB470764D62CBAE29B96552B9700B56A6F2A8B6E2615088DF59CD24C402418AE42A3F1' : true, - '59736628512B98B410FF7D06FA22D6C8A0F8DB3F0BF417693B282EB74A6AD86DF9D448A3' : true, - '5A11B922850289E1C3F22CE14EC101844B421F7515F6AE8A6ECEF97F6982A400A4D9224E' : true, - '5B6F532CBB8188FA6C042C325DA56B967CA04FD8064C1CAA32A37AA94375038E8DF8DDC0' : true, - '5B9EFD3B6035EA688E52FE1319144AA36B81446A5CDDF474A0F800FFBE69FD0DB6287516' : true, - '5C48DCF74272EC56946D1CCC713580756631BF9EF74F9EB6C9D5A60CBA6ABED1F7BDEF7B' : true, - '5E397BDDF8BAEC82E9AC62BA0C54002BCA3AFBCF1240364B44B216208880483919937CF7' : true, - '5E809E845A0E650B1702F355182A3ED7786A74AC76AB147F9C6A3050BA9EA87EFE9ACE3C' : true, - '5F944A7322B8F7D131EC5939F78EFE6E9FC796E8F8524F863AE1496D381242105F1B78F5' : true, - '60847C5ACEDB0CD4CBA7E9FE02C6A9C0101DFA3FD50BCBBB9BB5600C1955A41AF4733A04' : true, - '649CEF2E44FCC68F5207D051738FCB3DDA40188B9189A3EDEEAEDA97FE2F9DF5B7D18A41' : true, - '65295911BB8F5166890D47824002C5AFC4674DDC6CE2967FF9C92E072EF8E8A7FBD6A131' : true, - '6558AB15AD576C1EA8A7B569ACBFFFEBE5DF743CB601C49B9843DCAB8CE86A81109FE48E' : true, - '67AC0D773011DED143AE7B737190BCA9ED8DC8386C4886AEEE079158AAC3BFE658E394B4' : true, - '67CB9DC013248A829BB2171ED11BECD4D23209AD23D314232174E40D7F9D62139786633A' : true, - '689B17C654E0E0E099551642F75A86D8027268293E5F5D17AAA4B3C3E6361E1F92575EAA' : true, - '6960ECBE8C94D76E6F2EC4782F55F08397226AAE4A7A64A59BD16787F27F841C0A001FD0' : true, - '6C397DA40E5559B23FD641B11250DE435F3B8CF2F810B37D78B4CEEC1919C37334B9C774' : true, - '6CC9A76E47F10CE3533B784C4DC26AC5B72FFF92D2CE43DE0A8D4C548C503726A81E2B93' : true, - '6D38C49B22244CA3A8B3A09345E157FA89C32E6B524E4D65388B9ECEDC637134ED4193A3' : true, - '70B57C4881953E80DC289BBAEF1EE4854072BA31FEC351438480F62E6CB95508461EAB2F' : true, - '711F0E21E7AAEA323A6623D3AB50D66996974CD6B663A7184526B1D648AD815CF51E801A' : true, - '71AA6AAF1FA5C0D50E90D40BF6AADFCC55C86F7414AC8BDD6814F4D86AF15F3710E104D0' : true, - '71E265FBCD7B0B845BE3BCD76320C598CFF810FB2C4FFC0156BFE1E1FABCB418C68D31C5' : true, - '72E44A87E369408077EABCE3F4FFF0E15F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6' : true, - '733A747AECBBA396A6C2E4E2C89BC0C3AEC5FB3FC8E1BFC4E54F03075A9AE800B7F7B6FA' : true, - '739DD35FC63C95FEC6ED89E58208DD897FB9E2C995C97A939F9E81A07AEA9B4D70463496' : true, - '74014A91B108C458CE47CDF0DD11530885A408C09C193E5D51587DCDD61330FD8CDE37BF' : true, - '747B820343F0009E6BB3EC47BF85A5934463C531D7CCC1006794612BB656D3BF8257846F' : true, - '74A82C81432B35609B78056B58F36582CFF360F524CB20F1FEAD89006F7F586A285B2D5B' : true, - '770D19B121FD00429C3E0CA5DD0B028E25019019CFFBD9991CB76825748D945F30939542' : true, - '774AF42C9DB027B747B515E4C762F0FCDF646DCB7B0FD3A96AEE88C64E2D676711FF9D5F' : true, - '782A02DFDB2E14D5A75F0ADFB68E9C5D4F65566336DB6598581D584A596C87934D5F2AB4' : true, - '78A5FB104BE4632ED26BFBF2B6C24B8EEC0C3716EA9EDFADD35DFBD55608E60A05D3CBF3' : true, - '79E4A9840D7D3A96D7C04FE2434C892EA8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436' : true, - '7A79544D07923B5BFF41F00EC739A298C060ED44CBD881BD0EF86C0BA287DDCF8167478C' : true, - '7BB508999A8C18BF85277D0EAEDAB2AB24BA6D6C8A5B5837A48DB5FAE919EA675C94D217' : true, - '7C62FF749D31535E684AD578AA1EBF239F744E9F2B4DBAEC0F312C50B6563B8E2D93C311' : true, - '7CA50FF85B9A7D6D30AE545AE342A28A59AF82799186C7B47507CBCF035746EB04DDB716' : true, - '7D86908F5BF1F240C0F73D62B5A4A93B72997913EC9B0DAE65D1B6D7B24A76A3AEC2EE16' : true, - '7E234E5BA7A5B425E90007741162AED67F8AB0CFD051876A66F3360F47C88D8CD335FC74' : true, - '7F667A71D3EB6978209A51149D83DA20BE36A4562FB2EE05DBB3D32323ADF445084ED656' : true, - '803ABC22C1E6FB8D9B3B274A321B9A0147BEABC922EAE80E78783462A79F45C254FDE68B' : true, - '8135B9FBFB12CA186936EBAE6978A1F1DCBB9EB7194BC47205C111752986835B53CAE4F8' : true, - '81D6ED354F1F26D031D040DD8AE5810DE0925E18C7765E22DABD9427529DA6AF4E066428' : true, - '8212F789E10B9160A4B6229F9468119268ED18B309CD5291C0D3357C1D1141BF883866B1' : true, - '824AD493004D66B6A32CA77B3536CF0B687EC17E0602E3CD3F7DFBD7E28D57A0199A3F44' : true, - '8292BA5BEFCD8A6FA63D55F984F6D6B7F9B5B632455F9CBEEC575F80DCE96E2CC7B278B7' : true, - '84901D95304956FC4181F045D776C46B439E525F5A6A47C32CEBC45C63ED39317CE5F4DF' : true, - '852FF4764CD5426CCB5E7DF717E835BD4EFCED9C6BDD0C985CA3C7D253063C5BE6FC620C' : true, - '85CA765A1BD16822DCA22312CAC680345BCDCDCC66F6DCE4441FE37D5CC3134C46F47038' : true, - '86386D5E49636C855CDB6DDC94B7D0F7ACED5F6553FD25CE015F1F7A483B6A749F6178C6' : true, - '86420509BCA79DEC1DF32E0EBAD81DD01D8259CA2127C3CBC16CD932F62C65298CA88712' : true, - '86ACDE2BC56DC3D98C2888D38D16131ECE6A64A309E42FBBD9851C453E6409EAE87D60F1' : true, - '86EF8E319D9F8569A2A41A127168BA1B90DECE77F8C825340E62EBD635E1BE20CF7327DD' : true, - '8714AB83C4041BF193C750E2D721EBEF30779E9315022E94856A3FF8BCF815B082F9AEFD' : true, - '879055F2CE31153C33D927C876E37DE13070F8833E4AA6803E09A646AE3F7D8AE1FD1654' : true, - '87CE0B7B2A0E4900E158719B37A893720563B8630D62D75ABBC8AB1E4BDFB5A899B24D43' : true, - '882C8C52B8A23CF3F7BB03EAAEAC420B74207441729CDD92EC7931D823108DC28192E2BB' : true, - '8949548CC8689A8329ECDC067321AB97A60F34C8626C81F68BF77DA9F667588A903F7D36' : true, - '8956AA4D441E59D805A1886DEAC828B26372C49DA9FFF051B8B5C7D4E5AAE30384024B9C' : true, - '8BCA525F7553D02C6F630D8F882E1CD78EB03FC3CF7BB292866268B751223DB5103405CB' : true, - '8CCADC0B22CEF5BE72AC411A11A8D81291C6D6EE3E8AC86384E548C299295C756C817B81' : true, - '8CD79FEBC7B8144C5478A7903BA935671F55E8839BAC30728BE7108EDE7B0BB0D3298224' : true, - '8D26FF2F316D5929DDE636A7E2CE6425720FC15DDC27D456D098FABF3CDD78D31EF5A8DA' : true, - '8D639B56C114E4EE9A128586119082A3D2441AA8C203AECAA96E501F124D52B68FE4C375' : true, - '8D7251DBA03ACF2077DFF265065EDFEFC8C25F169EF85074D5BEE8CDA2D43CAEE75FD257' : true, - '8EADB501AA4D81E48C1DD1E1140095193679CA35668772304D30A5FB873B0FA77BB70D54' : true, - '8F5D770627C4983C5B9378E7D77D9BCC7E784A101C8265CC2DE1F16D47B440CAD90A1945' : true, - '8F91E7EEE3FCDA86CAFCDC70EDB7B70C8250BED5A214433A66377CBC10EF83F669DA3A67' : true, - '911B3F6ECD9EABEE07FE1F71D2B36127E19FE30E8B84609E809B170D72A8C5BA6E1409BD' : true, - '91DE0625ABDAFD32170CBB25172A84672796BAE63F1801E277261BA0D77770028F20EEE4' : true, - '91F4035520A1F8632C62DEACFB611C8E21FCBD8E7F6CAF051BD1B343ECA8E76147F20F8A' : true, - '9265588BA21A317273685CB4A57A0748E621F3354379059A4B68309D8A2F74221587EC79' : true, - '932A3EF6FD23690D7120D42B47992BA6CBA1C5F8B0E35EB8B94512D3F934A2E90610D336' : true, - '937F901CED846717A4655F9BCB3002978781C25A96BDC2FB4C65064FF9390B26048A0E01' : true, - '93C28E117BD4F30319BD2875134A454AAB48F333DB04ABB9C072DA5B0CC1D057F0369B46' : true, - '93EB36130BC154F13E7505E5E01CD4375F4E1FCF31B7913B850B54F6E5FF501A2B6FC6CF' : true, - '93F1AD340B2BE7A85460E2738CA49431705D2B4565C7047A540694A79AF7ABB842BDC161' : true, - '9414777E3E5EFD8F30BD41B0CFE7D03075E0ABB6138512271C04F85FDDDE38E4B7242EFE' : true, - '96897D61D1552B27E25A39B42A6C446F8EFDCABC93E61E925D4D1DED181A4320A467A139' : true, - '9760E8575FD35047E5430C94368AB06290AEA26985FF14804C434952ECE9608477AF556F' : true, - '978FC66B3B3E40857724750B76BB55F8B5D303BF8682E152919D83F184ED05F1DCE5370C' : true, - '9A771918ED96CFDF1BB70EF58DB9882ECF74BFFF9B86815B08335440363E87B6B6F0BF73' : true, - '9AAEF722F533FB4EEC0A249DC63D7D255E997CA5945AAB75FFD14804A974BF2AE1DFE7E1' : true, - '9B340D1A315B97462698BCA6136A71969E6CEB179185A29EC6060CA53E1974AF94AF59D4' : true, - '9D666ACCFFD5F543B4BF8C16D12BA8998939576E178DF705780FCC5EC84F84F6253A4893' : true, - '9DFBF9ACED893322F428488325235BE0A69A91FD057F136A42630BB1760D2D51120C1650' : true, - '9E80FF78010C2EC136BDFE96906E08F34ABDEEEC950D359C89AEC752A12C5B29F6D6AA0C' : true, - '9F6C1F0F07AC1921F915BBD5C72CD82AF5C27CF5FFF3029ACF1A1A4BEC7EE1964C77D784' : true, - '9FDDDBABFF8EFF45215FF06C9D8FFE2B9656CD7B57969895D0E141466806FBB8C6110687' : true, - 'A10B44B3CA10D8006E9D0FD80F920AD1B80186D1EB9C86A54104CF3054F34C52B7E558C6' : true, - 'A208E4B33EEFDE084B60D0BF7952498D8CC4307BC60755E7B22DD9F7FEA245936C7CF288' : true, - 'A2339B4C747873D46CE7C1F38DCB5CE985371CA6E550143DCE2803471BDE3A09E8F8770F' : true, - 'A26F53B7EE40DB4A68E7FA18D9104B7269BD8CF49CD300FB592E1793CA556AF3ECAA35FB' : true, - 'A33D88FE161BDDF95C9F1A7FD8C89008A3E31E20B2E46A328520472D0CDE9523E7260C6D' : true, - 'A37D2C27E4A7F3AA5F75D4C49264026AB6AF5BE5F878A00114C3D7FEF8C775C34CCD17B6' : true, - 'A3EC750F2E88DFFA48014E0B5C486FFB37F76DE6077C90C5B13E931AB74110B4F2E49A27' : true, - 'A66B6090239B3F2DBB986FD6A7190D46E0AB059420725493056062023670F7CD2EFC6666' : true, - 'A771FD26FC3CE540F19906EBC1936DE9E619D25B380B7B13FDA33E8A58CD82D8A88E0515' : true, - 'A7F2E41606411150306B9CE3B49CB0C9E12DFB4B41D7D9C32B30514BAC1D81D8385E2D46' : true, - 'A80D6F3978B9436D77426D985ACC23CAD6DAA8208D09D2154D24B52FCB346EB258B28A58' : true, - 'A8EDDEEB938866D82FC3BD1DBE45BE4D7639C71847E151B5C7EA01C758FBF12ABA298F7A' : true, - 'A923759BBA49366E31C2DBF2E766BA87317A2AD07F2B335EF5A1C34E4B57E8B7D8F1FCA6' : true, - 'A981C0B73A9250BC91A521FF3D47879FCB658264EA8CDA186E1752FB52C397367EA387BE' : true, - 'AA088FF6F97BB7F2B1A71E9BEAEABD79CF9E876DD3EBFC422697A3B5A37AA076A9062348' : true, - 'AA8E5DD9F8DB0A58B78D26876C823555409D4BD917B55C27B69B64CB9822440DCD09B889' : true, - 'AABFBF6497DA981D6FC6083A957033CA394FF6850B06BE52E51856CC10E180E882B385CC' : true, - 'AB57A65B7D428219B5D85826285EFDFFB12E13634586A46F1AB2606837582DC4ACFD9497' : true, - 'ABAB8D2DB740E5973D2FF2A63BDA6A05C18211328A92B3B23809B9B5E2740A07FB12EB5E' : true, - 'ABBFEAE36B29A6CCA6783599EFAD2B802F173F7DE99667AFA57AF80AA2D1B12FAC830338' : true, - 'ACB694A59C17E0D791529BB19706A6E4D4DE20D05E66FC53FE1A50882C78DB2852CAE474' : true, - 'AD8E0F9E016BA0C574D50CD368654F1ECFDEFE102FDA05BBE4C78D2E4423589005B2571D' : true, - 'AFB8336E7CDDC60264AD58FC0D4F7BCFBC7B3C6FEF26B9F7AB10D7A1F6B67C5ED2A12D3D' : true, - 'B001EE14D9AF291894768EF169332A846E3A55A4190C195C93843CC0DB722E313061F0B1' : true, - 'B147BC1857D118A0782DEC71E82A9573204285DCF7EB764195578E136BD4B7D1E98E46A5' : true, - 'B39C25B1C32E32538015309D4D02773E6782AAE0EDEEE21A5839D3C0CD14680A4F60142A' : true, - 'B3A53E77216DAC4AC0C9FBD5413DCA0658119F0E128287EA50FDD987456F4F78DCFAD6D4' : true, - 'B44ADBE85916461E5AD86EDA064352622964B686135B5DFDDD3253A89BBC24D74B08C64D' : true, - 'B465220A7CADDF41B7D544D5ADFA9A75BC9219DDC98E14BF1A781F6E280B04C27F902712' : true, - 'B4819E89AC1724FD2A4285271D0C2B5D20CB594FB4EDD895763FD5254E959A6674C6EEB2' : true, - 'B5E83436C910445848706D2E83D4B805039EEDB80BE7A03C6953893B20D2D9323A4C2AFD' : true, - 'B75274E292B48093F275E4CCD7F2EA263BC49F48F8F373A09C1EBDF85BB1C365C7D811B3' : true, - 'B774CD487C5F9A0D3BF3FE66F41B3DFA5B4E0EC28EBD8292A51782241281AD9FEEDD4E4C' : true, - 'B7B0D1EC1A033ECEA91511CCB16FB2AEE3D73606996CDFEF61FA04C335E98EA96104264A' : true, - 'B8089AF003CC1B0DC86C0B76A1756423A0A1AB90C9FC847B3B1261E8977D5FD32261D3CC' : true, - 'B816334C4C4CF2D8D34D06B4A65B4003838E30F77FDD14AA385ED145009C0E2236494FAA' : true, - 'B8D312034E8C0C5A47C9B6C59E5B97FD0560A2C738FF98D1172A94FE45FB8A47D665371E' : true, - 'BA21EA20D6DDDB8FC1578B40ADA1FCFC801D62D07B449D5C5C035C98EA61FA443C2A58FE' : true, - 'BA926442161FCBA116481AF6405C59870456F23D1E9C43AECB0D807F1C0647551A05F456' : true, - 'BC6C5133A7E9D366635415721B2192935922A1E15AEA163521F898396A4646B0441B0FA9' : true, - 'BD8ACE34A8AE6148E85EC87A1CE8CCBFD2EDF88B41B6FE01461D6E2834EC7C8F6C77721E' : true, - 'BDD6F58A7C3CC4A6F934CCC38961F6B2CABB51672400588E6419F1D40878D0403AA20264' : true, - 'BE395ABE078AB1121725CC1D46343CB2DE990CED99E0431F60EDC3937E7CD5BF0ED9E5FA' : true, - 'BF6059A35BBAF6A77642DA6F1A7B50CF5D989CDB159611365165641B560FDBEA2AC23EF1' : true, - 'BFB5E77D3DEA6F1DF08A50BC8C1CFA1DE4554333CA390E128B8BF81D90B70F4002D1D6E9' : true, - 'C1623E23C582739C03594B2BE977497F2AB628485E78FBF3AD9E7910DD6BDF99722C96E5' : true, - 'C1D43E07AEEBECFD7589E67EA84CEBCD76B76096DD145629AC7585D37063C1BC47861C8B' : true, - 'C1D951C084B86A75E82FD7D65F7EAC460B972C9EA6E7CC58D93B20BF71EC412E7209FABF' : true, - 'C22A59ABCF152F4CF7E631A316AE840C9158C5EF987301A8903CFDAB03D72DA1D88909C9' : true, - 'C2DBAB8E9652C5EEAEF25500896D55953913853E45C439A2DA718CDFB6F3E033E04FEE71' : true, - 'C45D0E48B6AC28304E0ABCF938168757D8A6332CE0036FB185F6634F7D6A066526322827' : true, - 'C463AB44201C36E437C05F279D0F6F6E97E2E99636A547554F838FBA38B82E74F89A830A' : true, - 'C4D7F0B2A3C57D6167F004CD43D3BA5890DEDE9E4C4E9F6FD88617579DD391BC65A68964' : true, - 'C570C4A2ED53780CC810538164CBD01D23E594945195F2414803B4D564D2A3A3F5D88B8C' : true, - 'C5A1B7FF73DDD6D7343218DFFC3CAD8806083F593F15A104A069A46BA903D006B7970991' : true, - 'C5DFB849CA051355EE2DBA1AC33EB028D69B561148F01C77C54578C10926DF5B856976AD' : true, - 'C5E67BBF06D04F43EDC47A658AFB6B19339B6B1450249B557A01877284D9E02FC3D2D8E9' : true, - 'C69F6D5CB379B00389CBF03FA4C09F8AEF2DACCBEABB682D32CE4ABD6CB90025236C07BC' : true, - 'C7BD11D6918A3582C53666017C6F4779634C3B0230CF1B78B4569FECF2C04A8652EFEF0E' : true, - 'C86E97F335A729144782892391A6BEC84A3F8D6BDC0E1ECFCD72E377DEF2D7FF92C19BC7' : true, - 'C91962D0DA7E1020FCA4CD0380872DF551A44C28F313E3F9CB5E7C0A1E0E0DD2843758AE' : true, - 'C9982777281E3D0E153C8400B88503E656E0FAC03B8F18235518E5D311CAE8C24331AB66' : true, - 'CA3DD368F1035CD032FAB82B59E85ADB97817950D81C9670CC34D809CF794431367EF474' : true, - 'CB17E431673EE209FE455793F30AFA1C4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5' : true, - 'CBBDC3682DB3CB1859D32952E8C66489C9321DE6B5A82666CF6971A18A56F2D3A8675602' : true, - 'CC4DAEFB306BD838FE50EB86614BD2269C615C4D4D85103A5326C24DBAEAE4A2D2D5CC97' : true, - 'CD3B3D625B09B80936879E122F7164BA67EB337B684CEB0EC2B0760AB488278CDD9597DD' : true, - 'CD68B6A7C7C4CE75E01D4F5744619209132D0D45534B6997CDB2D5C339E25576609B5CC6' : true, - 'CD996CDB2AC296155ABF879EAEA5EE93EE29D6EA98E632C6E527E0906F0280688BDF44DC' : true, - 'CDF439F3B51850D73EA4C591A03E214BE1A45B141A21DA1A79F41A42A961D669CD0634C1' : true, - 'CE78335C5978016E18EAB936A0B92E23AE5083ED7CF45CBC8F61C621FE685D794221156E' : true, - 'CF8F3B62A3CACA711BA3E1CB4857351F5D003860F002ED829DEAA41868F788186D62127F' : true, - 'CFF4270DD4EDDC6516496D3DDABF6EDE3A44735AE581901F248661461E3B9CC45FF53A1B' : true, - 'D2EDEE7992F78272180BFED98BEC13D8A7F8390BA57705096FD36941D42E7198C6D4D9D5' : true, - 'D35376E3CE58C5B0F29FF42A05F0A1F2211165CA379FBB5ED801E31C430A62AAC109BCB4' : true, - 'D3D9BDAE9FAC6724B3C81B52E1B9A9BD4A65D5F41DEF39B8B8904A4AD3648133CFC7A1D1' : true, - 'D3F3A616C0FA6B1D59B12D964D0E112E74F8A3C3EFE7B390064B83903C21646020E5DFCE' : true, - 'D474DE575C39B2D39C8583C5C065498A5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25' : true, - 'D480656824F9892228DBF5A49A178F14016897E1A0B8F2C3B134665C20A727B7A158E28F' : true, - 'D59788DA6416E71D664AA6EA37FC7ADCEC93DE083C93D933A986B3D5CDE25ACB2FEECF8E' : true, - 'D5BEFFB5EE826CF0E2578EA7E5346F03D904080A4929C838E9F185ECF7A22DEF99342407' : true, - 'D5E98140C51869FC462C8975620FAA7807E032E020B72C3F192F0628A2593A19A70F069E' : true, - 'D63981C6527E9669FCFCCA66ED05F296B51C067CEE2B0C3DF855AB2D92F4FE39D4E70F0E' : true, - 'D6A5C3ED5DDD3E00C13D87921F1D3FE4B31EB1B740E36C8402DADC37D44DF5D4674952F9' : true, - 'D6ED3CCAE2660FAF10430D779B0409BF85B5FF679B0C79961FC86E4422004613DB179284' : true, - 'D7343DEF1D270928E131025B132BDDF7B172B1A56D95F91FE50287E14D37EA6A4463768A' : true, - 'D87E32EF69F8BF72031D4082E8A775AF42EFDDE6BFF35ED0BAE6ACDD204C50AE86C4F4FA' : true, - 'DA26B6E6C7C2F7B79E4659B3577718653E84D3BCC544C0F6FA19435C851F3F2FCBA8E814' : true, - 'DB233DF969FA4BB9958044735E7D4183273EE12457FDC4F90C55E82B56167F62F532E547' : true, - 'DBC8F2272EB1EA6A29235DFE563E33DFC8EC8C879269CB4BAB39E98D7E5767F31495739D' : true, - 'DC32C3A76D2557C768099DEA2DA9A2D18782C6C304353BCFD29692D2593E7D44D934FF11' : true, - 'DC6D6FAF897CDD17332FB5BA9035E9CE7F88CD7223F3C813818C994614A89C99FA3B5247' : true, - 'DD753F56BFBBC5A17A1553C690F9FBCC24A40A1F573643A67F0A4B0749F6A22BF28ABB6B' : true, - 'DF0DBC7CC836B77699A1ABF0D20F896A342CD9D3062DA48C346965297F081EBC2EF68FDC' : true, - 'DF168A83EA83845DB96501C6A65D193EDBAC3C7AA4254DA1AA5CAAD68468CB88EEDDEEA8' : true, - 'DF3C735981E7395081044C34A2CBB37B61573A11DF0ED87ED5926522EAD056D744B32371' : true, - 'DFF28073CCF1E66173FCF542E9C57CEE99A69BE61AFE886B4D2B82007CB854FC317E1539' : true, - 'E006A1C97DCFC9FC0DC0567596D862139BAAE59F56EE21CB435ABE2593DFA7F040D11DCB' : true, - 'E14B5273D71BDB9330E5BDE4096EBEFB216B2A29E62A00CE820146D8244141B92511B279' : true, - 'E1C07EA0AABBD4B77B84C228117808A7CDD4EEAE6000AC7F40C3802C171E30148030C072' : true, - 'E2D52023ECEEB872E12B5D296FFA43DA9BACF3B664EAC5A17BED08437C72E4ACDA12F7E7' : true, - 'E2D8F867F4509435FC5E05FC822295C30446C8BB9A6983C95C8A2E5464687C1115AAB74A' : true, - 'E2F8E080D0083F1EC1E9D23F8069AE06C73026E325FE21916B55C4B53A56B13DCAF3D625' : true, - 'E60BD2C9CA2D88DB1A710E4B78EB024140E78C1D523D1CD9954FAC1A1AB3BD3CBAA15BFC' : true, - 'E77ADCB11F6E061F746C591627C34BC07454535C24A3A758207E3E3ED324F816FB211649' : true, - 'E8CC9FB09B40C51F4FBA7421F952857A688B6EB807E8EDA5C7B17C4393D0795F0FAE155F' : true, - 'EBB04F1D3A2E372F1DDA6E27D6B680FA18F7C1FCC3090203FD5BAA2F861A754976C8DD25' : true, - 'EBF59D290D61F9421F7CC2BA6DE3150928903A635B5280FAE6774C0B6DA7D6BAA64AF2E8' : true, - 'EC407D2B765267052CEAF23A4F65F0D8A5EC73D48C34FCBEF1005AEB85843524BBFAB727' : true, - 'ED41F58C50C52B9C73E6EE6CEBC2A8261B4B396126276B6491A2686DD70243212D1F1D96' : true, - 'EE2931BC327E9AE6E8B5F751B4347190503006091D97D4F5AE39F7CBE7927D7D652D3431' : true, - 'EE7A41E0CF757D889280A21A9A7BA157679A4F81FC705DDEC419778DD2EBD875F4C242C6' : true, - 'EEFE6169656EF89CC62AF4D72B63EFA29FAD91A6CE6AC6C50047C44EC9D4A50D92D84979' : true, - 'EF5AF133EFF1CDBB5102EE12144B96C4A1DB6393916F17E4185509400415C70240B0AE6B' : true, - 'F058C503826717AB8FDA0310278E19C2CB44A097857C45FA187ED952086CB9841F2D51B5' : true, - 'F096B62FC510D5678E832532E85E2EE52388C9D371CC9E963DFF7D3CA7CEFCD625EC190D' : true, - 'F09E639376A595BC1861F19BFBD364DD80BF3DE9A41D768D194B293C85632CDBC8EA8CF7' : true, - 'F16A2218C9CDDFCE821D1DB7785CA9A57998A308E14D6585E6C21E153A719FBA5AD34AD9' : true, - 'F1BC636A54E0B527F5CDE71AE34D6E4A36B12B49F9819ED74C9EBC380FC6568F5DACB2F7' : true, - 'F20598E5964BBE5D55181B55B388E3929078C5A28F9A4325C2A7C73813CDFE13C20F934E' : true, - 'F27DE954E4A3220D769FE70BBBB3242B049811056AFE9FD0F5BE01685AACE6A5D1C4454C' : true, - 'F37E3A13DC746306741A3C38328CFBA9253F775B0E7797AB645F15915597C39E263631D1' : true, - 'F3D752A875FD18ECE17D35B1706EA59C968338F113E36A7BABDD08F7776391A68736582E' : true, - 'F4FF97428070FE66168BBED35315819BF44095C238AC73FC4F77BF8F98DF70F8F091BC52' : true, - 'F520DA5203862B92768D5CB72D8B93ADA65CB4733D94A5C865A864647C2C01272C89B143' : true, - 'F775AB29FB514EB7775EFF053C998EF5DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212' : true, - 'F7B661AB03C25C463E2D2CF4A124D854FAA7D9FB31B746F200A85E65797613D816E063B5' : true, - 'F8387C7788DF2C16682EC2E2524BB8F95F3AFC0A8B64F686673474DF7EA9A2FEF9FA7A51' : true, - 'F8BEC46322C9A846748BB81D1E4A2BF661EF43D77FCAD46151BC98E0C35912AF9FEB6311' : true, - 'FB1B5D438A94CD44C676F2434B47E731F18B538D1BE903B6A6F056435B171589CAF36BF2' : true, - 'FC11B8D8089330006D23F97EEB521E0270179B868C00A4FA609152223F9F3E32BDE00562' : true, - 'FD49BE5B185A25ECF9C354851040E8D4086418E906CEE89C2353B6E27FBD9E7439F76316' : true -}; 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 deleted file mode 100644 index 126efc0..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/X509ChainWhitelist.js +++ /dev/null @@ -1,1007 +0,0 @@ - -// These are SHA256 fingerprints for the most common chains observed by the -// Decentralized SSL Observatory. These should not be resubmitted. -// This file is automatically generated by utils/mk_client_whitelist.py - -const X509ChainWhitelist = { - '000AA4E99FE86D84F762DFB2DC29323D0614B95AA335A270AF204EBA2F2240AF' : true, - '002F83BE1562B658A7BA747EEE36FFBA25A7D6C66E263B2901184058802D9A43' : true, - '0061F7422DFE6198AD03858E318E018DAE931B87DB34D0EAEDAC2959A8F129A6' : true, - '007FDDA43F8F2C275CF3AE1D742A0DE86CFE1287B6FAE08F9676A8743E677255' : true, - '00AD891EBED89D8B1DE5893D32B98655479B79FAAF02D40BB933BBF726699446' : true, - '00DBEAA57891E7972D7AE5F00425E309B1A08B8EE4218B24AE3FB50EA98AA864' : true, - '00E60060B345194127FA895551ACA9CB12D5C31CBCE286D1CBEFA26D0BF22CBF' : true, - '0116774D8E17A678C4865D21049258EF547ADE1E84E48F91692CF41731C10657' : true, - '014EDEA8AD82D6923D4C9E10C925EBE098763D822E9F67F93DB267FB5F88675F' : true, - '016BBB29A76DA59A20C5E9909D8D0A9CD25824D7462BD51B022D61B503569936' : true, - '018BCB77EB89BD658CFB6388F57F22E40942E08FD6BF3A26DE05A2F992F6E5A2' : true, - '02303B95D5264B6C3766CECB979740D4422AF1F40EA377F80217780234881DCA' : true, - '028CD123ABEA12F150435947299419928DC5E80E94E9148841265B64344C3DBC' : true, - '0299AD4101A95EA006706582B2E55A35DFD2224EB9A8F8AA822D2354BAC4C640' : true, - '02E266B8D011CF92708D0DD0D9D840BB8EF54B4A4670BF700AE90EE6F7E445A8' : true, - '0333E05678F411BCFDAEFB069DDAC8BE1B3B7E45376AE4C3827771C10A53D294' : true, - '03693B464434A9683B54121395F0655F77D80A64D36AC7083A2923C3FB6EFC00' : true, - '037E1FDC6DBFFDCD1523AA8D44DCD04993025D13CA1545B6CC33138ADC14D47C' : true, - '03986F7123FD11870C6EEEFC9F40E6B8FA6FA8C7FD58C3B62E04F350D6B9D625' : true, - '03BD2F6C0E68327F7077FC5F5B0335F8FDC8AAE97CC920C602D7B29DF6329D88' : true, - '03E2027D68B6F8792C5E99FFA9221CE628E98F0D61346B99E8A2710BD29E1DE0' : true, - '03EA2D8120DF0BFF2AD3496A07D73CE403C5C04B24E562E4C5B5026462B09097' : true, - '041E24ED00997AAF1D78BB5A002A3ABCFC654CF09E38017EBD3BE031F05E8FEF' : true, - '049E2533BBDE9D2DA0BDD71FB463A0D7D2908706999C63FDCEB4B812864E3091' : true, - '05C5F3A4C0C5F676DFCA32690BBCE8A7F41D7D6C2438D9AA1F94F886E3015CB9' : true, - '05DDFDA20ECE2375B55CD05F5205E2608B75FF4D40078A4ABC2FD4EB7C7F4410' : true, - '05E7DF0F4B5A55A9E14DBBF4FFC438FC9FF987C16AF51B9EDB2E633AA6D3524B' : true, - '05FD9F4842FECB37EBB192331AFFFECC9098FE276B8FC915F73B5086ED7320A6' : true, - '061B58EED7864DD73B40146FB4EB9656CBD256F6C10A07C3AC47860150B14948' : true, - '064A8AF7F078CF04C63643298C3DA278EECA283CE11E3F34F3AB851AB89B5237' : true, - '06A8BAEDC838105FBEB3AF6C20B5E3EA3B98B82069246F1A5A096E8CD0FD3047' : true, - '06EA4798A8B6B73ACB72B15DD8D71D6D6541975EA01B6CCE95B92DDE7C0312F7' : true, - '06F072A3D91411EAFF93F070B499A88B082E745A2E369567A6DDAAE227B2E195' : true, - '06F3DCA5B295481A6B1A0ED50541CB67C20B4B6BEE7435F06F5FCBAADC27A40F' : true, - '06FB76F31639CCDDF599ADEB5E7CE9A475468C68B305442E99A067D09A89DDD0' : true, - '0742E85FE9C68350E070039897F5B790BDA92D92229D74BA9C6906D958A5C510' : true, - '07B914BF17C15B57AFE6430B785396D1952956B87C3936204337D63CBDEBBDAD' : true, - '07BFEFC4765397C94A348CE52AB2C7A01CC6257512A595DFDDE797429934B5F4' : true, - '07CF2A06F1718D6E476B98C2B42E370A35FAFE4C1F41CF7A1DE115CDB6222FAC' : true, - '08522737DBEF2F7400033E866B61B3F9E19066EC71294DC9CE2138231921AFAB' : true, - '088B1B9C85C5237A785E56C277962D8901D994350403FCA667645A0321EE1754' : true, - '095FB0FC3CC67539621E292205E758437D94D3B651714049E6F99130BD5ADB6D' : true, - '099E4D986B0D8639C59AA04B56C3E45819DE1898E813D55B0879779C47913268' : true, - '09B9774D69301C157F156316A659287B1023852F6FCD474279C0CF176E40AA11' : true, - '09E55E37A7D241C61FF28A026F9D6E78B5F44DFECE82592B6BC19D0575B2DE9A' : true, - '09F716F6D09883B430D2A1A9B6A2893384A79873AD45F7C1AC25FF05C9E90DCE' : true, - '0A96A08A2E42D95647355C089F7DF09731BC28449EDA336776F944250A265233' : true, - '0B1C1033250F6DED11E4C0A7E43138AD3D52F5661FEC896519BEBCBEFDC16E41' : true, - '0B1D9276FF6C18184DDF7409CB6C0916D24320DEC0505096AC79C0D3FFA9C1CD' : true, - '0B2F810BBEB072D82C51CC774A6C831CDA8EE9F9994C8DD167F2187BE9F8F38A' : true, - '0BDF3458A9B18415635FA90A62440432B3E40DD3D6C795068E1BAED868CAA8E7' : true, - '0C2154A365A0DE7DC5BD0AE6EE05A8E06EE782AC5C41F1D3823E2F95C61E0D2C' : true, - '0C9D6EF00C60807C04A1BF61E8C1E28DF2A628CB7CCA3E15593266682736588D' : true, - '0CCE7A78F794EC314AB50D5A4C40835418681A8E0B3EC84461E470CB1F766FCE' : true, - '0D8D1B9E2F81D60A99B58380F37E9F8F744E205AC778EAE66810224BF0FF9EEC' : true, - '0D98DAB031428D38C96C714C90F0E2ACC9A1767FDC6A953D590928683E8BF8C4' : true, - '0DAB05854E84AABD75D30CE09246103436A4C41E931374E16CC374596C8DBB94' : true, - '0DB35F56EEAE4C5580F3231EA19F4DBB0FD46DE1BF85F4CCF40103E012CDDA4B' : true, - '0DB6221BC96F9758356209EFB138285A19A72FE5B898511143A0751BA600CC1F' : true, - '0DC21B5C66F7A421406E2FF43676B6D7013C6115232AEE0CFD25D70E7D4C2625' : true, - '0E8071ED091D6F502E2649CEF26818C0D1DE8F752632B670395E916F1BE748FE' : true, - '0F0B2EAF8B0C4FBF1A47C048E13196C163ED9D8628AFA4AA264A4624B1CBCF3D' : true, - '0F2BD48DD412D479C8A61E31993A4545FA703253C2A70D901087A7F5B8843998' : true, - '0F820CFB486D8564C83E968049AD119FD838B2CD21C0B342A0D9B5D22C445C25' : true, - '0F8A4084830557DD278CE7C3C6977853A4202E89B5F5F61164D1052F05D67B12' : true, - '0FBBC11F4627D5AA5F7A7847E0F8DE298021E175EC69ECA90A62740A71DC9B1F' : true, - '0FEBD7B880368302F17E5ABC416528A49CD717B96FCF7A21AD5DF6C4A6E6F792' : true, - '1030FABD87581CC2360917E4B4D94B88AF59A0E4FBFBC796F36DEA520198CD28' : true, - '103A6A4F018518AA6454CF8C8D18D7DA301A3F3C9E4C3C7FC2C3EC23E9D4443E' : true, - '10620CC592779120114EB611657851E4859BBA59E0895E2D12A6BB5A69103A23' : true, - '10F22412D1CFAFDEBCF5BCF13FD251853DD98736450E36D989F880901DC4EB20' : true, - '12160CB58782201AF8F946F3911DF89177566E67C2AD7A2CF33107C89C65DF5F' : true, - '1243C75D0F805DA54E780D0D9C55247B1ABB31FC09EB65A7017695945F2A0D4A' : true, - '12C674B54921107861CA3EF8660E814B8B4D9913D0C7867A4787E3546F8642E7' : true, - '12F18371A507D5861569D0AEA4A8E66E551FFE7F312721E9122243EE006D8C46' : true, - '12F7E82D3406C5CEDA8CFD369DCB78374E1F37D312CFC7FB0ED422BDFDF47B7E' : true, - '13033A2EA4BC988F6079128723671DE679D332B41D5043BA058FC76F7E5DDDB9' : true, - '1306A4D21476D28D3E2F7D6E4385686E1BCB6D7EEBB1A5217346A6E5855DF944' : true, - '130F0A3C4B9E9132D1676B4EBBAB2B17AFD2AF39E291C983A696D8BF0DD379BD' : true, - '131F59EC4994BCECEC4BFDA4DD4153463E50830B1EF8629AB6A31DC1BE2F0F39' : true, - '13E77B97AFD7D4712B5BE975257B045E3A0FF8EA08910E1DBD5A64D0DCB95720' : true, - '14919EA335FB4C65A5314A820ED289B0C8697E0124E6FC92DFCA84FBD56B2D35' : true, - '14F6CC3EA57AE2656212AB521EA53739211382F1D8FC429AD02A0D6F6A1C43CE' : true, - '14FC4B733B50025484FAF2617C4C857FA37BD37E6B5785CB007DA63758749E0A' : true, - '15178AD6DD39B91835771E8C2193D0A96CFE82F913A2C10C03144B37DDF45CA0' : true, - '15DDBE5ABC768035989DD30C6A2BC696AA7E5AB2ADDF1F3AA8FEEA35D319B47E' : true, - '15ECBA98523C315922CFC13469827BC118123E02D1ADF24C3BF8305769869181' : true, - '15F88867DB06411FF17D7764070C6EF6050D08CE2B2071F56313F0FEEDC9A5F8' : true, - '161AAA4D4A25BB68199DBE8BDDA1E8FBC52E9C7B299EC5BFAA7B36040B3916E5' : true, - '1624DBB95D0B9786B98A4D7F0B7CDD8FF28754C5EB6673CAD7305B1B5B8F8826' : true, - '163227E6A01ADF06502730FF25F39D8F52B79F9AE61D5AA2876980A21985A211' : true, - '16583259A8715263D55C505FD1DFF51D3925AB6E38FC81417BB52A534D767F3E' : true, - '16A2F0D309D7E5CC00E5DFBDE3DC5DB21532F7E5ECF93E18554698374A5B5C2A' : true, - '16C84150B3F3733B9D898ED4F57B4204E8ED00ED1147C06335670DA94CA2E2D7' : true, - '17094402A4BDFBFA5780FEE086E2D0DA5F4D5EE3107A1E934F9023A1F7E1163B' : true, - '1715E347E92C85ADCEFCA2ED0C4B56DF7D7A3FA9C834B1F2DFA7CE115DC8DBC4' : true, - '174120EA445C5E517C983BFA02ADAD674EA986185E61DF9A782374AE987D67AF' : true, - '177CF252B8F289F84D70CF0C5F3BF4DC2F4B14019D777F62628BA1C74ADB567E' : true, - '178437C1DC169BA86687755E982E2CAEADE216ADD8A163157614A66F34325FDE' : true, - '1882C2D8D817DD1078933D244E379CFC5BA8EAAE302BCF9FA22636B08FAC86CE' : true, - '19230A5E183CB5DD90409C54F01075BB43D5608CE9C322EA3CA3724144FE03B6' : true, - '196603FAE474F910E61B7CFC9A735167422C230CC3917D4F0B1349A8AE18EC81' : true, - '197B67187392F9D4653EC70C8BB277DD7DA843E62BA1A47B0BD95B89CB2C1735' : true, - '1980AB9A47AE57C49A608D8DA4D1DA1B911F39FB199C9A483972FAC911F8B193' : true, - '1985D79429E03A4B25EF4195F04D0D6E770B36E8AB4369232CF3A1C1E40886D3' : true, - '198719FE25A84786A0C2BD4053E93940AF864498D6071994E09A5335B675A73D' : true, - '1A20D558B752D443D16F9B806ADFFFFA0B15F9A6BF15C4DD9B0127A3BF140BC2' : true, - '1AA2692979DFDFEFD4854EC9EAB4CC323BE159529C3E85799E2C3C51350FB9C2' : true, - '1AC3A4111AA231A03A5457B4143FA2302D977AC7666C84D504283EB828152B90' : true, - '1B2BC0D56C4FBF89A27616721222094198F39C550244459FAF352151161448A3' : true, - '1B53976D26A5F691CEFCF098279AAEADDE2651B698FC3F7088F5C2A5B9CB2C5A' : true, - '1BCC11E5459BEF3D48BCCFB10F57B0D640EC74C4BFAA3F0AA221B777170A5B6D' : true, - '1BDD0D8B130AB4FE89DB814276912F04405F2D202CE9DA8B89C4420740517437' : true, - '1C0A6732DDADEA7031C3AB577D185BA0908FC8CFC68925973F5D8D1EF314A0C4' : true, - '1C2A7980E99904650F707BD8FFE193EF77B98BF02C594F668E2CD8FEAFB87D34' : true, - '1C5101CF6E51596C08A2A9D05E7FD15977361F9397921F1E007190F7E161A57B' : true, - '1C84E802619ED9A0AC26289D6FD23589DBD71355453CA3A330C67875541314DD' : true, - '1CCFC1F41255B860F2231D11672FFC1AE32D9CEAA341139C2B472A0EA9CB426E' : true, - '1D16AA433A5042924AE1BB07FC1B53E8549BB93D0F3E40723DE9CF95720D593A' : true, - '1D5A459E02A0790B2082A875474C6B795D9DB88FBF88F5F71A6A0E1D7F0A793B' : true, - '1D968E8C9F5C1FAFE516D2B719A765DFC83AE7AB11BB461C696DFE8051E68C04' : true, - '1D9814B49CC077ABB5F8BA2FD6CEE094538866B595A4B5C5B96B8CD60342D7F3' : true, - '1D9D0031DF904A27E15FB3AF4E004B0A7350788FFEE1C7FC17F0E6118C678AEC' : true, - '1DA6DEBFCC0A4BADEB9672E523C95F42B2D16B168759F75FD03EFBD2CD482032' : true, - '1E07BA293C78E14CDFC629A797E8046A33F21981334BF6BFF9B4DD2D3C148CF4' : true, - '1EDEF3A2E0616C9B753FF6AF369292C619495091058BA99F9A2C691901600E5F' : true, - '1F0A95E93B1068A37FC1D05FCF5FA845CB7D6514F10DD5E69985F622F750D8C3' : true, - '1F4C963A9BA39CE44E46F135EFEAD5B30D6A0A3A43545E18CBE59DE452A6468B' : true, - '1F50A8F65E8256363E2710E05BBADE0FD84882DF8D7C5B12A92FC51B4643E4DC' : true, - '1FA7FFC35183479611091C22AA548F2807088FFC09EFC171596A26B228EB3951' : true, - '1FCEEF2FFF50C9A455ADF1A2FB3A2D150777EE49A0F333F746479D677E3283A3' : true, - '1FF0698D58F68707B69BC895A69FC1F7E6A645C6BAECDB82CECFD7F424BD60D3' : true, - '200F113FB8BE9CD93DCF38AF69F714D686AE4D227572F482F774574A5CCFA6DB' : true, - '20226C095C430BD6AE483B9806E0C32296B0819273076F35F65B6A52FDFEE19B' : true, - '2088FE71BC64663BEA0FB04CF93E3053228D41914681A3F17DA61CA996D453AF' : true, - '208D546555F7C8FB765630D817A53D96B3BDA2C42C82DDFDFD025E0D9FBD5512' : true, - '20C2806DEA7B729E29F7B7BB8B2653B8D71805605AD46394473D1B1F81103664' : true, - '20E0911E2A528C3DC143646F9369D844E82CDA53C48549125DD690ED1047D8FF' : true, - '2128E4E9D372E50A94E43591AAA7C8B6BCDD8BF303C0B22F923B1DCD596E79B6' : true, - '2156D89DFDE0B0676EBDE6CC82DF46DA81467DF96F9B8DC4A8B62F71DDA5DF95' : true, - '21773CA8E35B39C05F62E4EC902D512E19BF1249D303EDED85AB5A724D491B44' : true, - '217928469E2299DB33E82C901CD9BC5B3FAFFBAA9D980ECC601413C9FEF5F1C8' : true, - '218E1D545DF5578EFDEAEDECD87F3FD80C7DD8D925A529F1BCC6E2D72FF03FFD' : true, - '21B2E2C095E47F4762069BA39AAD86802201AC4ED5B6DDBC20D1C7863AE511ED' : true, - '21CA97793B165187383669364CEFC96F19BAF3F8987F7260CC46F3852721BA5C' : true, - '220A91D48D7994F2C122A3E75527F1C29C57C0FBC60E645E02958217AE7BC759' : true, - '223264A2EEB01CD24524FB9273B38688A0AA8E3A2E7D63ECB76012B060039760' : true, - '23F00AC8958BF1466784068A5CC7E2179988F1E73446955136DCBBF756CC2171' : true, - '241D89D07F380A6AFCBD4379AC49FB2EF6B82E7D9D3F155DFA4275A02B9ECE9C' : true, - '244EE1B87977A42E7CA64725F7DD82F337A432744853EFA58C9F386DD4E0283D' : true, - '24E10AC42500C086F78D008D164BC4899A932140B71A9D96CBAD9FB4C8968027' : true, - '25104DEC49F5E26A63CD9B1DFA2B4FA82F2C73E4AE18CC7050E0E0EC7946CAF4' : true, - '258A578A6BF92E1A60553F2A17EFDD2C3267E585FB64020225502A19C6A015BF' : true, - '25B1D037851DAB7E74114857E6ACEE603F0E41D7B6A89A58A2CEE23CA92D9135' : true, - '2677470F2FBD067904B7014B88988BB94F72403C014240B9843AE5A5FA21661D' : true, - '268343ADC21A53E71BD790E19507760E1F7F09B7C51E088E39DD0079C65AAAF7' : true, - '26A15E073F71406D8AFF4A4A623F956FA8E3ED70F0C04CB4B28031EA103DB975' : true, - '26D106DF3FE6E9C99924142C9DA27551E012C72C71FDE6EDD3CF4B5C87D59A26' : true, - '2741D5D511257BAB37E2DD48559D3FE3998CB3A5BA4FC1EA9C8656D5694D7BFD' : true, - '274C93C8441ED469C7B7E01B5A4DB6D9923C3947C87CA4B71D09F34D13F37D47' : true, - '276E05B404AF299D94034EC66A188571F2889D6BF76BFED48FFEF62BBAD8882C' : true, - '277DF8ECA2C7455A847D9C1F3B87D0FEB37C0D7FE1EA6B795718513BA73F71F7' : true, - '278688C47E3A183BB27A4FD418EBD2E408A09395047C896E3757F2D5BB50324F' : true, - '2823094C667C47C71749F7A97F6D215B234F086780B61B5AACF27BFD65C6AE4B' : true, - '2855C813E2F7369732C35656DD791928668591AC6AB3F9C73061B80AA7713920' : true, - '289395C86A0D1E03CF23E70D9FBB322F1988E1C89ECDDAF13B79DE45880C7295' : true, - '28C725A83ABDD4F961356B2B5583C1F165094C5BC820CF15A4FE18086272107E' : true, - '28F5E2863DA83BD5F283E9598D3E8D71817B97BA813C2329DFB2A61814BF56C0' : true, - '2A66B5579421025EC719858E2D80DDBBE02243073DE27DFC7AECC676B0899589' : true, - '2A7374ED5A49AFF8807C82CB9F3E3F4AD7DB5B4994D11D77D140124BCB095245' : true, - '2B059B135DC85869AFA0F2BB76122D71B97DF5EF2C87669085646D98CF08213B' : true, - '2B7C7CAEDD6611BE472B7BE0EDF5907E0F2DEFF89561E09F389343E095DFB90D' : true, - '2C610F90EE3EEA88B4CF39A44659B8B5F74454A5973A9D787794F15867177C3C' : true, - '2C78D9D3C1771061540AB7AF3D75B6A51F63D96DACCE2F21AC08161F2ED95969' : true, - '2CAB9683916ADE98D778D3394221D8D07E07353E546771D507232A26FA577902' : true, - '2CB5C98C4A0D8A9EE15CC49CB83490CE552677BF353A0FE7AAF1482A8BF8C012' : true, - '2CCE7C6E6F1C405C82DBC09B890BBC8F205F503A010210A67428FC8048DBEA1A' : true, - '2CD5E37B2C388FECDF839EE16998A0F0850B5A6BB39AA5A507AE676622001CB0' : true, - '2CDCECA60D7F0E4700411340E6CBFE1B3C8FAFA9081E219462D25A14B61F9AB5' : true, - '2CFB60CBA71ED8ED0B81BBF029CD02B2B025FB4859FCA999DCD96A5D54AB6C93' : true, - '2D375C90CC502EA17D4FCBE8EF35BF7E07A84B6B94EC7AC78613C623DD765E74' : true, - '2DBAF94C053FCCFA1EC09CBB22F54DAFF2DB4ABE1B3C61CFF1BEBC31260F4821' : true, - '2E7F1DBDCA2839FA5A49A6477FC9E09205393FC4A21BA2F5B04F58833DFB7304' : true, - '2E936472C0CBE755C72128EECCF5BB8AE91AF188CB2F3277B205E27904A9EF20' : true, - '2E9AA94F913F869B027272668BCA46D5076503EB9550737482C337950749E946' : true, - '2F3A46F3C2FC1EBB5FB46B3135B7B4ED88CB515C2DB9A508716102340AC3583B' : true, - '2F56C46CCFDB3A3F0192313C4801F02FFB1738F328CCF0F33F44C0731D340DD5' : true, - '2FABB733337C02FC7D79E61202EC0FF7115DCEE66134F5F8823EE61CB7000005' : true, - '2FB44A33A5795F520D20CB4ABC4AE4E239FC193CC2E3D3A85056685ABDA9E0A5' : true, - '301AB20AB753F09B1A1DFF526D3D5DC6ABFF5D796C6900392391D48C2AD850CF' : true, - '30547BCD70F47CABBDE76FDF5538C39D1894B49CC72B0A8BD07250A65E2437F9' : true, - '30664111831B947406CEAFC2E660230B307F401DD060852E0E5281C95D9F526E' : true, - '308F0B0CF08358D501CB807667A31FEE7FDBF7539E1AE74945DD9245AB9F2CF6' : true, - '311646C51E3AA0B2E8022B6B1D95E83814131B16921B3B38DA1ACA9518AD4602' : true, - '311F6B428C4994F2677A56588DA04B704926D737669A76B1B3C8504EECCE4A61' : true, - '31409761DAABE788EA289CD56CF4B7C2BAD543D7FD4347E2F567264195F5EA37' : true, - '3145502BE41C037D2D0E4EB721101662A34D31AD1C3803DCD441C55B4F1C214D' : true, - '317B7685779DAFF1AD898FA790781D54D3EDC11621D1EAA3F4A9BA3262462557' : true, - '31E1681F2BFF6FEDAB9643A60CEDFB2315E62408EC8AF54CA9252895E34B61A8' : true, - '321EB0C04DEBB24086B738BE5831A4D968DBF3FA26E610C367B7F6B241AC2B6B' : true, - '322EC261687A3829C2C0F1FF70B3E6956F5EC01497F58A422A099521BC236D24' : true, - '3247CA2A4D20116F5513937011CB89834D690D5FC864C788061B13AC826B0A64' : true, - '32ED76AE2E09C58605B9C2BF6A27080DB8C7EEB70889BCCCEA72104C7F33F95D' : true, - '3324199E8208DE00D12FC927DC434DF39C54E591EE8CA42B31B505FDF344E5F7' : true, - '333EA87B9503B4199BC1CEBC617DE7A5E500DB05DA5761B7B4C95093201F6200' : true, - '3361788E20F935BE971D4A9B9F49BCF9951C7B30E8E1B00E18130777401E634D' : true, - '338CC51C8910ACF7DC6CBC3AB6F2E288D38A7656CD78BF22C57745EE3146BDF0' : true, - '3422E68D29A6E40872B4B94E0758602613A6E2CE2CF3B5CA67E4EE4DC097C6D5' : true, - '347DB54EC154BC63A4DFBE7698F064254EB89FE7B534161AB6A5D282C87E2CC0' : true, - '34B1CD29AECA7639010C4082C4609B8EC6EFC5DF272CC90D2650D01ADEEA8A53' : true, - '350123506BA002EA62350E82CFEC1DA7BF24B405C4160EF1BF4C445F7DC31757' : true, - '3551069D5774095145A9731885485CE10FBF3FB46144F33A4E48C03CF2E475E0' : true, - '3572DCF086FCEFED230B4D1B47E73DF410A5C775BA3BC9DC2681204F2E980BC4' : true, - '35A0FA13220E762AF04C6148BA44189D2264555AD2FC34601434778390FA5D92' : true, - '35CE5363F4A107CF1BDE8CFA1F3636AC081B94188FD008395A1D8895B5AD2A27' : true, - '35FF7D237FE10EEEA04358CE725A8D43DE0D041729577BF817BF549B3CC1ABFF' : true, - '363A259BBB661DACB3BC7F7FCC2AD55BD495AD1845A0BF0F0744BFBE1F25BA5B' : true, - '365497AFA23330EDC3FF27DFF49CDDDCFDD680C3843BBCC719674A9FE6AC1E4C' : true, - '366810DE62E39878588C7AE621C28816F67DD25F3E76BA4843FCA93A680BA6F1' : true, - '367CD6CDFD0A98DF1D69EEFA8A8D5C79B4149F28188943BD32D042648021B458' : true, - '36C766FC49EDF0C95C068E89E5AFE604B86770D48FF3CF6284A579B200355C09' : true, - '36E58C6DDB5038020FC61F17D2728311DEA600AD9FBFBEBAE2EFBB7B5071D884' : true, - '3708509A206C9C6C5788597400D7C505859483753AD8CC0F99A5D2DDA9C76AEF' : true, - '375A5FEFE06518B0BFD2CE02034E185A44118CA92BEC6FE2D5809762C89E8C67' : true, - '376690DCA49A37377D699141D59A549953B2A0B730729BC6FF8BFDA67433F763' : true, - '37D9AF8274E2D58FDC78EAD2CEDA12B1F68C04A0F2758EA29CF0AEFE9342B525' : true, - '37F78563BBCCFD52A5A8E02FBC3AFCF8C60FCD15F9B7D011279497FB89B3018C' : true, - '387A2F5DD4AD9C5E0847B235EF6DFF8EBB8B786025B4317124DECA6E08DDED32' : true, - '388FDEE7D1F4001D828D2092BBEACF16E5D50375BC16FBF1BA058917BFA03C1F' : true, - '38930AA3E177FF30E734FFAB5B71050FB3105D8B3FBB693EEA22EFD70F1A124F' : true, - '38D12483160C6E3AC330EDC1DE173382B4C2AD79A298155181CCBC9A10CF6495' : true, - '392944F5A1C82284C698C6BB512CB5ABA48445376D54BDDF0A53C66B832D1BB2' : true, - '3955C196410B13A2BE4CE66E7CA1238F139DB5F00E2DF2997CD83903BA064B4F' : true, - '397B9EB5957CE4F48570ECB1A512AC0CB669DA638AEB298B95C9F155E2D0A841' : true, - '3980DC35B3F055E561CB3AEA700F226E35C1ED91C66B2CAF6E186E10A319BB29' : true, - '398785BB4B2E784270779911B8DFF4530758A295E20327D0F64BD31D7055BF1B' : true, - '39BF13F759A9161866C6DC6898A5E6D71FDDAEB9EC5925FFED274FA8E5FE34D4' : true, - '3A260A20CB6DC9BCEE25A21284C2304A9744F494B37359F5F0AFB46A1D0DABA6' : true, - '3A2AC86801E185B3B8A189C42AF1574721D452DA425CEDEC6FA0CCD44894BBF2' : true, - '3A6E84F6C3500A3C756D21172CFB91798DF0EE8CEC9690609D9240018B1986B9' : true, - '3AA33F69018FDFEE33875D0690C26D0CBDBED363252891E02592E0F2E2E1EC93' : true, - '3ACDE8B9E6B1100535007AC7316F4587DEA84EE0DF1B344DECEFFA952AEEDF96' : true, - '3B1CE26F0C0E4393AEAD1BEFD39546A60E52ED5E52727AFEA827E27CA20453F6' : true, - '3B209B5718F54F113C557AB8D670B1501B05A16B92E6E16BC97D026087B90C3E' : true, - '3BA68BADFED2C2A37E94A335FB77A9E633752A9BC037C2B387F89AFE76DC0C4D' : true, - '3C2E04A916C0E5A3D377B13111ABB1C5BCBF79A5DD18865FA9C01ECFA91C5620' : true, - '3C9E6298F6FC43F504BBBDD12ECC94B4BF47947775FB629D1E1683D8D5AA6A8A' : true, - '3CB171EFB062C3F0AC1CBF88CCF28B562B382A5EE096BB48394B16AEE1623F82' : true, - '3CBAC1646A082FD6EB8B9F2A844C1E6314F80DEA301385ED296DB13C3C37BE91' : true, - '3CC56DD89816FE295CF8990750308F966BDCBA97C5A46F6DBD5B781686D2434B' : true, - '3CEBACED87EF6D792BE57716D499B06A9E0965392FF9ED70A3FDD82673C91B1C' : true, - '3D0D68FB06AFA2D8D333AAC270310C45E9D6D79D18219B7C029A78CCC43DFFC8' : true, - '3D1C44AA234496D76A6BAC3434418253903B3C5019FF91F78348AC7C14E39CB6' : true, - '3D76435F7EA7583AD6F474333B7F8AC6368ACB53FAF4AFF9E8644765025ED427' : true, - '3DB253A22F1FBD071CBAB9E97294CD6534BC74430123B82198F7A29ECF800D64' : true, - '3DB397FC056841ECB8737ABEFCCE8A2419AA2BCEE8F1A1D2C440D0F0FF672303' : true, - '3E08AEB4D01EEE9C19968EDE2D5FEE0E974E6B7FD65769E767C28CCDADD85D46' : true, - '3E5558CB92AEDC7E01DB0FBCD0825CC0F51AA7B683ABFD01D1E5E04C8A4D716B' : true, - '3EFF635571ED85551721F01985D1B2C62613C2B7DE25C8DAF17A8767ECFCC39F' : true, - '3F1F9323436BD390A2355115CC333592B4B5AE3F3BA2755D342CD863371EAB1E' : true, - '3F56CDF75403392B96E7DA06DEB55C70E8D9166ED6FF6B84D7EC4C176157E6B0' : true, - '3FC92874F07DB0DEE11CCB2CA7BDF187641DC78ECE4C76E71B2253FBBC17E3FE' : true, - '3FE67F5B06535FC13DE42FBF82AB1238C7C899491A460D62CD2FC08DC87DCB73' : true, - '401560EF31EC01360E48BD4CC8C2B67B55C0004712A3C08E22A01F933C60CA67' : true, - '403708719913B389CB23493659C668C96CD9999F7BFFE044B35F8B44B13B5B39' : true, - '411ABA7575AC3548FE6E02AF1E192B80ADA7FD957D2FDC1360B747598D1327F4' : true, - '417548DCF639B7068DBD9E51D372C67D147C8D240A44EA9F9609A8B526FB4CE3' : true, - '4181BB2178C564FEA4F0F5C87337921A1DB4C1CB1264B1E2168FFAF334C7DA55' : true, - '41CD7602C418FD0831F1F207DD50A19A0A03679113F8508F43DE863AFD32FF45' : true, - '421255699474B76638EBF0F0B09FB1D5DA870483D1F6572913EF411B384DE3E2' : true, - '4226423E038140296172814E39889C6B35471796A12F91E450FA5E59341F571A' : true, - '423D0D4DD3D4B507C4115C46321A9B0BE3B9D7224DF626D2027A30FE682099DE' : true, - '4245AEAD44ABC8177230DB36491E58FE885773DB0D043E24412A8BF6262D506A' : true, - '42A2B7BAFC9E81A94112C062E15EC8017861988A458D8C52A686702633559BEF' : true, - '42DD0632CD639ADAD014D4C2E28BEA543E3989FDADFF9DC360676BF07C200A1B' : true, - '42F0C6BD144E105B3D14A68E267DDFCAAF76C95CFA265B187480EAB83FAB9215' : true, - '436A3291C05BB22CBED875AF7642839CC42E7C0BD534AA6698AF162F790F90BA' : true, - '437B07B7934374CFEB2F61FB1B9A764548A53C9255F053C59E236CDC6B89B839' : true, - '438F971859A8E9513FF0A066A2DAB7A7605BA447CC82183DC88B53CAF49D1A37' : true, - '43D2BFAE896F4791DF545D91764AFD74DE470C6B26787A553E70176925AAAAC3' : true, - '440D00F6A763CEAF241756BFC150BABBB724D3AD48D6739ADEBC84004E24FB7A' : true, - '44406F5E316D195EF83153B0E45380F529943062FC692EA5C202A897A013E95C' : true, - '446E31D583B00384BB2D1D48C8960DE3C852F2DC4FA3BB738867CF5FE64EEB5A' : true, - '44C748D62020862C698F3A1BE86A0261BEEF4337B6E28B3597F7FA0E4A01E49A' : true, - '44CABD03127B290D755547D264FEB34F4D906826A149B64DDDA514F549FB52D1' : true, - '454B18F6DAEAF7047D5B6CBE2639B39B2FD036870978048A5076DC8D50244365' : true, - '459F25329680CC7589904EFE8F94F17880AA9DF2BA9408645BC9370DAA937471' : true, - '45A2CDAA5DFAFF670425706B6543FBE161BAB6843A156A1D54F340BD8CB87970' : true, - '45CEF64AA866F2A2A72E13722374190F8EEDFE984F022C3B23B492A073741EBD' : true, - '45D1C3C1E96982C752313C9059D4D6291BC0652ED7B266E25F67738E4D74915E' : true, - '4603C35A8304F6057C253381D39404E8B40AE0958B4EB2CEAB7777CD85802C0C' : true, - '460D4CA817FB242D2263900689B3CBA7261A390B018391C7E1716991BE8ECAA0' : true, - '46565A05B815225FB600CF1CF1EE4BDBA5A7D39A7ECF45210FEF3C1FCC2B8B1A' : true, - '471B0944B33214226AC225854FE158436A278A750C082A48D9E7A5E2A0E1715F' : true, - '47F4235DE4F1BBD02682F65A8B465D04721124582B6DEAFDAC164A699F56F419' : true, - '480B822D5A85FA7778AAB5735E46949A668EFBE1F6E8CC1107B01C6B761C2089' : true, - '48544D794B99D6942B8C3B2CF051782C2F6CE051860BECDE2736C2CD6A429893' : true, - '48E8ED415FD8EFB4407D0C67F3A4EBF15286569D29D566DEFA8B7AD8F135A5CD' : true, - '49558145AB82E7F795C2E45402260F1AD1ED43D4DF145CF2577BA1615CD00843' : true, - '4A69353F89397B7FBF7B34B298BBA87342EE33C9F5B75660195F8B308FC892E9' : true, - '4A787F7CB8AC54A1EABAB27A47F6EACE47C2BE2076C2097973E035DA5B507C39' : true, - '4A978057E01B2F443BFC218B48E7D00D2542DBA58ABD2609ECE7E152A8F86292' : true, - '4AE85007A69D54CCEA04A3FF18B66CA5AAAC43342506963BF910E2C2C3AC8816' : true, - '4AF86DB451BCBBB3BD8BB3D5982DBF4451CD96394540DE9FE6210E69F7C2F8D3' : true, - '4B29F275C3803C8B4E50951895FE2A4C94442F4A7D14922D54EADBCAAABF4056' : true, - '4B7969CEDC5D49D2FD71A2BB9292ADDE46AA34B2F8291163708F0039DD950618' : true, - '4BA794C124A33334A880DFDA09E7CE5B10552C8301447ACA77FD53CD4CE9E725' : true, - '4C30D24EA7A5914CCCA63E3EA35BC8FB1235F5DCF380DD8A62A01EF15009668B' : true, - '4C3777C55B3DE718A1A48D7903656A81E9CE315333E2B6C3A1554F8B5C193BB4' : true, - '4C5B87AF5F835DFEBF4FBDA9585178998AF6C7E8681DF65E46494A8F6BEC6EA8' : true, - '4D112C44F7DBE6E0A55667E639E192515C54B00CE5E964EF696B13AA049BA656' : true, - '4D26A014A4C4007564C743D9BBF9C2DC9A5A881C05E549DFFDAFCD3814F3966C' : true, - '4D6CCD149A9BF9FA30CD78345F827ADB4A51553FCCDE1811FA39872E293EFE59' : true, - '4D8B64624279CF7D51601735841CBB361AF0B7391064C39EE82B7BD99F633599' : true, - '4D8C4D5D0326174F4268C67B81010F65F2DDF58CE700989FFFEEA379269B0AB2' : true, - '4DAD9C6A183D4E385824B6026E226BA5F220BD838F827C2063831B5998504253' : true, - '4DC761701AB68524A6BACAD94CAF1D8480229B66D8B9B9C0CDA3D3B233A6B785' : true, - '4E49086BA0B8B96D1C31415D8A1464F19B93CF45B46D04AE4C21672279ECEFFB' : true, - '4E896A7D43F19E4E9586661BE2C642A13C1A6276BEC67EE05D73AAAD7009E723' : true, - '4E9BD8EE95C95E2F30BC2874E73252CD5F1E93ED8044F8BDB007117ED14E2959' : true, - '4EC463F17C54EFF037FFAC18326F5C8D86F5AC295149408499042DC4F8A96B73' : true, - '4EEC544B64210519ACB153834E7AFE21867AA949946FEB78CE5A254D12A0934A' : true, - '4F109E78AEF1C633256A8D142E1BB4634CA4DD28D45C9121F8AC34EAA2CA8D61' : true, - '4F2585D48325C6EFDF76B91358BCEA97A428B95E575ABDD83028DF3C7AA10FB0' : true, - '4FD1A1A0E4A435C96CFBAC9AEF2D8F93C9505CA0A01B505CB5B5D3384A4C90BA' : true, - '505707224B14F1FFF2F5937865DE662C85B0C21D090C59658E24B53CA635EFEA' : true, - '50CC4D1AE164F66EC09AA6B7D5931074094FA1BB6788AFF3525D7711449CEA81' : true, - '50D807568742476BDDFB2B2DD7532ADF770BC0A5D8CCF0710AA8EDA90AC1BF4E' : true, - '50DB534A27B601C2268FB45FC5F496F4457DC030EBCDFD6221A85B1D6F612837' : true, - '50E9896B78F1F7518FF47BA049FB637E9EE670EDC54AE3611164EDB0C77005FE' : true, - '5146E8FC07229C7FB68C4D978D98E431559515C26B7C940C9B02846666CBF86A' : true, - '51951278BE011B8562F6F9F629855BCFC7F28856755EA274F29109E2489CCAC4' : true, - '51BCC26F962807CF0E8DBAB22F10EC07C964A23ABCB3F54CF247590433E81955' : true, - '51D55D35DC31E9E37668C1D7722B6F9C09F044B5BA6AC7E4292E6B2ECEF92535' : true, - '51F5AC607BCB1882F792585357C63B23D08267F717AAC5BE2AF557123EB19446' : true, - '52064B1A1610B2374CC7319E51B4ABFAD46FA995B9447DF18ECBFC68382A9ACF' : true, - '521C2A94F68FD0E4A39D62EDD2F980BA51A70DE79312605479C49E9BD633B854' : true, - '527E1D8CBE4936132EB16202101509A3A0535CEF78476DD9317AE7A31C097327' : true, - '52AFEFBC93919093868483354CF11C747FB38F946CDEFDCFA6E5117FB0F5039B' : true, - '52B692F4633A4490F8CF535009183557C5562B4B933829691FDC17E229919E2F' : true, - '52D622E1A7705A08FC599381FD67871611748B8EE9BD235E6C2A91E315C251D0' : true, - '52FB96DD74E66D3AAD9362B58E44731D388E0B0E17DE700E2FF3A7ACB2FC1BE2' : true, - '5322CEB4048FC373C5BBCCCA48985E2C72A380ECB490D143DA16482383C74B2B' : true, - '53A96B8A54585360591C2CD5A84E299962FAD97F6C1FF0D55484D3F56B2FB87F' : true, - '53BC74DCB0A19B859F3FC60A2C6410D22F86321E2AA4D03B08C53181A0FDA996' : true, - '549714E49A3540F72DBFAD7836857D6566333DBA4645F3C4F349E5FDE00D4302' : true, - '54F36E09737DAF689E5E4639E147A532A852983FD88F7D26234EA7C9BEACF0B2' : true, - '55360AB9E4626C6A5CABE53D4DC3FFE3339671F040B96E93C3B8ACB6CB1AD4D1' : true, - '557AE25211574C66868033236E50981E6DD3AAC09C9A7916CE3A26D03420E774' : true, - '5588811DFD0F3670F7E1A16786678388365EB5024E756A724F3E270874A0C307' : true, - '560643E22142CFB43DC9055CE558A62AA7102F75F6D42E3CA314920016A5779D' : true, - '562245CF8A84D1D3C1D6B93E913E3B22E5EB561788981CD666125C21EBF44D88' : true, - '563A36F203C4A0D86BC2ADC38B1006499E3CD3D651B5C97AA848494CBC5582AC' : true, - '56471B223E05275BE6DC106B9104B5205CE2E6FE11115C5BE564B51B965B5F09' : true, - '566B4401F65B5C29AAB831E836536E791FDCCCE98184D62C0A26E6842F55D303' : true, - '56C3C0B8AFAC13E7ADBC449142D6782CC3C31A5E19DADEDF1CC01A1C80FD6D4B' : true, - '56E517CBA2C7389F835B1BA349D636309FEFF05323957D8E64D6A2EC78F22883' : true, - '575B7E593AA02701C1596A6A45E1FF458D4626BB2A31F5D3031B2023956FE5B7' : true, - '5763D92A93E32A742A173821970D56891B3874753DECF5DFFF2BC7D2D95B82B8' : true, - '57B2958E7031793509E2EB58DE05C460E0791C4F78A43244640F7926FA3BD7D6' : true, - '581247229E9E4F0D67498BD22646654479F5E0E21C96DF47CF84EC94218EFAA6' : true, - '585568A4010D0650BF0F0C2F78402F25FBF6D0B8C82879E5B475708DA6617E35' : true, - '58B590F006C3B293A57D41FF491EDACB580EBBF8AB20A91D6F8F0ACC3D3C19EC' : true, - '58D9F0EA223A00FFF59D34A5C07E1F2ADEE43CDBE908334E1153830DBE463D91' : true, - '592C1FA32CB66B17E0ADC3B3C6C65DB7A7B8863D0302D5E51C53416DB637BE6B' : true, - '592E6A566E519805F81D7C487817C94208B9EA356C03D1A69A3D1702265873E0' : true, - '59473282262DBA200C960F2938F0683168E8316CCBCA3FEE394F0F0D54A4029C' : true, - '59AF4358506C0A2318F28B90E799634921C869C5FD8B624C9D76756E2A9FDF6D' : true, - '59BA7AAEA0B865D4463836C24AB3BBE6D77AA72177831208B2B6A34C8C1DB307' : true, - '59D52BF260BA4EB3C33F0E2A17264E4FCDA3551FD2A1FA8587645C29547F4534' : true, - '5AE9D9A57C2C534BFF3EEA5BA91F7456910808227C9D3075409C010D69B35DD2' : true, - '5AEA8446AEF2B9BE8984ACDBA8D42A71D3A8D0AE31372342710B67E8F5A43BF9' : true, - '5B3B3DEBC9899E074F2AFFE1A660013CDFD66E4F70948B72AAA20DF84433A80C' : true, - '5B9DE184B19CB095ECE56743A43B16ABDEB3063CD37F0E20E985C9E65D71D311' : true, - '5C1AF4338F1854843A251AFCCBFB2F626FA70E1DE41D2C941F34D15230BB56C9' : true, - '5C3F4C823A953A561E8D0787CE7AD8FAC7434EF57CDEFA4520C18A5667C82003' : true, - '5CDDF1DF7B5333F1B4C0FAA66297AD72ACA5258C5E9FDE4B9ACD9EAE832C7A02' : true, - '5CF1D1896FCEF8E0B72BF6E617D8210ACE7DC6393E38FD4BD4C68E2EFE2EDC03' : true, - '5D64C4C9EDDD06639D193853EC96E2965F6B25D267B77C6B4215DD267F8ED96B' : true, - '5D68D02C6166F138C5CDF38DBEE7D4554849D48923FD4002319655F3625DB8A5' : true, - '5D93064489EF0EFC4896A08CAFC0E39631930121F724A3D1CDFB83C96EABBE9E' : true, - '5D9A9954AA2FBF6B426E2D08BCB18387123B6E2CE67BE2FB9F60F8D4B405CD20' : true, - '5DE0EE469B7D133584FC7B15F067761A0A18D73CFCC973EDE76DF596C4F7C9A7' : true, - '5E0567301967C4B11CD56E3246BD48FE8C4A23AF8C6F5042B745FA3F631725A6' : true, - '5E650BBA8E8037D6BBEE78A730F740DDDCDD7EC828120AD912F4BBD72794070C' : true, - '5EA41BBE7505A57EBB3603AB14050A284390BDB6E72B39D918232A5D13E702E1' : true, - '5F24DC1AC032BB0FFEC76D35C0091D9B658E94D953C8F7576A7C1613ECD728B2' : true, - '5F6CADF774ECAB5E763C99E911D31B7CE7A470AC7A91DDB8A0DFB092079CB0D6' : true, - '5F85D6DF2EFBA0438EA4283D734CFAA8B3C43E22BCF7F6CFC24DBE82232ECD3F' : true, - '5FB6ECAF5FD5CA42241B12521D7BB6F06B7D804C60C84D7BBA7B7A7543FE754E' : true, - '5FE1351F1D181DAE879D37BA02B76A4AEE40BB3578718C0F467F2B53383CC773' : true, - '5FEA0DFD20247FA12D63859439FF9F4D5D0207D6E1134820CAA9CFE4A1B08FEF' : true, - '60E9F3B150DCF1BD90562DEDD083FD783E2CA9A982C08BCA2C455F50BF977B98' : true, - '610B774EA0B634E6F9B5A73C2DE39026C1A55D9425691B68DF4803228BDB7F8A' : true, - '6129C7157898F2D29FDF04A78AC6730FFB248F7467858C9F3441A5D4D6B88C8D' : true, - '615745882CBA2C8B9875198E3FB62A6831207B74A21330847BA9AD01DC9D5586' : true, - '618F1FA3F38C857898847A865AE73D87B0071C8DCFD4EBB7E80828B11862151A' : true, - '61987C4865081BB1C9CFF8E555A2B73DC6C88CAABE6BCA06950D3821A1F9E407' : true, - '61BA185CD2FAB39562813CDCDDFCD75184A1572E2B2B87667728C2EE8596AC65' : true, - '626A46879F664F1EFC638A217EEA9AF538608E03B7496D5D11CF4E285F1FB2E0' : true, - '626D3DAAE3451C750616F520086766043D22C2E2C34F483D6C7EB06E76ABF206' : true, - '628B608326DFE57DF84B8289702D0510AF97D93EE30499B0CB5140921EC87DFD' : true, - '62C9A052080F8EBA5E8FEB9615B5CDDFFF1D74F8467653030CB1BA12337EB5D7' : true, - '6359C58181A724613C613A6C4BDF358B7AFC4F5E0B229F8877190FD3E71B9803' : true, - '63A4A98B9778705A9CD9A0F1A40827B0A6C86E2A520DEFFB1AD8F815D760D992' : true, - '64034D52E2C298EBEFB8DBE9B29A28732103B368215EECDDE114D22B2D7B2EEB' : true, - '640ABE7DD00142C0BC18A62F0DF54284DC89AA1BA000DBCD992F719A4B9D2887' : true, - '647BF8B75837D8245F6BD412B2618136176D68395FFA83FC4E3A1473B0F5CC3B' : true, - '64D1D9522071A54B43A6C43A759223AEA7AE209FEAB423EA24E3E95FD83BDFCC' : true, - '64FA303A129E23C91B42F1C76DBEC8089307AFE11E5C937704D88B919BA60B45' : true, - '651F8FBEC4C5909A0FDC3B8E8D557574FAF01B33981B5B725311B57DEBB47B24' : true, - '6568B78ED9264581EEDFB87DA662F20BB6E032EBFB2F5B61DAEEF1F4E6E91627' : true, - '65ACF48C5CF24783794CB8D5AFC30737273D3DDF93F62EF803EDCD05650D775F' : true, - '6640103D01C44839CC471424756C6CEEFE090B3BB98534B35675BC524D2FDA50' : true, - '664EF517A09AAC31503712482FAD76860E0376164400E67A96177EDC25CC4CE2' : true, - '66B10F427AD63DB6544E9E20191BDE4F827A7C96F1DB17E01E0B254D67BE282E' : true, - '66D67EC6407BBAA2F4A0EAF49D81F223332DEAADC96292827CD749DB07A82C02' : true, - '67118345997FE5257EB55439485C3BE019B32F1235E050EA2769A7DD80E6BBF3' : true, - '673739D407C00E1F449A4F9846B8453C09BA0D0F46442053DD5339F93A2B0065' : true, - '67EC9245E211B5D1725811DDD82CE19F1E44F3478BE3B2E42B049A41AD44EB84' : true, - '68382918F5505DA3670FA53F90A4F583D648B55CF05044CEE68B290D68279AA5' : true, - '6860622481E0AB0EAD93B771290792279985D4989D072D5C1E376F451FFB1360' : true, - '68F4D48C069E0E2FE572EF492CF6682A03AB7350D9CB3E57EDA19EDCC558151E' : true, - '68F575FF9F2EE5CBBE2975DB80B0D2E8582B2B5A1624A70EE6470FD562D59E93' : true, - '692C0A28DE13EBB75674023CC105A5F663CF5C67153225EF1193209E985CB1D4' : true, - '696DF754F89F8B927A273EAFAF6B85C38F1D07E3EB99C4458188B443BC352D48' : true, - '69CE183BD9B04AD76F8FEBE25095D92D95888AA7D8735400158CD60B836FCF05' : true, - '69EC7BB154853BCCDC5C5646ED659F54B957152BDF1799B2BD48D4EF52DD9A85' : true, - '69F71F4F07365D7F684EC748F9CE61559DA33FBE1C9772F836664D656F51A5F6' : true, - '6A7D32C4F099C8D7ECA61CECDFCE82C5D241F33F6A02B3A00D89802D4689DCBC' : true, - '6AC112C1828538894A1FAC7CECE0ACFEE75658118041513498E880274BD2B7C9' : true, - '6AD39077DC61A2347F25E34A809107D3F11E18B1E197A88A9A39F5FDBB0A3861' : true, - '6B079CEE0C61F7DEEFC419FBABA5A734BEB22AB794791A0B6247E61EB4493B78' : true, - '6B16CAD6D99596442162EEE7113248C0C77EBA7DBE1D3BDC044AB9802337D2CE' : true, - '6B8153379F9AD865DAA48C0B805430D7B62D6624C4AA9389FBD770A366439995' : true, - '6BC4B8F5756C6E11852DEAF28C2208733B463931BC5413937F897D4735CC2F01' : true, - '6BF2234F99577BEF099F5A651C125E660A765202F83A7FF24C82FFC87F87C3FB' : true, - '6BF93E269F6A628136F482392804350AED624D75C68CA78D744CC06CF68EE1D4' : true, - '6BFB1661BA15D7A0A8CA1B9B4198D9A6C4ADB15245006CC59A60939AA10903D3' : true, - '6C2FD820535D5A821A1D96C86B45519B751F141CEE8E1DFE6E52EA5370E1E7F5' : true, - '6D1A6A751BC763F5027ADCB9DD5D2FDD2B3BF82A755B3013851D2C8BB98342B1' : true, - '6D2E55B7B10EC7E3F82F060350C9BB7DAEED8B6ACB8E79B4B088D9B711A9CC6E' : true, - '6D53AA3328CC9AC46F2872113922BC105CC4A5C2B3EB7F45C331A93BBE4ADE3E' : true, - '6D9C7D48EBEC4A7D808E0A45C6ADB9A6CC5E61551DDF1A24A3A74846039208AF' : true, - '6DC6A2951DC967373452FB4E9A95DEEBCAC70945DDE09BDA398F74161060EEC7' : true, - '6DCF946587948A63E73023A5F33AAEC7EACE0525DA389B15F1F8AF1AF80F51CF' : true, - '6DD13D5385101A3323ECC27F7548813E240A1D58E37DF8D820CD2E2998BBB8C1' : true, - '6DD80C2FC91323D55EE9802BB3D0B8532383450610A54F1818EA67BE12DE0F6A' : true, - '6DF077999FC9CF42DBA6A53792BC94D44D0A7EB834DE9F8BEC2D973ABF5DD1FA' : true, - '6E1EBDACC8C14CBC6635F612329AA11C13C8C13BF612858C392A3B8C472AD059' : true, - '6E22A88D52132B3E2E43BD300743F5A381C225267449FD9DC8E86813046405DA' : true, - '6E2E497FB005ECE46395535FD0DDFB0D25109D1BDA9D1933F522706D8D79E179' : true, - '6E4717FF9379E997C167282DAD35030DCB397B5407EC9A25EFF535824449FB70' : true, - '6E5129A0D68D66F16303D10A033F33DA6D6E69C0F8524FF4385D3469B987F9BF' : true, - '6E6DA0FA0E408041742AF46AFC9DF9C2B0C3FC42337FA1AC04A91F4C89726F10' : true, - '6EB7B7B5944AE125A6CB7A1E47F94EEB2707DB51DDA0A74B6DC73A9EA683F963' : true, - '6EC6D27D2BE121B49CCDB7866F4FFCC3C2091AF00405CED481AD072FE4BC2307' : true, - '6EE1C6CE7C12DC2137FBAF7D8F23D3D39384C7486A22BD9DC5DFA7BD8864A0E7' : true, - '6F45127FE064F0BBB5EAF17D7A4D9EA3A47175AEF7CAB5C98F2B6D11F28A4BB7' : true, - '6F6AD0836CA59A26AAF84CB1E1909CE44F427C1A5AA2C26C77D0893C0404873C' : true, - '6FFF24F5CF69ACA10DFEBDCEA8B5A56990728D9EADA33D0CD316BF042E79068C' : true, - '704172C04EB3CE46ADA086772ABDD4DEE208909ABA10D59D1815E9533107CE5C' : true, - '707966CCAEC5908E84C5AE646566426234491D2F78CC00BA7C7B9E5F009924B0' : true, - '70A67B74C0989BE98A1EEE5FC657E903C09A82E81E9C921EAA995DCCF790EB82' : true, - '7109EDEE1A5EA15999322CCD296655E089C12CE7193B9B83008E97A382F3708A' : true, - '711280787458F0E54B0C9294A54270FA83E8CAB29E212ADAF665D7F6345C4DF9' : true, - '711C387F2C7A8AD850D98BB2D145DA6F0240960AC5563A50CC6251C28D659503' : true, - '712DFCF0FDE6A19BB956670492E1C39956012537416F6B0F90EFDF093ECE2D88' : true, - '716121E1DA67D3A82CC8116139F78C34C30E6DC96F647B7F474CE569B38D0F3F' : true, - '7177E89F5B3033D51F000533ACEA71FDEAEC93E4C3CEA1E0FF68F78BF35C8B21' : true, - '71C96A7294C59E44C257A0BDA7578AC44118DE25DEE425F73E0A211066FE6AD4' : true, - '7231ADFE0CF97B4891B54A4F17EC2104C2A732D06878323D7585801DC8883E6E' : true, - '72438F5523C4516DEF379EA7206A883EA5876DDAEA39EC848A5C456E9215A1D3' : true, - '725D6786E7D84AD1620F2C3C26F74F188EC71F0955877FF57060E2943972C1FC' : true, - '72B25D2B306852E429F21DE58CDC4A9891E3F5982691FE9CC6788D240DA268FC' : true, - '72B3E7A98A999A30F431233EA370E5C4FF0F4DC6C14EF976823F7D1E715D78C9' : true, - '72DA08B04A02C6951EBFBB53503A49B8449ACCE5F0DC3D0539FCF72C0BAC8C2F' : true, - '72F3DB1BB2B0B3D65683F62D927E20C95303A00E8C845E0088E4DACD4F3B19FE' : true, - '730C9CFC51120B6E5C66F07772ECB96F2933EB184A397BAF90453D2BB43BB600' : true, - '731365F0467B856B049E1DA2E48507BED14DAC7F850DB92517B78FAD19C3AD50' : true, - '7334856F73A23C5F0A60FD1EB2DD14EDB444B1B8B62516FFFC38589D1200B09D' : true, - '734B6A2AAFD05E66A9C2D72EDB67EEB5611E1FC44F4611602DE3CEDC166F2CC3' : true, - '739BAFCDED267B356D90B89CEB40EF6C9C77DC768025EC662EDFE035A816DDDE' : true, - '73A621FFE0ABD75757F5C92C8EF20E63EC8F4A279A450BACC7E4FA9D75E0EE5A' : true, - '745525C231C9DF8BE6CCB47D13C76E48309B978C8307B00D4AC43F5E8E94C719' : true, - '74A9F7B27B38326F64792AAF791E5A5969071CD05C8ECB1E068035AF9AEAF482' : true, - '74DD81E119FA195E9D174DE01F5EAEDB33DB2947E8B14103A68BD6C048EA491B' : true, - '757071EF34F3CA907D7D29C6420EC14B6953F433FA03F2049636F55265E456B0' : true, - '75A6F19FAB17B6F9369BE788451392B4297CEF7CF8CDE5885466DD3027567B48' : true, - '75A9264209E9CFFCF8C4D74F1988A6AD0F509269A5DDA3DAEFC0068EDBE6AB26' : true, - '75BA937083A01BD2E40BAF99E67BE6A5DA4091DB23E1180D476A4F29E3B85F2A' : true, - '76158E2FDAF1F6E79D74A36BB2DE03AB8F5A4D7BE13550662A53ED88EA7FA494' : true, - '7645E014C8465F11596B1B7093FCE41313B51FCAC1FBADD409033F63F5475CC6' : true, - '76A3EB6F8C1F3036DB2CDD46425DDAB17A5896602C21D537C750D56539D609B4' : true, - '77011CEBCD8791962FB34FA78597897A9CD8757BD10F4A3A595359986F6022AB' : true, - '770784FC2B1A52F110194800E972006E868F055C52A8BE467F3AD7BCD7E441CC' : true, - '7792187AA52C5BF5D6962B492FA6A9CCE23C2AAC15A97385EB19409E3C27C307' : true, - '78688E9E72AB7EBBF676773115F2FDCB5E48AEEFFE7A214996099B5B0A97140D' : true, - '7871679EEF661F72EE1CCD043F1B7C597E8F23196B653B42634C37F2B6619B00' : true, - '78EA89695196A279F7B44D8F1AA15080C91C3BB240F1D1878A88F2B27228D430' : true, - '792EE0B202E6A45AAA85E918497D9C9F16FEAC99500A7940C0FC812ECC42120C' : true, - '79506C5663C38F43902B55BE2FFABE0757A806105C2A18473770E9DEE5322E40' : true, - '796C57ECE8BDA296B3D99CF733FB6416DA911E5C88B9A3F4D666AB35C15BB68B' : true, - '79C23A183F34B74C5E27A98B7639F49A05DA497FE8DA09BB3009E1347E749164' : true, - '7A25BD2F891D7C049CED17BE56848CB2C398B23FF5BBC6E0B483D7C0EEC38004' : true, - '7A9E192C2E40C868BC0712625F76BF4017E503E5F115AF842F089A23FEE14F1F' : true, - '7AA535C0D9A800DB2CF104B369AD51EA6030237E857EF61EE4412335F83649DA' : true, - '7BDE39A76CE550ABEBE58E8195C5D2635A04B6362CEC665EADB76E8807C0A39B' : true, - '7C63B78CCB8DE59051349EFBA4A9E34EB627F65855F3C754312DCFCDBFDC270C' : true, - '7CE292E89FE576958102FD62E37D0932577DF71B88F116498212E5ABAA662A9D' : true, - '7D4642DEBC7CF346EC7846E9B0314B73B6B9C23F8016E23E8BD49ED247D2BEBC' : true, - '7E01E1EBA9D9E46D3DEBEC868180199AE64DB3BC878F66066E91CB4C060B55D0' : true, - '7E0920FB66D549811711C20F1789AF9FFC54846E738997B8A18A2F154F57D29F' : true, - '7E0AB095FE17F430AAE0B4AB7490366DF97BADF13AC223D96AF0913D6919BE7D' : true, - '7E6457A0590ACA862390B02CFC9F03042A7D08F4864AA9B1355521808F8390F3' : true, - '7E723113D07305D5E9843032E474637331F1567CF33EDD8316059148AA2E3ED8' : true, - '7E73DC62FF77BE88149C85444C4066E0657AADB72716230EBC073848DBD7F59A' : true, - '7EB86A40F92731EBBE58C26A9ABE78C3C1D2E2406EA2CBB6FC5908EF852253D3' : true, - '7F1566D05D1E3A90A9D5D551AEF51D2F1827FC9E82922F2BB32A08CDC5BDEC7F' : true, - '7FFDBE3A1A423CCC6EC3C9FCE2D51B91D70EB1A122BD7FB53875F4BB08E3E966' : true, - '80BCFC1145A7F287ABB29FD26F6FF09F2F9299D43DBFC2214B15BC346D1A7EE5' : true, - '81041B22B3F6B997CF39557DA4E384FA0D8FFDC59F790CAC512D966297380E90' : true, - '8117437E2D53CBAF96B03A772D719EA4783D32C4401D6C590BA9F941C52E54FF' : true, - '8133AEBBA592FF513EB1EA61723A0CEF57A583CDE66794FA9DE2FC0A8F573B54' : true, - '814328B3A40AA4F30950FF66E5DF4304428357F2C5AEA8C1E397723C751651C6' : true, - '8179173BEEC9E5175036B790F2CED009213A8FF7D62CDED95DE000BE2B03B068' : true, - '81978F89C67611A83F0BF14A51B0E10B80BE74B659A922AEB49A53E652030AAB' : true, - '820CD9756E7EC92E85459F6F260007CD5EB8CEDCF0A7EDEF61271196CFB946E4' : true, - '82362F61201C87FE00EC65651619A9328FD56E81135F03ACC3D4B366F7F772EB' : true, - '82F25208D7357EE223C6715E802CD0F8D019E3004DEFD76A90BFAB18D2DF07CE' : true, - '83596674713CAB21FE42B21B3B20A84E3B5FF47B8C7A53FA7A83E6A909780003' : true, - '839596D68CDA901FE0D021E3F9AAA8D2163FD2B41F233D90159E656D7C7C534E' : true, - '83FE18CEB7B7F20CF40E6B0CF5752E9C318C59479162649037981222CA9EFC5B' : true, - '8429A60996289DE8FB13E507080F79DDC85415E7BD78B07AB9A20AE8CFEF692A' : true, - '84A093B67AC79FA09CC2E40B54BE4027DE363B86EDF64B623BC346188B877ACF' : true, - '84A8C623C4304D57CE03893ACBF4E51FC9975C58658B89127508E5C33BE992A7' : true, - '8502DA6C4457ACBF635D8B3719166A351ACB8F2EAE0F9756EC1636B90CF6068C' : true, - '852E459CB1D06493912BE1BC7073CC188379CD530C4C5F637029E31C5BF136C4' : true, - '8540F78EF676D50879CFF30B3CAFCDCDB1287CE9472D0E39AD221AC0B049BF5C' : true, - '8565CBCC3E3484929C4C2D7408530788E83FF8CE2B8502125176AA2F89D3C350' : true, - '857EB3AE3D76F7A86260D7DF2583D65053D7DBC30558CF41078A51A841A15408' : true, - '8627217D9525127A4161D0F1809492211C4105596A011CCD2F10968D3C3307CD' : true, - '8632291EE6C74182159207F88A43B60EDD3715D9B23CB51B878C7DFA413AEBAC' : true, - '867622FECA6ADC5366B8B7EB239748F8BD90435258DD86FD700ED1C7D8D5D48B' : true, - '87505A19F4BF8A251C9F7EEC090BB5F91FF1FBF950EFCC6BFB9B513EBB62AEE9' : true, - '87676E5A79E6109B7C7D671E94CD66D181B0D8A1FEFE73FB4485EDBFDA886D26' : true, - '877B00258FBC7D02FB4ACEC3DF73B1F62E6507DEA0C8F12512EB10FAA3FB7F86' : true, - '878F9A1345B5F3F76831E0AA2CEC43E51FD88455FD70FF0C671DDB8D8646BECF' : true, - '8798A29F91634076CE7FFE713E075C4A9E231DB4113DEEFE4FF052C73E900069' : true, - '88309337C547D8D229017278F74A626BAE5E796E3209733D4DB626300C8E7527' : true, - '88E384C8D565A472AC171FE6EF8B5E7CE909CCF207710A6CD96FE4B110EB5267' : true, - '891419933107B0EC0222BF502DB271240F352C825D2E32776842C40D13C2F8C1' : true, - '89EE7B469928739A68120E926B0E08E296C0617FD7226EA8562EABB75C870891' : true, - '8A0BD2A91793B98A002F45011E47B8B81C1F11CF4F10550B39861B709A22A8B0' : true, - '8B1225A29F8C7203B6154A99814B028517B03B3D4B5A3E25239EC91650206C0D' : true, - '8B263AB07FF99A5799F92D421AD4E1194C6137FCD96E6E27EC440EF4D1421788' : true, - '8B41B56DC76B41CBEF93FD4F1F74525CF5B11723140CB81A7DD29AA3D95703BD' : true, - '8B9A4D566E925173442D3DC26FFCE9C4F64EC63A10312AD5EE279BEADFD2538C' : true, - '8BD1BB8CD29EBAEB36A58AFE2BA070CBB92EC003064B71AEC49E812E39C2874E' : true, - '8BD3D0A64D73FCD8450DF0224F56F2B44F88D2B89B94EBBA3B5CB7E905DFCB74' : true, - '8C4AA99089DE2B772FA47DE3D9901FE175AA49A46B9D056BD8211B53848276AF' : true, - '8C742B891F670721F4F8E1D4DADEC74C9E9256E0C7D132578973823FE27C3A33' : true, - '8CB5F19E2297781F0BE655C983127A501F5DF9C2414E34E6534F9109EEFC2110' : true, - '8D0CF6F0B227BE9394DA0DADABAB81A44900D104A915645ABF030220F3AE187C' : true, - '8D1399FC7382FB9F29574FADD5757DD9213F6A13D8A318ED9F60B9936F46C548' : true, - '8DC7006EF66CF140FB5DF85CD6876D305F4CD69E49F42503E283FDFD978866AD' : true, - '8E778C2C00AEB79E3C3BD5B071E2102021DA3E343A2F39E18B0F114682974D9C' : true, - '8E795D5F2117043F8EBC55A114E169A460FBC05FDA6E32CA66684A3F8C9D9BAD' : true, - '8E7B767A2628C52A105B12B793B74B95DD2A1FA5F1F0924675AD9DEBCF77186F' : true, - '9055AB7512901D1134842CD2E96FA6A7ACD149ECB71088495948DB65D70C5377' : true, - '90B043789B50C7E4AF14615A1DFA5F0794C919B38F8924BD109CD3A33FADE0AC' : true, - '90C2F31A64343BA4CBEEAC90A43FCBDB46932CC21CC58095FB6D6CDA7B33F362' : true, - '90C90EFA3BCA09204457ABBDB583EFE2FD5550877B0D61FC3CA6D4176DEC7916' : true, - '90DBCC78B8F09351F0FFA7930D8CD187302A623703E9ED7F5F9DCCCA5644F32D' : true, - '90E64A0F26C4DB9ADC398C779A5E526DC969AAFEDD0E93CC3D8E8409EE0A14E5' : true, - '91045740421F423B4863813FDA01E15F2DBFFF49AD80C9B732B0921980734999' : true, - '9122BF7F13DF3B05605A0F292B4C90830F29A3196A5156D97B76AA8507D3FEB2' : true, - '912C3FC6899CD7AF6EB7639C9522EBF7E41B91DC47C167AAABB3695E61486538' : true, - '91490F346E9CE34F77126105D7CB01AD7C58E0891B398289095613F1D1162F6C' : true, - '9155BD4E0154F175C67770CD7B10B714A7AD41BA78252254DC0AF2DECEAADE32' : true, - '918B02B75417DE289310E10FC77AF7041D1F380F02939D64F063776F121AD61E' : true, - '924BC74FE59554AEA09046C36D47000CC6DF8D06D63D4C21E7A11D7B3FE6DD92' : true, - '926B2CC74A86E6919298CF1B5D43A44E70214CC94C416E9DA227701666BBEE6C' : true, - '9295435D6B38A570B2F537814147422BC442A7E39E1AA307550DDEF0AB93C3DC' : true, - '92BF7C35E4A9C241A5D5C74AB7723187BE0D0AA544447BEC0EC3AC45BAC91A8D' : true, - '92E91A15A0542407788FCD78EF9287724B2B25A27F703C9FBF2F5BEE709A68F3' : true, - '92FC5C28899C60D64BE77DDC8D6F746182A5C5CAED5A3CA093E6A6FC8070B64B' : true, - '9360AA88AB130BC33B6A59487B3C78262E210EE98A69A28758C47B7A9F1FEC10' : true, - '93CF7CB34FFC1835E250AEB5503591EB1BDAA9377A48484F57AFE07006E966B4' : true, - '93EA9238869ECEAB7081D1B925AC899BA4AEAF8C838D08B0583526D924EE5663' : true, - '93FAF638AE932CA9041AD738D265C4A3A5E80ED99C8DCBF40717C0772AFE479A' : true, - '944AFE4D1EF232D595CD97012A5F2B7FC3BB113B29E806516B5C749D947DE751' : true, - '9452917F8C5F6F630305312187EA4858EC07A829CC74DAD74BA24EFE7F4F883D' : true, - '948FEECECF512A9AD8200FB07E9330ACFF0D53D8C67068A9367225131840200B' : true, - '94914F5DC57650D56AA2A25D6BEA5610F1E167C05274CBCC1A235FDF399B1C7E' : true, - '94E94CDC7BF2592B3403AAC8ABDC98EEFE04298078B2FAF8DEC490B30309E542' : true, - '94F858E57AC5AA1A13209E8D6DB28141036EDF3AE160BE93AE79A7CEB0CA33B9' : true, - '95130BCD7669BD1B1F2FF94AF3096312509FE7FDC95A535D73F7883CAFB18DE5' : true, - '95A4DD514D4B5F9B29118B3CE20FD8D4996F40424D7D64BF678A252262608C70' : true, - '95A80082CCA2E52DFF16CA0E49B9FFE32F7ECB93770D20913605BBD47A2C65A6' : true, - '95F4DD2172DA363A17D9A230EA3385F277EFC74D1044C6C6D7F78BCC95987E9B' : true, - '960B5A0740783B428A6F0A86DD6BB5AB90A0FD0A43C237F941E64D8ED8417998' : true, - '96325E2201BF96695DC1378E91147E8AD4ED26C7D65049436FCC365BDF45C75D' : true, - '9663C730BE3E8838AF256662B79C2EEC10D7AB2595D9712EAD7BB4C8F5454837' : true, - '9668363E5A4509F63E66C774CC7374E8D7654D0D63E833131665F65BB0116D90' : true, - '9703B5D60B49A69534FA129729FE3176EA17E03C53BC90BF11280C050F776E73' : true, - '970B1C70C6B3BEF76B0C23BC02D38D50DCC90C1383B4B45525691213F0439310' : true, - '970D20E6919A2FACA4E42CDD5E94B6F26ABB2AC051278F10E746CFD897996249' : true, - '976ECEBA965B747F498F8E4D26E3BABEFC48A6DD2645210168D7D82BB97C15C5' : true, - '9787C483E07B0D1A0251A93D9F86495C6E39D25375C395E9939145D6C1E818D6' : true, - '978A11502BA1AFF09010E88EA0735B0DF403F36294566EE8DB01CCD036525893' : true, - '97B6986F21E5CA4BCB2B337C1B03AE1F2DE4B69D972E06DC882514831472E6B0' : true, - '9874E435B3A12419DA88FE7AE98EEFA9DE47D098DC95AA6204B499202AB1A0CB' : true, - '997FEE57A95C9A7D469F9055CE8547F9585677BBC655D67C05CC30D0AFAB35EF' : true, - '99BD9F4C25AF74058C9E443467C9FBA76EB37661CBEF5A1E1244D8077200A250' : true, - '99CBBF6AFBFF1BD3AC24402B5F4D3CBD7B6984131B6B0A6955AA3295B92891F0' : true, - '99CC71A07B4304B5F9392B1D2AE627E33EC83F527206B3C1D0E6EDB41A93EC07' : true, - '99D555755AF5BD6B75B7151D7B70EF10912AA159589F47DA50C4C3C623044666' : true, - '99DDDA7A8D6D222C3111DDF5E85A45261AE9A7CAE2972567996A7729D0FD6E68' : true, - '99E2609E0CDCFD36015CC659568D5C5B01CE4F7FA0C5671738D525FD8C518B44' : true, - '99F02B4F32B9993CB7656021DA511B31A2944585B6B9C6DD5BC1F4A41681C5DD' : true, - '9A01E5759613554A5FAEB7E8889F18EEE16568073CCEDEFA0485F01969535C43' : true, - '9ADA51307C3FA225DB6F8E1FA3A218E477F775FA3D3DBE839232E3C385310902' : true, - '9B128E182D224AE31F63FA92892A8A322AE42BF2D4723D62F5A6744973C82F6C' : true, - '9B37ABC1012C67357E1B828C3F70EF7584EA128D20968DA23969B0BE939CB83B' : true, - '9B80DD5C98B0F0A7AE343DBB896DBCE45DA52EB4E31BE057287A2A738D9CE3D6' : true, - '9B8B430BCC7FFDD28FA85A1B18690D76DE8F18DE340656F63BD1472816A3C83E' : true, - '9BAE8B30BBFA182D0BC3DCE5BADF78381980EE69F15884A0B93F291EA09A7EB9' : true, - '9BEB9D4CF88A648ACC9CFFA48A687370D76E9F8188AB3BD638D9BFABD2D6AB24' : true, - '9C052D1467B80EC3013D5641910680BFFE3616095B7F3FE61338C31A4E08A6A5' : true, - '9C07BE98C75118CC9B3EAD57210BBADE61461FBE9215CBB340BBC5F04823FCE1' : true, - '9C07E1B1AD0D395C4E1DE4CA35F84D0D09FB5FE48A22221A0CEA433D47C5CE39' : true, - '9CFB4802809B54253FD655390678454D0AFFE4E5B0239AF6E4D5CFD90FEF6931' : true, - '9D00AADBE77F1BB0DE4602AFBDFF9B202A7E4B696836AF7C5186F4A26ADB5157' : true, - '9D10CB4207766E66BF3482393E13D3E3BB23AEC361470B6693597632FDAEB302' : true, - '9D28BF964F6C820DD26D42FFC18689C1D2FD43F4C4DA9B35F11CEB8FA24F2073' : true, - '9D98952A99B9FF1B2B7A86D21F50E311B3147CD9475830A856A4C63798B05630' : true, - '9E1FEA6617DEB24D7E3DCCACDCE1C98337E581262A08D42EB3F912333E977D39' : true, - '9E418F784C18C79930946ED9BC408D8E2F694BE1E3DBAE4BB20917F8E1B277A7' : true, - '9E7B765C4D2E62EB9F8D0CA3126FDBC518E9AD62449A3BD25B849697A6898257' : true, - '9EBA1808D31F89FD26CA580E6FD37B15D0261A807154FBAF11A7DA4B0C9A5E06' : true, - '9EE2376792A6437F098A3DA7A2CA9AB54D9E9138051FB201CF84A91653C9C32B' : true, - '9F1B06851A22B5D02399C278BEC2F6A977B918C4E924497066C8126CB8CEF0AD' : true, - '9F31E8A729CDBA0C25E4D73181264776E6DC12F264ACDE58F047382B0326E463' : true, - '9FB66B76C9B0AB6ED5DA3188A3DC6FCBC369AB273DCA99468C1EE4604A1E9E99' : true, - '9FCBC4D11F68EA0BC0AD58F9E775C871625E869C9C6ED647E538EEB55BC2EDEF' : true, - 'A009E34551A5963FBA989DEC7806F779CFB3BA34C5DD675A331BD55410F8EF33' : true, - 'A024128989862D72CA20143420C8437F2E91D063A2D85E3B44C0E9F125DC7E59' : true, - 'A039ECC540EAB00B2B41960B77171CB8B451230566C595F4631651A389C49A7F' : true, - 'A0516DBC87026108B694F794B6C040585995F9C7BB00D08BF9F817D4F54069B6' : true, - 'A08110BB7D0D5F694D791F82071E44B4C968D4990C73A402B25E0E0ACA5EA6E7' : true, - 'A09F67FB2E70E4BAD3197A8CF7273531D0125CBD5BB05BE09E53CF582CA90E41' : true, - 'A0B9ADCD27CD63E8842BAE80188453C09DEC27270C32748A4EC2508372AD36A5' : true, - 'A10BD98A012649F9DD627093BEC6687C8954955E251534D016E4022BA66040A0' : true, - 'A1359CA553460934748962D75921CFB51E3298EFD3FB1ECF5823BAF599E56136' : true, - 'A13EAF82F0814BE5FA12BFB4D2FFBB75FC6375DF19E16B8490D140CFEB54AEE3' : true, - 'A15BB49CD56693B9881AD43F6366FD2966AF816643BB107E8A249E07227F67EA' : true, - 'A16AFE3B66D38B2B59EB35AE36A050AF2BEADCA90BF1C705B14E1E16A9469543' : true, - 'A16BC03AE3E35E7C39B45D339A22BEB39CEC134D6B9CCA289E873F91A384DCBF' : true, - 'A20571EB3FCEFA102CE99C087F9217BD081AAA8DBB618558D49EC7364AE2CA72' : true, - 'A2178486A6B30A68CF5FE41C0968CB43B78E5E569B163027419B8B6C99AF0053' : true, - 'A2263FF0D63F93183AF81B16964F4C8A3AB8A02E836CDFEE2CBE32C3E09EB486' : true, - 'A277B893194AE7687EBBCFA344178B3578AA6228D2B430BBE2FC8D5EAEE43135' : true, - 'A278FEDD023B6A1BE29917353E38320B8D8EBED9ADB0F88A8D00434D9B1A0851' : true, - 'A2C85895E192F69BFF3BD6CE420B8C84A6FC87B3A999F84701F0230887DD3344' : true, - 'A300C56C8CB909C4F6ABAD6A7FCACC5E621BE17D5209717912B3F3BF2F7D6CAF' : true, - 'A3CDDDCD6C81AEFEC436E5ABF463775F26FB7050A51372C1AD3515626FABF6FF' : true, - 'A3D68A1A93E75E8250BE2851500FADA3A3F3A0FB073197DF59ADCF9569C22B4D' : true, - 'A3F3E71EAE7D9B913059174B39113F3EC7A119F514AF8364983A4A5548298427' : true, - 'A41920689CEE150BF8CDA57D32B36D32985FE08AD4F0E52D150D1CE5C7096810' : true, - 'A50296CC1D9C76EBA1C32829FA4D1674846913D61D2B27F3896CDFF8091D34F5' : true, - 'A503E853F535F69CB099A247D5FA9D2F656CA1992C65C050CC5A36FF11DD47FB' : true, - 'A57EE515604253DDBB4FFB6C1FEF243E6F680910808147AE52318A02699220FB' : true, - 'A5DDC8B597C05D597C4B2FA0C2C4C39C7FD384E039D15BD205023A47FCD78CC0' : true, - 'A5DF74566E059491858A87805B36E5060095F7963D35877692C2951C1D649E22' : true, - 'A66BDA4B1FB0A132F118520414B7C2FE89EB9CAEA7E599743F0DDB2F5DA36294' : true, - 'A686BB3EA8129BEA261D5B99357BDD2BC22DE15F0140AFA2D7CA3ADBCB64DE14' : true, - 'A6BFA26366333691E7F2B419D0FD8536949D5F1A533D69CE8E64F7795CEFF72B' : true, - 'A6CFE13A11E87665A1E66FE984B4F6F723CFBC22311FE89CDBEF719A62C91539' : true, - 'A7BBF060D6455FAC1B40C3C14FDC8DCAB6B032A3C636F78EFF0035E035D2A289' : true, - 'A85EC0692236ED65D5C36943B771F81FA013E93A887264C8870599C858456241' : true, - 'A8FFD3DCAC35478A6187DB3E317D7A9BA8D9823BDDA70440B8FCD5D83F49B836' : true, - 'A905FD2FCB5494E9126BFD0372D166EA641B4FB9E0162E56FC70085392036974' : true, - 'A9913780644EF0A55C80B8BBFFA76A7453DF7F9FC04E9BB09FB9434240D03961' : true, - 'A9C3D776062E86182D7BFAD9005B716E1189EBD051D477078341EBA83F602DC7' : true, - 'A9DC93714FC4909043621557714D90CD0FCEC20AB7B8D4D96C2A5CC357599837' : true, - 'AA33D12B28CCA921C5DAB6E8055B0F162ED6B6B9F92D85F93749619165B1D3A2' : true, - 'AAA0B610FC8267716C7703C164E8E8A47B0DB68F821405F83AFBF5F4D7BB5219' : true, - 'AB21EC1EF6132DBC69161985F4364C39C1F3F4F2F26C920EAF9741C5057CA6C9' : true, - 'ABE32C06C939CB27C5B7744697B92399AB712132074139162FD988DD108C1061' : true, - 'AC1199A88C3BB6564557B6BA422B776E8032D9457EE1099D0BD3E53DC44F73F5' : true, - 'AC3DBED034C44698984D68EA44B0B3D74C0DE3B7615C3240A71C1709958DC3BF' : true, - 'AC523FD08C897CD327DE0751BB2C5DD6AFF7A6948D7561478E300AE758F9BE77' : true, - 'AC72106DE06D4C1A17E641546E6DC5C53A1F48FCED34B9BD09368429F828CD70' : true, - 'ACA129E9ABBBC9473A45F1F0688C8FB4BB9E7B9965D8BA382DB371575A2100FC' : true, - 'ACAB21C4AB1A6C2220A5B2AEA4C51C7F409BD8B48B32158AB4EC7503991FD191' : true, - 'AD38118018119E7607C26A4009331772532E32D5514CB6099FFD0AA2DBC55912' : true, - 'AD56E6AD659C808689220F5959DECE86001E37EEB88F452E2111BBAD634B4AFC' : true, - 'AD678FA6695065389D8B0C4E8995AE0A598A6E6BFA5CE1E016725D396651419B' : true, - 'ADEE2E350B52CF5BF6A5E4670B0F6BDA48C23D331F0E9B18FD3EB4A45E503FC1' : true, - 'AE3359DA4CEE82D978C3C7B4954AD6E0A80E53D1CEDB3A6262996F9CA0B77D83' : true, - 'AE387E179AFCB2F919BA3BD839B2350E9EF48A03A5B5AAC0B87517502456F051' : true, - 'AE7D10798CDAEF50F7599FB03394DE7DED48C3054CE987479DB018E789E3718C' : true, - 'AEA0E3A8AC6F70B681BDEFB28D9F156116F80230149D8E5C9DE76E9062EC015B' : true, - 'AEDE30ABFD76FFEFF77B437F8862FF677913239CB0DE0360FF93EDA6B515F731' : true, - 'AF6F25BC29AA257FB80826165B3AA5BECB2CEF777817998D0619544F02FAF897' : true, - 'AFE6418D301202651844A84CC8B19A56C479D627DE922366E532643D995470A9' : true, - 'B00A011214BDCCCAEED615B5B662C3A704ADF8C619C1538BC7D98BAC4D39E33A' : true, - 'B03FB37D54CC8E27E281D02BF684E553FFA3CECB66583C141A9C99B22E1D2BB7' : true, - 'B05633EABB92254800392A31FA1627F077F2C91B29D82CF1EB1D507EC7D44038' : true, - 'B0A3CC901A3D58371289521F9345843F7ADEA438660729BE9B7B520DDB0BB965' : true, - 'B145A895F26B09540185848A600F7F58C0B03740C17B61A1B43BDC652740B80B' : true, - 'B17B2A39EF0B4A01171DCA730D2AA7214B570F692ED75B439B84B1EFE528F7D8' : true, - 'B19BEC326EB5F611BA8CE10410932955840A0818BFD2C1C690BC1C06C63A686F' : true, - 'B1B0AFC6B60DF8FFA9CC34F7F7A5162E496F4E12FAF6886BD0B20A1DEE246028' : true, - 'B1B58B7EEBC1947CB840FC4C2713D0DDB23DEBC75E58DB15610AB4EA9A1DE1C3' : true, - 'B1D9B3EE2512A48A8E703E2D2263EEB4B0A3D24963F5165DB3719CD4750D2986' : true, - 'B2618AD6AE584F2CDCEC050ECB0FCE8E5BF0E9E978AFE692E4A1BCB8B7D03044' : true, - 'B29A6DB4686379EB52C1D8F249A74FA55A1DD9F2162B0B3E0683912C1E942437' : true, - 'B2AA11D7E16E0A583868904825CE9F856AB1620E0EEE95218985C6817DCAF38B' : true, - 'B2CB5A2A69339A575A4198D5B76822E6A0F90871A45C8348F2A060CEE67EC98D' : true, - 'B31C07387E56AA457F17CA3D3A4C485683253CF387E6DCE37469B6A8E51CBF29' : true, - 'B33419AF991DF06128CC6A1EF6CAD190F68C1903CFB16B5346D0653C9C5139CA' : true, - 'B36285188019C24567BCD0F0FD9C0AFC1EDBC6494F401A6214496118519C8AEE' : true, - 'B38307BF753F924511125E6FE9542C79A8541FCC780FF6905BA237A4C7FCBB13' : true, - 'B394D63292D829C96CB346802B997C42285D8DB94292166AB984F5264BBF8C96' : true, - 'B3B278DD571DDC491FD26D3B0942C78EC4A1AE3D9A5D07C1E317CE901E6B8979' : true, - 'B40348577B02967F8EA86C645C6FFE8746DBE860F8D04B1584E9365F85115FCC' : true, - 'B43A735BA55D1C7D255F8E14DE97ED2FC89DEEF492BF38E871556FE7FF1712E4' : true, - 'B478303C0A26FF8A262C29BA3A9683FFC4CF075735E637F6A958640C5EC33669' : true, - 'B50AADEEA7AEA0CC344AFC4BDC81C75292E1F52374DC4E405CA9376CBA5594BF' : true, - 'B54B1776D34DF92E8E090FBF0C927D9852E6F18F98E6F306AE0369229A4AE2E6' : true, - 'B5826AF547B2C4FBB118246774B8C027E7E18255F864395300F07B03E43571CE' : true, - 'B5F50267B0042B154B8529FCD98F5E01C986F7D23628B49B63011A3C90398CEC' : true, - 'B60986E6211152854AE63CBF6925EEEAB8FE0722F24FF6BDC2960FBB5073CC40' : true, - 'B75601AB7AE44FB2C77FF1E9C6FBC4B4D9ECB548009BF40C46CDDBBA8C0FE493' : true, - 'B76A1B985E6C2B027BBD67B29109789DC4E2EF90CC65315E164B88ECDD64FD7E' : true, - 'B84E356014F669D463F72970212816B4F70CEADA86B8FC08F71EB4B9975404AC' : true, - 'B8560406CEDD4A4721BBEA6B155D62C62BD3CB0B379F6D6420A464DCD5973FEC' : true, - 'B87A6FAC22CF54752FF918799C09D2D582F3621A35F1AA5751AB86E5A56EEBBA' : true, - 'B8D24CA4AD6AB12946ABF8793A7F38565A05866EB8364E746D498F2600782857' : true, - 'B8D51C21B0EC70C695421685C76E543D87A7D1345BA395CB4C5D0E14EDA07A91' : true, - 'B9891F4ABEA7FE5802FA2C07E596905422C39B16E36612B37FFABB81F49A0BCA' : true, - 'B9B8984BD73419077A912955DEF673CCB572907E2C494256D627DCCAF86226A0' : true, - 'B9EC2202B3D25F6C2CFEEC96ECB1967C1171197A121F6278682988D68C9CCB6B' : true, - 'BA4C966939F1680966D9B9BC85E5E7B011F51BCF1F41FB01142D603F9A45EE3D' : true, - 'BA5B818BCA65AC78BB2F0B33879F721058892D0F5260266ABAD93045D4A3E1E8' : true, - 'BA74E086962745CB5EDA606276E3FCE2220C2EDEF5824FC5D67EBFD1A94A0685' : true, - 'BA7828CB29D5F67285C2E1A6F2F5982FDD674E57609970BF9540802335E9D39C' : true, - 'BACEEA64658C6E86E126219A40FCBEE7B3A0C7687503114E59B3EF28E0C06A19' : true, - 'BB6970E212CBF8325822B968387F263BA8D6CC479F448CF712381A36C92965DB' : true, - 'BB998A2EEB4ED3C4251EB69296AE91EAE7360B0CBAF690FD250C38A710ACB38A' : true, - 'BBABDCCD647C247047D39ECC57EECD8174CA5A8CF00349B1DAA1DEE75AEB84E9' : true, - 'BC7FCB90CF245804DAF432637A53FDEF6B5F88BAF87EB23245AF20C668CA74EA' : true, - 'BC86367AF49A238438C89460780C94DE2C1E49021437B3DFC590A63F46332888' : true, - 'BCEAEC2D8B8C18B58BD320D77850EC38285F419ACA8A9E939DAE7DFDF26696D0' : true, - 'BCF2EE107D285BD0BCB864C39BEB0171DD94657D761DB1EED17DA1D5F8E7D576' : true, - 'BD2B6A9DA30AAB3D39906793DB2C9C238C7260EC5B8835CCF8D9C58558B4A945' : true, - 'BD3379DFECF46E7BF128D0C1BA77D7179ADFAEF6BE7259A47E026ADB7C91975E' : true, - 'BE6E70EB169369668EF9523107E95867B1B9C0320C750180303720B35CF09798' : true, - 'BEA63BBA0D4C8E462D0FE2722B9ECC23A8E6E89905E19C15362BC33458D47CFA' : true, - 'BEA7ED0A4C77505CFF6FAEA9F1B399C41324C52804D35EE4D9076F726C8D2C4E' : true, - 'BEEA29655F2F0DE938C7460012B5265BDF623C09F11529CDC33A4B6BEAF96616' : true, - 'BEEB38B82A906102D7CD92E5FD98661DAB5D3C9B7DCA9DE3533565EA9607C5EA' : true, - 'BF46BAD48562C88CA9B110FD99D88DF43EAB728810C78F12A062C292876612B6' : true, - 'C0144D1B67F2AB403DD08B73E5F1772F050E9713D8F2FD98BE999FCEE51D2792' : true, - 'C096DD5D0925878000E9E48DA0C004D04984A98194E4D4E5F12D86D4C1D477D8' : true, - 'C0AB8B4E884A20E51AB9325567115F185D18654803E08E2C2C6A4632D7ACC2D0' : true, - 'C0F030365B0F33FE3624CCAE4EB7A81BC7B9127966953E82DEA179DD1AE66458' : true, - 'C1529D3D2B287392E5CFF924DE47B904B2BE179468929FB61D10D5B8F02FC8CD' : true, - 'C18C15016390F78742A45137409C8BEAC8A0475E39A444448D3ACE0499546462' : true, - 'C1B3EE2242FA7C7A57EE2F60C7AF3A514906864C2785544E30A013212ADA059B' : true, - 'C1E47B7AE65AB520DC18A03F063101FD14AB70E868F16DB2C42ECCBEEEE5A6D9' : true, - 'C1EB50953EE0D16410A5DDFD97F5C05060B39F2902807F139EF6B015D0C66729' : true, - 'C2118D84846AAB7DE521B0379672EC639CFD745D82E3D504EF68CA723725C5F6' : true, - 'C24539CAB91F915751D6D0DC8B96C0EDEC32C8244F388DBBED97C03080227B9D' : true, - 'C2C9A263D5F88D7064870FD13AB8633A10CD97E8281F0ECC49C2C1C3F54327A6' : true, - 'C2EC6DD4A6B571933F5DE0F94508D629FAA849B1A31A8AB979DAAECFED2AD253' : true, - 'C2F50D73D45CFC1B6EED268BF85650F9FC709E3E60900A52F8FFB32B955BF0E8' : true, - 'C3045E5B6AF9BF030A6A7113CD3303D23962DEB88E15EA62BA53D0523362AC26' : true, - 'C3107C690BA5007E11C076B2FEB58BF88E67D1ADA15DF1B8280D226177AB6A13' : true, - 'C33DB47CE54F64CE33394E20A96D122EFB6F8DAB2584CF26120D8A8C5C380245' : true, - 'C33FE55FBE5E1E767E0FA9FE89D0B287AD7B3A41E1117461BCE96A681030C9AE' : true, - 'C34069193CBFC866E03EB745416B50B25BBCAA00B5DE50D1D62D3365749CEDE4' : true, - 'C34CDEA10E72069587970C7033095864B6F069B6637C6263A1E7A7A5187923BB' : true, - 'C35CD8ADD8FF80A9CEFC31D3E0DB613D725FDB0BE52B9ECBB730E970A59E7E98' : true, - 'C3DCE474FB44F22E6497A1FCE2C45DEE167853134C6F1C21C13F1707B0BC7FBC' : true, - 'C3E16A5C58334D5CF450AD26F45BA93651A8FA036170B7D6A76DDFA0EB52EC07' : true, - 'C41706089A520406BBBDFB4ECABC4FAC33920CCEE6731CD703B502612E316E54' : true, - 'C436047329DDEC73634D393BA82EF0DAED888279608EEC33426BC825259BB389' : true, - 'C4C5E3161080AAEAF488DD97BF7C5BD5527EC28370BB83EEE9C979F03638145E' : true, - 'C4D6F5EE0EF714732BA04504333775AA8535825F8BCE4DF3FB6B44C3633B8BF7' : true, - 'C58563CE93B0DF900E0681376244F32977F577D130320226D3BD9CF82863402E' : true, - 'C5C58D7B5A145FD684B3A5A6D12468617BE9DF323D37015420BAEFAFC086EBA1' : true, - 'C5FCA59FE803B0F5B7BDD9387C65A1A5B9CDC8D0C76B79C2954CB769506DD1F7' : true, - 'C62633FCB5854BC091CDEDB3B7B6C6FD8C1403DC0E2ABE789DEB717F724BB8DE' : true, - 'C689F3B9238DB156A7D563E76DF45FCA607B4B5F6CD62BDDC1AD1AC720E67952' : true, - 'C6F63ACDAA452E008A1DCC711CAD36D00AFE55F958F2CC82A139BB53E27D11EB' : true, - 'C6F893D20A417841D7584A029E6E6A2A44B044D858ADFBAD4B11F35B7199309A' : true, - 'C700D31BDB3076006337BC249FF7CDFDFBB8A3677F206CB475E7807FE6FBE286' : true, - 'C7056A5FFEA8A4751271C17CAA9EF3BBDB7142A08ACA673522EDFD9AD18AFE66' : true, - 'C71294A0124420512711C918C36F77192D2B45CDF8C99824B4BC862D0B31C3B0' : true, - 'C7C3A02A4A1C71C54C37BE7889E60467E9C6A48A64FDC85289598188F4D2D839' : true, - 'C80206FCE84D0B5CE5844251C567526E26969DB81D52F15734C69DC4078472DE' : true, - 'C80317E42E46F8B391A27CE8A30DB43B8982BE7350749D6530131711D4CCB28A' : true, - 'C936FEC68191D7AF75334834906C8CFB18F91FD53BDE7C2F0B2ACF8100ED3855' : true, - 'C959CD326D9F3AA21FDEDD42A5AF0B7A2FAA5E9B92907654F29F1ACDC691DBE6' : true, - 'C97F815DB2FE0895632311CBE80C5A8F99A025201CDD3F70939D5C1E1BADC94C' : true, - 'C9A9B118F63E40C8F5F73E89E580626EDEE028DF8ABE5D3374CDA69459207CDB' : true, - 'CA46DA728E76E97AD214DBB6AC9CB1EA2DC87202C88C35E87CE574FC1F2E0438' : true, - 'CA529AC5A7489D57CEC2D6BA5881213C5A163409BD6946558DACFE899A977009' : true, - 'CAAF21212D1AFB10BA4844150A49541967BC1C9879801E43064429A632DFD941' : true, - 'CB133229997821E418467CC3A72F77A7B9E31CC62B41032D6A82577B7AF1C6A2' : true, - 'CC2E477D4A2640BCF70F232C040954DFC4878E536A4B03E788173E673A2D31FD' : true, - 'CC73DEDCFB8EC2BD78A979BAA47FB8D1697C38BD286E0F4A716619939D6F495F' : true, - 'CC9DE9ACA31709D03188E3FE36B902288F56A3AD1510AAEBCE0881A363CB8B66' : true, - 'CCD4C850054C2E89024A8E78E337518B9137528B9190B9417E182E6CFA0180B9' : true, - 'CCDD0AD541F322CED13EB7E00654FD567B39EAC71E146760EBC9D5C736329993' : true, - 'CD2F8D3520116EC6F56491855CA3F0794A0DA8AECFAC5022026E7DD844F35047' : true, - 'CD35C7ABA0839C0D865DEA4C1DB624F709E5EA041A68DB55842E2C189F38BAC1' : true, - 'CD77980905D47EE1EF9C53EE9682FF6AA8ADC7F04CD17CC06F9D7CA2EC8E2175' : true, - 'CDEAE34CDFC82DA38149F11C995A2971D0564D619F13C5867FAD21C749BB4E3A' : true, - 'CE77D1F5ED11C8CA34DA5DBB0E999CAB0469D215552BCAE775B1AE6ED072F01B' : true, - 'CEACC5425237EED1F7736E13A92AE0A70A94F15EB08B564D0CDEA3EB042D1BF2' : true, - 'CEB1ADB71C3CBA6FD012A778BF70CC93BEAB621B4DA4A464934C5440868E58C7' : true, - 'CF16F6A03813485A44746BAC08788ECF1BDDA70E60A03EA6E8598798CD2DB75A' : true, - 'CF19B1004488D5D9C882E2C4D0A47789618E0BCD6475F6D9C6B5591C2BF333C9' : true, - 'CF2A79710CABB0EB440EE621B37934C249C50612DB4FF926EDDE5B8A30686BED' : true, - 'CF41907FD2550A0AAFF0E09AF82423DCFDFE470F225A003D607C19F709A591CC' : true, - 'CFDC25BD3A406CC65DF19685CB300D33E13AB2F2064BE7071ECA3A6F76AA3215' : true, - 'D03547E78303C9FBD70A38BEAFE87AA9F266A92275D818D1A8758DCB9D08DAE0' : true, - 'D103ECB2B7F74BEFD44109C1CA30EA92D9016C0F9347F1DF3E5467C3AC20221B' : true, - 'D182B5FCA42FF996EFC43E57CA3FA6B6723F9BEBBEE8E718BB017C719FA10275' : true, - 'D27084DE959A5900DF81A94F79A92293B11E0CBAC666D43784A28ED4C0D42F00' : true, - 'D3676F00560CED41E28BE263ADFC10B602DEA2026CAD2C7E77E9AA585E085DFA' : true, - 'D368841DDBBC15C7CDA82090EB95511736C97FDE82BA9AF5F95114653EB5234A' : true, - 'D3946220D26CD68E238632CD7AD63FD62669D9F60770C62788747C7552AEFC8B' : true, - 'D39BD0C1656F99A47DA9D2957E2D7A49FC9EDD92CC6BE729C29299ECECFC42E7' : true, - 'D3A74C371854206A5756470274FB16A3D7280E959FF93F265650A3002030B78D' : true, - 'D3ED8391B1F4FB1151D105C9E7EB6D66B0A588D9A8BF7AC93CF38DA44B99979B' : true, - 'D44DF644880E56596405F1364D8C3E5301F05ACBF82FD66B671D895288C75360' : true, - 'D462D57028E10CB7A7C87ADA83EBD7FE9B4DA384D2971BD7A708816C4EA8711F' : true, - 'D46D29E4176A93E3DCD80BA5861A87E84FB7866B784488A977E7E4E4076DD2BD' : true, - 'D4CB5B06AF9ABEBF5639377BF36B289CA95A3205A84537D36B4506DF51430669' : true, - 'D4D6C947FDD2599121B7F10FF6F1892CA98D3E07D6B34D29BB74B24AC34EEB3B' : true, - 'D53A4E1FB44B5C282566F8AC28D68A76E12B76EFEF719AED86F11D15BCE9A0B5' : true, - 'D5B0165C0F4C8F14A2E0C2310AE4A51B6EA08D2FD9790DFD49BCF3FD78AD5198' : true, - 'D5D5E4B278DB8BEE14CB48FEB3172C48DB575E96730449A30A35EE589E252C2E' : true, - 'D652650A3DE79A5C0DFEC1925007DA094925533D13F14094722A80F936FC9A8B' : true, - 'D7198C80471105D95103DB11B6BD2F6CDC8E7A7E67DB8329F1FA75C5F5D5E8CE' : true, - 'D76E8E1051EE6E7F951F42F6E342112B30DB14169B5081E55D280CE44BDF85BF' : true, - 'D844DEE1597B654C0E645C787DB52F6EA5C855C6C35626BD7787E71E873CAF8F' : true, - 'D89779E2C6899073B88547C48EB71C93D56B021E33D3BA390255E6D104B4D349' : true, - 'D8B59B698E3702C610DE464F210086F776442C9F21698AF779BC04BC5F3D09E7' : true, - 'D8B6CC82BEA51A5BDEBA5B3B046B0D1965528CCF70B8F7D27E57A99CDD87D226' : true, - 'D8B8F53177C1E04D93746C8460A7296707654094814772BFAD31F79C03802240' : true, - 'D8EB3A26B3132739539EEF2B7E3EB472578112D5D8AE470B0F2CD4EE99250ADC' : true, - 'D904379306D37F489337D71508E1CA3FE9FDC8188286D24265D3437BC069EA15' : true, - 'D942963C31649F76D7F96313922A7B163B631AF72FF9962767D6E4DB84026B62' : true, - 'D97CF453986570998A9B529709574C7A2EC1E7D43CC42A659A5CD908CA3CED89' : true, - 'D97D72D7A8F796A1A27E0DA0A08C075DE294F373E2480A76EB9D93F89EC58B2D' : true, - 'D9D5FFCAD69421840F7A7159B3F8641F050A53EBF2B91D909C2CD7455FCC5C7D' : true, - 'D9DD6D21944C5623DA765567EF61919B1F6BF2B1E8E79137B5BD48F4AF75C405' : true, - 'DA0D9391992825F7A10312F7E85568086F18DB901838A303E721E58239158EA0' : true, - 'DA5110BB1526CBA9E86FBC66B91A8A2880E85440765C9208A1FF4D3DF2E8AD65' : true, - 'DA675CC41023A78B1E4B2DB4B5E43B0BB6BAD64327E0A1B70C9350FFDEBABB4B' : true, - 'DAA1D178C143A35B8A1F394E17F2551770019947EDDA18E8FAAB45F643C1E443' : true, - 'DAA9CED5BA817CED9942DB9CFAD0210505937A9DB2214298E0BEB831BFC8A31B' : true, - 'DAF6B7470355545FF9FF41E11016056CBD9537558F503D7F9C049C8ACC446112' : true, - 'DBBF2D4498ED91C779C81FED5E96F9B5210CE86EA463712268BCAF098FE2E285' : true, - 'DC04E4E5B03D875F796835B599AE226470B9ACDAF0DC79AB2F766B77AC59F3E5' : true, - 'DC7FCD5741DC383619A2CFFC85E1CB100CA9E20FC499E37FBD8CF954559F1421' : true, - 'DCA17501D12F98C84EE99DF4BC8EFC1FFFA9B65E2BC5A92B20C9296EC61C96CA' : true, - 'DCFF47F0DCA2B78BCEC9D6F35E84BAD6803DEC85A888028C9DBA44A9B69C5BC2' : true, - 'DD55F1E1BEBA4CF9F582CBEEF4A35E1C1DE36750A3403489C1C98955FCE9950E' : true, - 'DD64C7D9E60AE6748B449ACE8CF9C21B5551BC6427EDDCE1D77B7C7720FD21E4' : true, - 'DD69E7139111F9129165D58471784F634EA8C13B76D4AB65D43BF18CD5864004' : true, - 'DD98420C927FBBBB0F2D1FFFFF359416FB7B352770A6550E3D68BA33CC23ED57' : true, - 'DDD0BC82A32A5341EFA53746F39B0D88C668E0483D705BDE607F071FBE937062' : true, - 'DDDEDD50F49CDC46A4F576F1C571CCCF6F32F2DA30CE9BE228DAD3599BBC34DE' : true, - 'DDF758753965C89E747CA6799902A045B22F473F654CEDB51B3C0CA0EA01BB51' : true, - 'DE327172F9BCDA3DBD4E6EEFC759F3EE88FBC635BAD34D76E360541420CDC8BC' : true, - 'DE411E4537133A4D436E0D730AE192277792AA1D0584E60B1CECCDC736F53407' : true, - 'DEA472B5BED8DA9F6F5539F8DC66FB5340010F7316FB28055E14EA76E03BBE41' : true, - 'DEC7DC8AB8ED70C1D2FB2875F0F99FA99FB53E6BED70CD47B244ABA2104DA5AD' : true, - 'DEEB105F77ED36DAECBE1AEC896736B7925F56C86BA06FC1A43AD5F35E9E914E' : true, - 'DEF20D4F0C0D98AE8C9786C364182CCD8990A834C96C1F0989AAE9ECAF33720F' : true, - 'DF03F73A71A568E6A05A7E9FCE240EC0254EE86E24790D6DFCCDC71A5763C27C' : true, - 'DF0525A7807F3709BAD2DEC2ECC569A1D473F97F0C382C932DF726C79926DA0E' : true, - 'DFD291C1074E972A9FE6261BE6FFDDA85472A8AA7F543C867F53B7D8946478DB' : true, - 'DFE3CB9DB34E3CDE7E6B641C90D116F906DB0C916C5B437308CA502C756C6331' : true, - 'E09CD94E0A501BB4D25D5BBB02CCAE95A24D0BAF8CABADEC9D55A74B7D2C5BD8' : true, - 'E0D373C9758BB237C4E5C616A072F192E0D11EC0E48ECE22A326ACE69E3CF771' : true, - 'E0D7FA4702E25E7F51F94DD0D12C39A352DF48DE10A5249AE2687CBC15020CB3' : true, - 'E0E11F4703CA92B8F0837DDE262F347B3EE57238914F7AC07BBF332636B4CCD7' : true, - 'E0E75FCABD59C24DDEF932396FC86801979D2DD3BE05BE7CA211B4661A5897B7' : true, - 'E1595A9AA15B24610100AEB57ED619460CA1D976B769B856398EADA5A01F952B' : true, - 'E1DBBD569E797BC58D21935695EB6EF34DAD0C82FCBB4F4A1C5E644EF161F190' : true, - 'E22F7A2669FF7B9F9C89B3BB1B0A5FA485C26A697CF2418869394A0710AA5EAF' : true, - 'E246BBDD2C2C4AE987C41CE0185AB7669DE3F9C9ACB7453145234A9CD143A1E8' : true, - 'E297439120E6E2701069440EC321BA98A5CFF9EA3F407FF16185671E466B87F0' : true, - 'E2D55EAADCF87AD1BD50E53B7168CCC08561F0172004C1EC4DC13D8166D1A313' : true, - 'E321AD541727DAEC0801A774095546FDD0642CDB597A7AD431C6BFA5C7F447E1' : true, - 'E32ECC9EEA662085C10C003A5C910D77A6DCC1E99BD187576EFDD1BFA84591C4' : true, - 'E335D8CABE2F4940CA80CA10A6BE55A138A163E1C56C281165FBA3FA601C61A9' : true, - 'E37314E72C7304D32336940ABB576DBD7BE3190CD9A5E8F87413CEEB7579D502' : true, - 'E381DF6792973BFE322D23C6CF2A6C24A4ECFC77F43F03D2FC04EE39FAD7C683' : true, - 'E4866B48A6E45C4B11326D3FC5409D4AC595DB81D59075FF1AF4815ADD15B54A' : true, - 'E4C5A51B3B2DCD2472B1FF0693DB5E0FD6FD2F3F3A6CE0164AC1521B9EAF38D4' : true, - 'E549DACF42BED70415999CB677AD037F972087B39E6B2C20BBF2E3473AC8BB49' : true, - 'E586C4E5A9238BD1734FF71658C8054309968EB94188660D70EA0E2511F49D7C' : true, - 'E5F65E0B9FA619FB212BA4DE4AD7166DF37C0690AF8AAF30DD68E2B53802DACB' : true, - 'E5FA7806C1E6122EE6F7B008711DAF068DC6FDE60B2A5877DDEECA8A23F96586' : true, - 'E600D8689E99AEA0C40D363CD164494D463AAF3763797D6F9FD8EB1EFB9DFBA4' : true, - 'E647F0EC7153DFB3D17ED1F82ED36B4D21B5EBA39940BDD88B41AEE7620D90D8' : true, - 'E66C27C6E02A21FB8D6CEF881E5BBDCEBF6CA94DE15E22BA1C80A7F2DDDFCB99' : true, - 'E696A05D698717888181DFB7B903B380E42454076BA429EC8AB0FB58206AB166' : true, - 'E7D6E1EE5088D460A94D5E16D305D1F575BF0895237E4F79A483538CB12903FC' : true, - 'E7EB8B4D5DE598BED2B9C817AB7D42F1EC99F16640B8C673AF2152D42F5344C4' : true, - 'E80145830C085D838E07095A18AC3178396F8D552B3D77A6E15B2E48A6C00717' : true, - 'E853498E9A3091B0AF8641A0B62970AB613371CA3631D1C97D70F79042BB00D0' : true, - 'E855A1B90A017AC7A8C20639AA316048160973669FD0058C9237B5FED85F34B7' : true, - 'E8CEBFAFE4D31D8F110DF0D61793BFC32B10492A2840D7DF99922E78000030BF' : true, - 'E928047ACF80352DE21C59864D3DD5C34E7325E52821D7D30A0F112677EB660F' : true, - 'E98FAFA6B8EE0C53407805C761D80684215776CE5F4085CCAC91B876E92B3307' : true, - 'E9C07A0196B2C73344FAFBE8488F0B4E048FC4112B8EEDDDF74F949340255E44' : true, - 'E9CFA5E0C69E623B15F54AF73644E6FD5B0F86F24826F378F7C903D50A1AAA28' : true, - 'EA028E45F54FEFEE8D14D2E848A20950C7CB1F8532D70D01646A5B93497AC1C5' : true, - 'EA7AD4DE86B47BEC726BFE21172676F92E0C0BB86888417916CB3123086E84A1' : true, - 'EACDBC29504EE8E44559D3FCF154E1CF632CBBB4065734CB5C6C1B16D42352B5' : true, - 'EB479C3872B58B510211798256705A8C59D2602125CF4B53219AA9CCFB175E1F' : true, - 'EB59182D7ACE742ED7D7AEE751763EF9F09EDF68D1DDF765E80BE40A53AD0E10' : true, - 'EB6B1F16F70E3080F38E7ADDC7E3AB69164ECD068F5E8F15931575FDD62B0A64' : true, - 'EB6D34EFBF063DCACDFB823734B9788D9FB5E22A48372B7EA8AAFED8046652E1' : true, - 'EB907252FF62CCF97B16796B9106686C4260E682878EFCA7721D37D6B8C83319' : true, - 'EC521C3B04AF772AF812B63555A7C24BDA282C06EC619E1766CC346780EC6E04' : true, - 'EC9E1FA91BBEA7C9B4EE73E8DD1CDDB8A2038E1CF61CA11A41A9372B634CF37C' : true, - 'ED0908FC61ADB97F583F8CBC9629E4AB369B6141A16B682E8F9076826A373E6D' : true, - 'ED4BB615EA54DAB9EDC94BA434DC0B194FA5EB91BCA7E1B05CA9C21ACE3E4A43' : true, - 'ED4D737C0BBE1DC2CD305D8A912D1C1D923C1C4325401D66349541F754233B53' : true, - 'EE3B7480B691828ABEBECA3DB0EE96619F01E886FC959942F6AB7EB3D263A237' : true, - 'EE49B2B0E38A16743525D6CEE70CB71038D43094BC71BE2EEE861E4602B6D891' : true, - 'EEEAC8F1C70F20FDF05D777140A4A5F72AA9FEABFA9699F9B0F5120147A26486' : true, - 'EF0EE2FBF54D87B6AC02AEB88050155A27E1A60A5A8C4AC46FF24B529D912B04' : true, - 'F094E7890A2B177AB1517C2EAA8D1DF0F69DB94633C4A510BC02CA8D71B36403' : true, - 'F09ECA7EC8BF7B582C42AEB4A0733A0D40FDFD28CEA2C70DA1BBCF1FF85E29FF' : true, - 'F0BF33EE5C1D9A83A7BBDCDE95426DCD201D1C071CF1FB58CA4FE3776996A99F' : true, - 'F0EDB0C989C20672BAFC51FA2710F3841BA5793BE379FC212D7ACC3AD4743455' : true, - 'F1147FBF98A54E12693453EC571CE8B86C05D7FDF3995D775DFF135E10B9C520' : true, - 'F1161FFAB7AD2257CC0ACA0147C47FE17DAA44BA9E998AD59E063871EF95C8C1' : true, - 'F15E12419E936A907F201FD9D6D3DE2E01E5F8465AC4D8EDDCE1E58262183223' : true, - 'F1B73AEECC6698895051EE69179C3897A1DC398C2D72DDD720A29F9C9520457C' : true, - 'F1EC4F6CADD8B97B55AEF8AFDF69AA2261D10B641023C4F8CC895E5F26301D3E' : true, - 'F22F96FB88C9D96104167D95B3AD8B5888C92680B0AD13DC785FD5AD3E19EDB7' : true, - 'F234FBFD807A0302CBF855175C73ABF27C94915B95135E3146C0ED73662DE3F5' : true, - 'F2E97D43FC9356095F97C4B20A626D620D8C55230C07CD7BBF7F99257CD6A5BC' : true, - 'F2F02451FAEE938066E557577740D09ABE2A499CCF08504BF3BB1633EBAAF559' : true, - 'F35B9D7C54418022E6FD4FDFE88C3261FD138329A11C013AD640145D40BE934A' : true, - 'F39D175463288D9639AE5C852B945D89ED858548F8621E5DDC29853E8C84BE36' : true, - 'F3D480D69675A57DC2061544BF7F52B631BB02716680C0E5605413C9B2A6183F' : true, - 'F4F3D03488B8B699725AEBCF9033B73C8997AED2D4504891EE4FFAC3E7CB4272' : true, - 'F513DC8D7F8B425FCF55E74BDCF2675EF2ABF98523E5226CF8A2391B0A36A919' : true, - 'F55617B92584757BB516B19BFCBDA9B4A71237075487651831CD9C5F9C6F5F29' : true, - 'F5ACAF2324A7AF3B1D2AE6C0D1765F5EDA51129FECADFC97878DAF63BA8B75A0' : true, - 'F5D715B6BE56D1A677ECBF7C26B4D79716F5EC2D2E2EC323ABDFE3442F40BD31' : true, - 'F5E43F516D61A0329F78A2560454B8346732A9420C172AC9983C0BEFFD8DEA0A' : true, - 'F5EFB0566F96DBFC58848E1F101457F6F2D05904C1F91A4D22B1192787B0FBD1' : true, - 'F62CA149D43A56F24345F70DD17EAC3E6232068AD7E06251AEB42ACAE23BA120' : true, - 'F6620F848AB3CFC1695D2AF5399FD8FDD8F2FEC43F73F2924DF78C1A26C22653' : true, - 'F6719127E9730A196DF5D961354756211240F34C5279D39351C3DBBBB2896244' : true, - 'F6D424B2B0304F80F9F57E9A501576769B75304FFB569A1118B9B0D5E72561C6' : true, - 'F7835EBD5236BECAB435AE25E9D79BB389DFA8462D552965A2B901ED70B4FF79' : true, - 'F805AE1FEDB2D94096F0D341B703ECD4975D773A179555DDC83D424F85578571' : true, - 'F83CE9030678A0476F8285DC93E59D83E91E8E0DE214E0BF80278EBCF3BFDA43' : true, - 'F894E6B109C27D8C32BFE2A88BACC5DD8BEFEA514661B0509643E02A68A107CD' : true, - 'F9AA3378654B8DAE243713E502260C71E88F8AD2B7021072A02574D09E34D1A0' : true, - 'F9B011926D3405A3B902B76FD7DB90E8A62429A5A34ADAD21B9870446D425130' : true, - 'F9E220AC82D672997DC20E9EE89BF0713BC4153FB5F2EBC8D9AC9EE35A6E494D' : true, - 'FA324620CEE61AFCCA03A0B31508287FB4A78CCE65362F979770B7AF69CA0AC1' : true, - 'FA616BE68A75F14CA6331BD5BFDBE3840CE34CC3C3C98E3C8C3E10F027389F2F' : true, - 'FAD57B1698DDD7EEDC68ACA2B91FFC327696BA682F8B1DC7CC18D058EDB48632' : true, - 'FAEDB6948B44BBBEB18CC3DE18788AD31CE938A2BA36BD84765BF47728C415E9' : true, - 'FB26AD0A3ADB010EB9B8C70998BA5AF151F8CCF1B31312A9AE5CCC3B8E4F709B' : true, - 'FB81BF294DB8EDE0C4DFFB7F5528EB3EB406FE435A6D62E6894482D8B42CCC48' : true, - 'FB8410F5AB21257DC1971CC27F60A1BD1F7DA0962DC5FB97C240135C3BB6DCD8' : true, - 'FC072A7AD4E6E41680493AF4BEB98215D4D2F7CE040C95004BB3A1621A9DD513' : true, - 'FC7B49DBE7843EA61C2BE33A5EED8CB6E7B23605FFB783948AA4B57608A20DDC' : true, - 'FCA9C3A036EA797D58CA26F793C98A9952E59D37C35E352B67A30D4F8F49FC7D' : true, - 'FDF0D11B28F98D542D2D0B2658C0CB0CB46E5E155398B8739AD968944B4C41FB' : true, - 'FE075A2C82D9FA253B59B401A7A31C4AD5D17FD66FE393D8EE5ACD7FA478743D' : true, - 'FE2ACBE26A3ACFBA15C9C3425A9A06EED0006E94A82669BFE3BE705D578021D6' : true, - 'FEB76D3D961661D830CDE04D78FAD83736F60E3D9473688418FB1DE7AE942663' : true, - 'FEC9F5C500456C61F90439F04F3E1B8884AEDF07BD5A35E6DA8A8FC61731F053' : true, - 'FF3E77DFF8C24FE2DC89CE8757B6AE9ACBB838D35AEBDBD9A29D099E211380BB' : true, - 'FF4B63FB97FBFD55B9173F648FA145576AEEB91D0166D79F1A0087A8235538E4' : true, - 'FF8C4E466EBCD5BD1A16F83E6096501479D74D077F84F2EDEA264781DFD82270' : true, - 'FFA2F572D6F89A48043006E117D0B7B7F1D8FC7AC8C264EFD491422A38AEBDE8' : true, - 'FFAE947BA6D3D7E8D31D04F02EEEE60601B0200ACDEBCB12AA5D617F650D5FD0' : true, - 'FFB09E8C7F4CCA88C213AF60CD7047B85A6085DA93C7C3C7D3B73C57FA05702F' : true, - 'FFFB09720CCEF3A610BCB81EEF5FCD614C1602D4968A9DE8400C05256AEDC1ED' : true, -} ; diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json deleted file mode 100644 index 106916d..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/commonOCSP.json +++ /dev/null @@ -1,289 +0,0 @@ -[ -"https://safebrowsing-cache.google.com/", -"http://ocsp.pca.dfn.de/OCSP-Server/OCSP", -"http://ocsp.digicert.com", -"http://ocsp.verisign.com", -"http://ocsp.comodoca.com", -"http://clients1.google.com/ocsp", -"http://ocsp.usertrust.com", -"http://ocsp.disa.mil", -"http://ocsp.quovadisglobal.com", -"http://ocsp.nsn0.rcvs.nit.disa.mil", -"http://ocsp.camerfirma.com", -"http://ocsp.thawte.com", -"http://ocsp.serverpass.telesec.de/ocspr", -"http://ocsp.certum.pl", -"http://ocsp.certisign.com.br", -"http://ocsp.entrust.net", -"http://telstra-ocsp.pki.telstra.com.au/ocsp", -"http://ocsp.a-trust.at/ocsp", -"http://ocsp.godaddy.com", -"https://ocspaces.trustdst.com", -"http://ocsp.identrust.com", -"http://ocsp.pki.auth.gr", -"http://ocsp2.globalsign.com/gsorganizationvalg2", -"http://ocsp.starfieldtech.com", -"http://ocsp.pki.bayern.de:8080", -"http://ocsp.netsolssl.com", -"http://ocsp.europki.org:8026", -"http://ocsp.starfieldtech.com", -"http://ocsp.treas.gov", -"http://ocsp.trust-provider.com", -"http://ocsp.rcsc.lt/ocspresponder.rcsc", -"http://ocsp.globessl.com", -"http://ocsp1.wosign.com/ca1", -"http://gtssl-ocsp.geotrust.com", -"http://ocsp.turktrust.com.tr", -"http://ocsp.quovadisoffshore.com", -"http://eva.orc.com", -"http://ocsp.incosolutions.com/ocsp", -"http://validator.wellsfargo.com", -"http://jjedsocsp1.jnj.com", -"http://ocsp.cybertrust.ne.jp/OcspServer", -"http://ocsp.digsigtrust.com", -"http://ocsp.trust.teliasonera.com", -"http://ocsp.harica.gr", -"http://ocsp.pki-services.siemens.com", -"http://sd.symcd.com", -"http://ocsp.catcert.cat", -"http://ocsp.certificateservices.eads.com", -"http://dc/ocsp", -"http://ocsp.wosign.com/ca", -"http://ocsp.swissdigicert.ch/rubin", -"http://ocsp.unimelb.edu.au/ocsp", -"http://ocsp.gandi.net", -"http://ca.multistructure.co.id/ocsp", -"http://ocsp.buypass.no/ocsp/BPOcsp", -"http://rapidssl-ocsp.geotrust.com", -"http://ocsp.tcclass3-II.trustcenter.de", -"http://ocsp2.globalsign.com/gsalphasha2g2", -"http://ldap.takata-petri.com:2560", -"http://ocsp.dpwn.net", -"http://ocsp.certyfikatyssl.pl", -"https://ocsp.quovadisoffshore.com", -"http://ocsp.swissdigicert.ch/smaragd", -"http://sureseries-ocsp.cybertrust.ne.jp/OcspServer", -"http://wongtaisin.ms.local/ocsp", -"http://nsc.vrm.lt/OCSP/ocspresponder.nsc", -"http://ocsp.webspace-forum.de", -"http://ocsp.luxtrust.lu", -"https://ca.e-szigno.hu/aocsp", -"http://ocsp.trustsign.com.br", -"http://ocspape.cert.fnmt.es/ocspape/OcspResponder", -"http://telstra-ocsp.pki.telstra.com.au/ocsp", -"http://ocsp.tcclass2.trustcenter.de", -"http://ocsp.inmeta.net/ejbca/publicweb/status/ocsp", -"http://igc.auf.org/ocsp", -"http://ocsp.certification.tn", -"http://ocsp.globaltrust.eu", -"http://ocsp.e-tugra.com/status/ocsp", -"http://ocsp.bezeq.com", -"http://ocsp.nsn0.rcvs.gds.disa.mil", -"http://certinfo-ocsp.ubs.com:53417", -"http://ocsp.tbs-x509.com", -"http://ocsp.ll.mit.edu", -"http://pki.utg.ua/ocsp", -"http://ocsp.accv.es", -"http://crl.itsumo.pl/ocsphttp://corppki/ocsp", -"http://tr-dc-r2.telering.biz/ocsp", -"http://ocsp.eme.lv/responder.eme", -"http://ocsp2.globalsign.com/gsalphag2", -"http://ocsp.ssl.com", -"http://ocsp.certificadodigital.com.br/serasa_cd2006", -"http://la-email.corp.valueclick.com/ocsp", -"http://ocsp.startssl.com/sub/class3/server/ca", -"http://acbridge.ds.commun.test.fc2consortium.org:8080/ejbca/publicweb/status/ocsp", -"http://remote.hirschmann.nl/ocsp", -"http://ocsp1jca.defence.gov.sg", -"http://ocsp02.telesec.de/ocspr", -"http://certs.vonagenetworks.net/ocsp/vonsca", -"http://ca-ocsp.disig.sk", -"http://www.isscorp.com/PKI/ra/ocsp", -"http://ocsp.digi-sign.com", -"http://ocsp.certificadodigital.com.br/serasarfbv1", -"http://certificates.medsigroup.ru/ocsp", -"http://ocsp.bee.vimpelcom.ru/ocsp", -"http://cert1.cert.internal.loc1.gathowin.net/ocsp", -"http://ocsp-ext.pki.wellsfargo.com", -"http://ocsp.innossl.com", -"http://ocsp.pcf.pl/ocsp", -"http://nts15.etoncollege.org.uk/ocsp", -"http://ocsp.dreamhost.com", -"http://ocspISAca.cert.fnmt.es/ocspISAca/OcspResponder", -"http://bt1svl0a.bpa.bouyguestelecom.fr/ocsp", -"http://ocsp.co.vectis.local/ocsp", -"http://localhost:8080/ejbca/publicweb/status/ocsp", -"http://ocsp.siteblindadocerts.com", -"http://corpcert.app.corpintra.net/ocsp", -"http://ocsp.nlss.com", -"http://ocsp.bobo-rousselin.com", -"http://cert.bioscomputers.com/ocsp", -"http://ocsp.lienvietpostbank.com.vn/ocsp", -"http://sslocsp.twca.com.tw", -"http://ocsp.mdais.co.il", -"http://pki.sana-bb.de/ocsp", -"http://ocsp.wisekey.com", -"https://ocsp.rcsc.lt/ocspresponder.rcsc", -"http://ocsp.startssl.com/sub/class2/server/ca", -"http://ocsp-cpki.telekom.de/ocsp", -"http://ocsp2.ssc.lt:2560", -"http://ocsp.it.point/RMGRCA/http://ocsp.extranet.royalmail.com/RMGRCA", -"http://eca.ocspts.identrust.com", -"http://ocsp.vkb-bank.com/ocsp", -"http://pki.automobiletechnologies.com/ocsp", -"http://ocsp.g4s.no/ocsp", -"http://vpn.ozero.com/ocsp", -"http://ocsp.village-roadshow.com/ocsp", -"http://ocsp.groupensia.com/ocsp", -"http://pki.rosautoprom.ru/ocsp", -"http://ogbl-ocsp2.ogbl.lan/ocsp", -"http://ocsp.southernco.com/ocsp", -"http://ocsp.swiss.signdemo.com", -"http://ocsp.itexcellence.rs/ocsp", -"http://www.cepsa.com/pki/ocsp", -"https://ocspaces.identrust.com", -"http://ocsp.dtica.eu", -"http://www.tys.org/aia", -"http://ocsp2.globalsign.com/gsextendvalg2", -"http://caors.wiltshire.ac.uk/ocsp", -"http://ocsp1.ssp-strong-id.net/SSP-CA-A1", -"http://cert.econgas.com/ocsp", -"http://ocsp.wienerberger.net/ocsp", -"http://ocsp.pki.wayport.net:2560", -"http://pkib.mallesons.com/ocsp", -"http://ocsp.ovh.com", -"http://ocsp.certificadodigital.com.br/serasacdv1", -"http://pkiva.indra.es", -"http://itcert.stanford.edu/ocsp", -"http://certenroll.bogdanov-associates.com/ocsp", -"http://srv-pki/ocsp", -"http://ocsp.godaddy.com", -"http://ocsp.pki.slb.com/ocsp", -"http://ocsp.swisssign.net", -"http://cert.naftogaz.com/ocsp", -"http://ocsp.uk.deloitte.com", -"http://ocsp.comodoca3.com", -"http://ocsp.exzumin.de/ocsp", -"http://ocsp.msocsp.com", -"http://cdp2.nis.rs/ocsp", -"http://corptestcert.app.corpintra.net/ocsp", -"http://ocsp.comodoca2.com", -"http://ocsp.ersca.com", -"http://ocsp.xth.cc", -"http://ocsp1.ssp-strong-id.net/VA-SSP-CA-B2", -"http://ocsp.vnpt-ca.vn/responder", -"http://ocspts.identrust.com", -"http://ocsp2.globalsign.com/gsdomainvalg2", -"http://pkiva.bde.es", -"http://certs.mapservices.fr/ocsp", -"http://ino.inosoft.de/ocsp", -"http://rootca.poclabs.net/ocsp", -"http://pki.rtc-leasing.ru/ocsp", -"http://ocsp.startssl.com/ca", -"http://ocsp.ca.vodafone.com/ocsp", -"http://ocsp.cs.auscert.org.au", -"http://ocsp.tcclass2-II.trustcenter.de", -"http://www.er76.ru/ocsp", -"http://ocsp.walgreens.com/ocsp", -"http://www.pki.nosc.us/ocsp", -"http://test_pki1/ocsp", -"http://ocsp.mytrc.net/ocsp", -"http://certs.ankalagon.ru/ocsp", -"http://www.ocsp.gpo.gov", -"http://ocsp.bayanca.ir", -"http://va.pfizer.com:1025", -"http://certificates.dnv.com/ocsp", -"http://ocsp.orapharma.com/ocsp", -"http://ocsp.seattlecca.org/ocsp", -"http://backbone.cnsd.interno.it/ocsp", -"http://nyppki02/ocsp", -"http://ocsp2.globalsign.com/gsorganizationvalsha2g2", -"http://gtssl2-ocsp.geotrust.com", -"http://ocsp.tcuniversal-I.trustcenter.de", -"http://ocsp.register.com", -"http://ocsp.ncdc.gov.sa", -"http://pki.life.com.by/ocsp", -"http://ocsp.sgssl.net", -"http://pki.gmprint.local/ocsp", -"http://pki.solitdev.com/ocsp", -"http://ocsp.dics.ua/ocsp", -"http://ocsp.pre.swissdigicert.ch/rubin", -"http://ocsp.affirmtrust.com/commev", -"http://aia.gdir.vt.ru/ocsp", -"http://ocsp.averius.nl/ocsp", -"http://ocsp.bechtel.com/ocsp", -"http://ac.ds.commun.test.fc2consortium.org:8080/ejbca/publicweb/status/ocsp", -"http://cert-services.e-control.at/OCSP?ca=EControl_IntermediateCA", -"http://nfiocsp.managed.entrust.com", -"http://cert.bernards.com/ocsp", -"http://bhca2.baker-hostetler.com/ocsp", -"http://pki.suva.ch/ocsp", -"http://EVSecure-ocsp.verisign.com", -"http://ocsp.go", -"http://pki.wabag.com/ocsp", -"http://ocsp.startssl.com/sub/class4/server/ca", -"http://nfi2.eva.orc.com", -"http://onsite-ocsp.verisign.com", -"http://ocspsslv3.kamusm.gov.tr", -"http://ocsp.pki.belgium.be", -"https://www.isscorp.com/PKI/ra/ocsp", -"http://ocsp.statoil.com:3502", -"http://pki-ocsp.allscriptscloud.com/ocsp", -"http://swoop-pki.swoopin.com/ocsp", -"http://kzatpki0002.okioc.com/ocsp", -"http://ocsp.policia.es", -"http://ocsp.startssl.com/sub/class1/client/ca", -"http://dc01/ocsp", -"http://ocsp2.pki.wayfair.com/ocsp", -"http://10.1.101.2/publicweb/status/ocsp", -"http://ocsp.bt.com/ocsp", -"http://ocsp.sanofi-aventis.com/ocsp", -"http://dc-01.raise.group", -"http://ocsp.spar-ics.eu/ocsp", -"http://ocsp.vodokanal.spb.ru/ocsp", -"http://socsp.turktrust.com.tr", -"http://ocsp.thermocolor.com/ocsp", -"http://ocsp.lisec-sw.com", -"http://ocsp.csctrustedsecure.com", -"http://houpki2.nov.com/ocsp", -"http://ocsp.bwinservices.com/ocsp", -"http://ocsp2.globalsign.com/gsextendvalsha2g2", -"http://ocsp.tcclass3.trustcenter.de", -"http://ocsp-b.pki.wayport.net:2560", -"http://devdc01.dev.gatesfoundation.org/ocsp", -"http://certsrv1.dc1.thomson-webcast.net/ocsp", -"http://relay.systemshouse.ru/ocsp", -"http://gold-root-g2.ocsp.swisssign.net", -"http://pecs1.unisys.com/ocsp", -"http://ocsp.europeanssl.eu", -"http://gw.idsaas.de/ocsp", -"http://ocsp.tcs.terena.org", -"http://ocsp.trendmicro.com/tmca", -"http://ocsp-ent.pki.wellsfargo.com", -"http://www.meridian-capital.kz/ocsp", -"http://ca.x-any.com/ocsp", -"http://crl.inditex.com/ocsp", -"http://ocsp.firmaprofesional.com", -"http://ocsp2.globalsign.com/gsdomainvalsha2g2", -"http://exchange.cdl.cz/ocsp", -"http://pkicvs.cisco.com/pki/ocsp", -"http://ocsp.affirmtrust.com/premev", -"http://ocsp.icewarp.com", -"http://ocsp.ferbritas.pt/ocsp", -"http://cert.energokaskad.com/ocsp", -"http://ocsp.utn.com.ua:2560", -"http://ocsp.affirmtrust.com/ntwkev", -"http://ocsp.omniroot.com/baltimoreroot", -"http://ocsp.shamusclan.com", -"http://ocsp.wurthnet.com/ocsp", -"http://ocsp.pkic.es/ocsp", -"http://ocsp.strixchomutov.cz", -"http://sha2ocsp.dnsalias.com/responder", -"http://ocsp-test.ncdc.gov.sa", -"http://ocsp.sysadmins.lv", -"http://cert.incoma.ru/ocsp", -"http://ocsp.north-winds.org", -"http://iis1.eeza.csic.es/ocsp", -"http://pki.winextreme.org/ocsp", -"http://ocsp.startssl.com/sub/class1/server/ca", -"http://pki.eduuni.local/ocsp"] diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js deleted file mode 100644 index 7e15f1a..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/sha256.js +++ /dev/null @@ -1,249 +0,0 @@ -/* - * A JavaScript implementation of the SHA256 hash function. - * - * FILE:sha256.js - * VERSION:0.8 - * AUTHOR:Christoph Bichlmeier <informatik@zombiearena.de> - * - * NOTE: This version is not tested thoroughly! - * - * Copyright (c) 2003, Christoph Bichlmeier - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * ====================================================================== - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* SHA256 logical functions */ -function rotateRight(n,x) { - return ((x >>> n) | (x << (32 - n))); -} -function choice(x,y,z) { - return ((x & y) ^ (~x & z)); -} -function majority(x,y,z) { - return ((x & y) ^ (x & z) ^ (y & z)); -} -function sha256_Sigma0(x) { - return (rotateRight(2, x) ^ rotateRight(13, x) ^ rotateRight(22, x)); -} -function sha256_Sigma1(x) { - return (rotateRight(6, x) ^ rotateRight(11, x) ^ rotateRight(25, x)); -} -function sha256_sigma0(x) { - return (rotateRight(7, x) ^ rotateRight(18, x) ^ (x >>> 3)); -} -function sha256_sigma1(x) { - return (rotateRight(17, x) ^ rotateRight(19, x) ^ (x >>> 10)); -} -function sha256_expand(W, j) { - return (W[j&0x0f] += sha256_sigma1(W[(j+14)&0x0f]) + W[(j+9)&0x0f] + - sha256_sigma0(W[(j+1)&0x0f])); -} - -/* Hash constant words K: */ -var K256 = new Array( - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, - 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, - 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, - 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, - 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 - ); - -/* global arrays */ -var ihash, count, buffer; -var sha256_hex_digits = "0123456789abcdef"; - -/* Add 32-bit integers with 16-bit operations (bug in some JS-interpreters: - overflow) */ -function safe_add(x, y) -{ - var lsw = (x & 0xffff) + (y & 0xffff); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xffff); -} - -/* Initialise the SHA256 computation */ -function sha256_init() { - ihash = new Array(8); - count = new Array(2); - buffer = new Array(64); - count[0] = count[1] = 0; - ihash[0] = 0x6a09e667; - ihash[1] = 0xbb67ae85; - ihash[2] = 0x3c6ef372; - ihash[3] = 0xa54ff53a; - ihash[4] = 0x510e527f; - ihash[5] = 0x9b05688c; - ihash[6] = 0x1f83d9ab; - ihash[7] = 0x5be0cd19; -} - -/* Transform a 512-bit message block */ -function sha256_transform() { - var a, b, c, d, e, f, g, h, T1, T2; - var W = new Array(16); - - /* Initialize registers with the previous intermediate value */ - a = ihash[0]; - b = ihash[1]; - c = ihash[2]; - d = ihash[3]; - e = ihash[4]; - f = ihash[5]; - g = ihash[6]; - h = ihash[7]; - - /* make 32-bit words */ - for(var i=0; i<16; i++) - W[i] = ((buffer[(i<<2)+3]) | (buffer[(i<<2)+2] << 8) | (buffer[(i<<2)+1] - << 16) | (buffer[i<<2] << 24)); - - for(var j=0; j<64; j++) { - T1 = h + sha256_Sigma1(e) + choice(e, f, g) + K256[j]; - if(j < 16) T1 += W[j]; - else T1 += sha256_expand(W, j); - T2 = sha256_Sigma0(a) + majority(a, b, c); - h = g; - g = f; - f = e; - e = safe_add(d, T1); - d = c; - c = b; - b = a; - a = safe_add(T1, T2); - } - - /* Compute the current intermediate hash value */ - ihash[0] += a; - ihash[1] += b; - ihash[2] += c; - ihash[3] += d; - ihash[4] += e; - ihash[5] += f; - ihash[6] += g; - ihash[7] += h; -} - -/* Read the next chunk of data and update the SHA256 computation */ -function sha256_update(data, inputLen) { - var i, index, curpos = 0; - /* Compute number of bytes mod 64 */ - index = ((count[0] >> 3) & 0x3f); - var remainder = (inputLen & 0x3f); - - /* Update number of bits */ - if ((count[0] += (inputLen << 3)) < (inputLen << 3)) count[1]++; - count[1] += (inputLen >> 29); - - /* Transform as many times as possible */ - for(i=0; i+63<inputLen; i+=64) { - for(var j=index; j<64; j++) - buffer[j] = data.charCodeAt(curpos++); - sha256_transform(); - index = 0; - } - - /* Buffer remaining input */ - for(var j=0; j<remainder; j++) - buffer[j] = data.charCodeAt(curpos++); -} - -/* Finish the computation by operations such as padding */ -function sha256_final() { - var index = ((count[0] >> 3) & 0x3f); - buffer[index++] = 0x80; - if(index <= 56) { - for(var i=index; i<56; i++) - buffer[i] = 0; - } else { - for(var i=index; i<64; i++) - buffer[i] = 0; - sha256_transform(); - for(var i=0; i<56; i++) - buffer[i] = 0; - } - buffer[56] = (count[1] >>> 24) & 0xff; - buffer[57] = (count[1] >>> 16) & 0xff; - buffer[58] = (count[1] >>> 8) & 0xff; - buffer[59] = count[1] & 0xff; - buffer[60] = (count[0] >>> 24) & 0xff; - buffer[61] = (count[0] >>> 16) & 0xff; - buffer[62] = (count[0] >>> 8) & 0xff; - buffer[63] = count[0] & 0xff; - sha256_transform(); -} - -/* Split the internal hash values into an array of bytes */ -function sha256_encode_bytes() { - var j=0; - var output = new Array(32); - for(var i=0; i<8; i++) { - output[j++] = ((ihash[i] >>> 24) & 0xff); - output[j++] = ((ihash[i] >>> 16) & 0xff); - output[j++] = ((ihash[i] >>> 8) & 0xff); - output[j++] = (ihash[i] & 0xff); - } - return output; -} - -/* Get the internal hash as a hex string */ -function sha256_encode_hex() { - var output = new String(); - for(var i=0; i<8; i++) { - for(var j=28; j>=0; j-=4) - output += sha256_hex_digits.charAt((ihash[i] >>> j) & 0x0f); - } - return output; -} - -/* Main function: returns a hex string representing the SHA256 value of the - given data */ -function sha256_digest(data) { - sha256_init(); - sha256_update(data, data.length); - sha256_final(); - return sha256_encode_hex(); -} - -/* test if the JS-interpreter is working properly */ -function sha256_self_test() -{ - return sha256_digest("message digest") == - "f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650"; -} - |