From a6859db4cc63f01951dcdb0ce8e5669e4e6d76a9 Mon Sep 17 00:00:00 2001 From: Cameron Dixon Date: Sat, 17 Jun 2017 13:29:46 -0400 Subject: [PATCH 01/33] Point links to whitehouse.gov (#233) --- pages/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/index.md b/pages/index.md index 7687ed9..b062bcf 100644 --- a/pages/index.md +++ b/pages/index.md @@ -7,13 +7,13 @@ description: "The American people expect government websites to be secure and th The American people expect government websites to be secure and their interactions with those websites to be private. -This site contains a web-friendly version of the White House Office of Management and Budget memorandum [M-15-13](https://obamawhitehouse.archives.gov/sites/default/files/omb/memoranda/2015/m-15-13.pdf), **"A Policy to Require Secure Connections across Federal Websites and Web Services"**, and provides technical guidance and best practices to assist in its implementation. +This site contains a web-friendly version of the White House Office of Management and Budget memorandum [M-15-13](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2015/m-15-13.pdf), **"A Policy to Require Secure Connections across Federal Websites and Web Services"**, and provides technical guidance and best practices to assist in its implementation. ## Goal This Memorandum requires that all publicly accessible Federal websites and web services [[1]](#footnote-1) only provide service through a secure connection. The strongest privacy and integrity protection currently available for public web connections is [Hypertext Transfer Protocol Secure (HTTPS)](/faq/). -This Memorandum expands upon the material in prior Office of Management and Budget (OMB) guidance found in [M-05-04](https://obamawhitehouse.archives.gov/sites/default/files/omb/memoranda/fy2005/m05-04.pdf "Policies for Federal Agency Public Websites") and relates to material in [M-08-23](https://obamawhitehouse.archives.gov/sites/default/files/omb/assets/omb/memoranda/fy2008/m08-23.pdf "Securing the Federal Government’s Domain Name System Infrastructure."). It provides guidance to agencies for making the transition to HTTPS and a deadline by which agencies must be in compliance. +This Memorandum expands upon the material in prior Office of Management and Budget (OMB) guidance found in [M-05-04](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2005/m05-04.pdf "Policies for Federal Agency Public Websites") and relates to material in [M-08-23](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2008/m08-23.pdf "Securing the Federal Government’s Domain Name System Infrastructure."). It provides guidance to agencies for making the transition to HTTPS and a deadline by which agencies must be in compliance. ## Background From e2d29b5ec05d7ed5fe2e92898e2ed77295dc5f9b Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Thu, 3 Aug 2017 17:23:19 -0400 Subject: [PATCH 02/33] Delete certificate-policy.md --- pages/certificate-policy.md | 1819 ----------------------------------- 1 file changed, 1819 deletions(-) delete mode 100644 pages/certificate-policy.md diff --git a/pages/certificate-policy.md b/pages/certificate-policy.md deleted file mode 100644 index dcb5aa4..0000000 --- a/pages/certificate-policy.md +++ /dev/null @@ -1,1819 +0,0 @@ ---- -layout: page -title: Certificate Policy -permalink: /uspki/certificate-policy/ -description: "Draft Certificate Policy for U.S. PKI." ---- - -**U.S. PKI** - - - -**Certificate Policy** -**for the** -**Issuance and Management of** -**Publicly-Trusted Certificates** - - - - -**Version 0.0.1** - -**October 28, 2016** - -For details on copyright and license information for this doucment, see section 1.1. - - -# 1. INTRODUCTION - -## 1.1 Overview -This CP describes an integrated set of technologies, protocols, identity-proofing, lifecycle management, and auditing requirements that are necessary (but not sufficient) for the issuance and management of Publicly-Trusted Certificates; Certificates that are trusted by virtue of the fact that their corresponding Root Certificate is distributed in widely-available application software. The requirements are not mandatory for Certification Authorities unless and until they become adopted and enforced by relying-party Application Software Suppliers. - -**Notice to Readers** - -The CP for the Issuance and Management of Publicly-Trusted Certificates describe a subset of the requirements that a Certification Authority must meet in order to issue Publicly Trusted Certificates. This document serves two purposes: to specify Baseline Requirements and to provide guidance and requirements for what a CA should include in its CPS. Except where explicitly stated otherwise, these Requirements apply only to relevant events that occur on or after the Effective Date. - -These Requirements do not address all of the issues relevant to the issuance and management of Publicly-Trusted Certificates. In accordance with RFC 3647 and to facilitate a comparison of other certificate policies and CPSs (e.g. for policy mapping), this CP includes all sections of the RFC 3647 framework. However, rather than beginning with a "no stipulation" comment in all empty sections, the CA/Browser Forum is leaving such sections initially blank until a decision of "no stipulation" is made. The CA/Browser Forum may update these Requirements from time to time, in order to address both existing and emerging threats to online security. In particular, it is expected that a future version will contain more formal and comprehensive audit requirements for delegated functions. - -These Requirements only address Certificates intended to be used for authenticating servers accessible through the Internet. Similar requirements for code signing, S/MIME, time-stamping, VoIP, IM, Web services, etc. may be covered in future versions. - -These Requirements do not address the issuance, or management of Certificates by enterprises that operate their own Public Key Infrastructure for internal purposes only, and for which the Root Certificate is not distributed by any Application Software Supplier. - -These Requirements are applicable to all Certification Authorities within a chain of trust. They are to be flowed down from the Root Certification Authority through successive Subordinate Certification Authorities. - -This work is based on the CA/Browser Forum Baseline Requirements v1.4.1, which is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nd/4.0/. - -All original additions and modifications made to create this document are in the public domain, and copyright and related rights in the work are waived worldwide through the CC0 1.0 Universal public domain dedication. To view a copy of this public domain dedication, visit https://creativecommons.org/publicdomain/zero/1.0/. - -## 1.2 Document name and identification -This certificate policy (CP) contains the requirements for the issuance and management of publicly-trusted SSL certificates, as adopted by the CA/Browser Forum. - - -The following Certificate Policy identifiers are reserved for use by CAs as an optional means of asserting compliance with this CP (OID arc 2.23.140.1.2) as follows: - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) domain-validated(1)} (2.23.140.1.2.1); and - - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) organization-validated(2)} (2.23.140.1.2.2); and - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) individual-validated(3)} (2.23.140.1.2.3). - - -### 1.2.1.Revisions - -| **Ver.** | **Ballot** | **Description** | **Adopted** | **Effective\*** | -| --- | --- | --- | --- | --- | -| 1.0.0 | 62 | Version 1.0 of the Baseline Requirements Adopted | 22-Nov-11 | 01-Jul-12 | -| 1.0.1 | 71 | Revised Auditor Qualifications | 08-May-12 | 01-Jan-13 | -| 1.0.2 | 75 | Non-critical Name Constraints allowed as exception to RFC 5280 | 08-Jun-12 | 08-Jun-12 | -| 1.0.3 | 78 | Revised Domain/IP Address Validation, High Risk Requests, and Data Sources | 22-Jun-12 | 22-Jun-12 | -| 1.0.4 | 80 | OCSP responses for non-issued certificates | 02-Aug-12 | 01-Feb-13 01-Aug-13 | -| -- | 83 | Network and Certificate System Security Requirements adopted | 03-Aug-13 | 01-Jan-13 | -| 1.0.5 | 88 | User-assigned country code of XX allowed | 12-Sep-12 | 12-Sep-12 | -| 1.1.0 | -- | Published as Version 1.1 with no changes from 1.0.5 | 14-Sep-12 | 14-Sep-12 | -| 1.1.1 | 93 | Reasons for Revocation and Public Key Parameter checking | 07-Nov-12 | 07-Nov-12 01-Jan-13 | -| 1.1.2 | 96 | Wildcard certificates and new gTLDs | 20-Feb-13 | 20-Feb-13 01-Sep-13 | -| 1.1.3 | 97 | Prevention of Unknown Certificate Contents | 21-Feb-13 | 21-Feb-13 | -| 1.1.4 | 99 | Add DSA Keys (BR v.1.1.4) | 3-May-2013 | 3-May-2013 | -| 1.1.5 | 102 | Revision to subject domainComponent language in section 9.2.3 | 31-May-2013 | 31-May-2013 | -| 1.1.6 | 105 | Technical Constraints for Subordinate Certificate Authorities | 29-July-2013 | 29-July-2013 | -| 1.1.7 | 112 | Replace Definition of "Internal Server Name" with "Internal Name" | 3-April-2014 | 3-April-2014 | -| 1.1.8 | 120 | Affiliate Authority to Verify Domain | 5-June-2014 | 5-June-2014 | -| 1.1.9 | 129 | Clarification of PSL mentioned in Section 11.1.3 | 4-Aug-2014 | 4-Aug-2014 | -| 1.2.0 | 125 | CAA Records | 14-Oct-2014 | 15-Apr-2015 | -| 1.2.1 | 118 | SHA-1 Sunset | 16-Oct-2014 | 16-Jan-2015 1-Jan-2016 1-Jan-2017 | -| 1.2.2 | 134 | Application of RFC 5280 to Pre-certificates | 16-Oct-2014 | 16-Oct-2014 | -| 1.2.3 | 135 | ETSI Auditor Qualifications | 16-Oct-2014 | 16-Oct-2014 | -| 1.2.4 | 144 | Validation Rules for .onion Names | 18-Feb-2015 | 18-Feb-2015 | -| 1.2.5 | 148 | Issuer Field Correction | 2-April-2015 | 2-April-2015 | -| 1.3.0 | 146 | Convert Baseline Requirements to RFC 3647 Framework | 16-Apr-2015 | 16-Apr-2015 | -| 1.3.1 | 151 | Addition of Optional OIDs for Indicating Level of Validation | 28-Sep-2015 | 28-Sep-2015 | -| 1.3.2 | 156 | Amend Sections 1 and 2 of Baseline Requirements | 3-Dec-2015 | 3-Dec-2016 | -| 1.3.3 | 160 | Amend Section 4 of Baseline Requirements | 4-Feb-2016 | 4-Feb-2016 | -| 1.3.4 | 162 | Sunset of Exceptions | 15-Mar-2016 | 15-Mar-2016 | -| 1.3.5 | 168 | Baseline Requirements Corrections (Revised) | 10-May-2016 | 10-May-2016 | -| 1.3.6 | 171 | Updating ETSI Standards in CABF documents | 1-July-2016 | 1-July-2016 | -| 1.3.7 | 164 | Certificate Serial Number Entropy | 8-July-2016 | 30-Sep-2016 | -| 1.3.8 | 169 | Revised Validation Requirements | 5-Aug-2016 | 1-Mar-2017 | -| 1.3.9 | 174 | Reform of Requirements Relating to Conflicts with Local Law | 29-Aug-2016 | 27-Nov-2016 | -| 1.4.0 | 173 | Removal of requirement to cease use of public key due to incorrect info | 28-July-2016 | 11-Sept-2016 | -| 1.4.1 | 175 | Addition of givenName and surname | 7-Sept-2016 | 7-Sept-2016 | - -\* Effective Date and Additionally Relevant Compliance Date(s) - -### 1.2.2.Relevant Dates - -| **Compliance** | **Section(s)** | **Summary Description (See Full Text for Details)** | -| --- | --- | --- | -| 2013-01-01 | 6.1.6 | For RSA public keys, CAs SHALL confirm that the value of the public exponent is an odd number equal to 3 or more. | -| 2013-01-01 | 4.9.10 | CAs SHALL support an OCSP capability using the GET method. | -| 2013-01-01 | 5 | CAs SHALL comply with the Network and Certificate System Security Requirements. | -| 2013-08-01 | 4.9.10 | OCSP Responders SHALL NOT respond "Good" for Unissued Certificates. | -| 2013-09-01 | 3.2.2.6 | CAs SHALL revoke any certificate where wildcard character occurs in the first label position immediately to the left of a "registry-controlled" label or "public suffix". | -| 2013-12-31 | 6.1.5 | CAs SHALL confirm that the RSA Public Key is at least 2048 bits or that one of the following ECC curves is used: P-256, P-384, or P-521. A Root CA Certificate issued prior to 31 Dec. 2010 with an RSA key size less than 2048 bits MAY still serve as a trust anchor. | -| 2015-01-16 | 7.1.3 | CAs SHOULD NOT issue Subscriber Certificates utilizing the SHA-1 algorithm with an Expiry Date greater than 1 January 2017. | -| 2015-04-01 | 6.3.2 | CAs SHALL NOT issue certificates with validity periods longer than 39 months, except under certain circumstances. | -| 2015-04-15 | 2.2 | A CA's CPS must state whether it reviews CAA Records, and if so, its policy or practice on processing CAA records for Fully Qualified Domain Names. | -| 2015-11-01 | 7.1.4.2.1 | Issuance of Certificates with Reserved IP Address or Internal Name prohibited. | -| 2016-01-01 | 7.1.3 | CAs MUST NOT issue any new Subscriber certificates or Subordinate CA certificates using the SHA-1 hash algorithm. | -| 2016-06-30 | 6.1.7 | CAs MUST NOT issue Subscriber Certificates directly from Root CAs. | -| 2016-06-30 | 6.3.2 | CAs MUST NOT issue Subscriber Certificates with validity periods longer than 39 months, regardless of circumstance. | -| 2016‐09‐30 | 7.1 | CAs SHALL generate Certificate serial numbers greater than zero (0) containing at least 64 bits of output from a CSPRNG | -| 2016-10-01 | 7.1.4.2.1 | All Certificates with Reserved IP Address or Internal Name must be revoked. | -| 2016-12-03 | 1 and 2 | Ballot 156 amendments to sections 1.5.2, 2.3, and 2.4 are applicable | -| 2017-01-01 | 7.1.3 | CAs MUST NOT issue OCSP responder certificates using SHA-1 (inferred). | -| 2017-03-01 | 3.2.2.4 | CAs MUST follow revised validation requirements in section 3.2.2.4. | - - - -## 1.3 PKI Participants -The CA/Browser Forum is a voluntary organization of Certification Authorities and suppliers of Internet browser and other relying-party software applications. - -### 1.3.1 Certification Authorities -Certification Authority (CA) is defined in Section 1.6. Current CA Members of the CA/Browser Forum are listed here: https://cabforum.org/members. - -### 1.3.2 Registration Authorities -The CA MAY delegate the performance of all, or any part, of Section 3.2 requirements to a Delegated Third Party, provided that the process as a whole fulfills all of the requirements of Section 3.2. - -Before the CA authorizes a Delegated Third Party to perform a delegated function, the CA SHALL contractually require the Delegated Third Party to: - -1. Meet the qualification requirements of Section 5.3.1, when applicable to the delegated function; -2. Retain documentation in accordance with Section 5.5.2; -3. Abide by the other provisions of these Requirements that are applicable to the delegated function; and -4. Comply with (a) the CA's Certificate Policy/Certification Practice Statement or (b) the Delegated Third Party's practice statement that the CA has verified complies with these Requirements. - -The CA MAY designate an Enterprise RA to verify certificate requests from the Enterprise RA's own organization. -The CA SHALL NOT accept certificate requests authorized by an Enterprise RA unless the following requirements are satisfied: - -1. The CA SHALL confirm that the requested Fully-Qualified Domain Name(s) are within the Enterprise -RA's verified Domain Namespace. -2. If the certificate request includes a Subject name of a type other than a Fully-Qualified Domain Name, the CA SHALL confirm that the name is either that of the delegated enterprise, or an Affiliate of the delegated enterprise, or that the delegated enterprise is an agent of the named Subject. For example, the CA SHALL NOT issue a Certificate containing the Subject name "XYZ Co." on the authority of Enterprise RA "ABC Co.", unless the two companies are affiliated (see Section 3.2) or "ABC Co." is the agent of "XYZ Co". This requirement applies regardless of whether the accompanying requested Subject FQDN falls within the Domain Namespace of ABC Co.'s Registered Domain Name. - -The CA SHALL impose these limitations as a contractual requirement on the Enterprise RA and monitor compliance by the Enterprise RA. - - -### 1.3.3 Subscribers -As defined in Section 1.6.1. - - -### 1.3.4 Relying Parties -"Relying Party" and "Application Software Supplier" are defined in Section 1.6.1. Current Members of the CA/Browser Forum who are Application Software Suppliers are listed here: https://cabforum.org/members. - - -### 1.3.5 Other Participants -Other groups that have participated in the development of these Requirements include the AICPA/CICA WebTrust for Certification Authorities task force and ETSI ESI. Participation by such groups does not imply their endorsement, recommendation, or approval of the final product. - - -## 1.4 Certificate Usage - -### 1.4.1 Appropriate Certificate Uses -The primary goal of these Requirements is to enable efficient and secure electronic communication, while addressing user concerns about the trustworthiness of Certificates. These Requirements also serve to inform users and help them to make informed decisions when relying on Certificates. - - -### 1.4.2 Prohibited Certificate Uses -No stipulation. - -## 1.5 Policy administration -This Certificate Policy for Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates present criteria established by the CA/Browser Forum for use by Certification Authorities when issuing, maintaining, and revoking publicly-trusted Certificates. This CP may be revised from time to time, as appropriate, in accordance with procedures adopted by the CA/Browser Forum. Because one of the primary beneficiaries of this CP is the end user, the Forum openly invites anyone to make recommendations and suggestions by email to the CA/Browser Forum at questions@cabforum.org. The Forum members value all input, regardless of source, and will seriously consider all such input. - - -### 1.5.1 Organization Administering the Document -No stipulation. - -### 1.5.2 Contact Person -Contact information for the CA/Browser Forum is available here: https://cabforum.org/leadership/. In this section of a CA's CPS, the CA shall provide a link to a web page or an email address for contacting the person or persons responsible for operation of the CA. - -### 1.5.3 Person Determining CPS suitability for the policy -No stipulation. - -### 1.5.4 CPS approval procedures -No stipulation. - -## 1.6 Definitions and Acronyms - -### 1.6.1 Definitions - -**Affiliate**: A corporation, partnership, joint venture or other entity controlling, controlled by, or under common control with another entity, or an agency, department, political subdivision, or any entity operating under the direct control of a Government Entity. - -**Applicant**: The natural person or Legal Entity that applies for (or seeks renewal of) a Certificate. Once the Certificate issues, the Applicant is referred to as the Subscriber. For Certificates issued to devices, the Applicant is the entity that controls or operates the device named in the Certificate, even if the device is sending the actual certificate request. - -**Applicant Representative**: A natural person or human sponsor who is either the Applicant, employed by the Applicant, or an authorized agent who has express authority to represent the Applicant: (i) who signs and submits, or approves a certificate request on behalf of the Applicant, and/or (ii) who signs and submits a Subscriber Agreement on behalf of the Applicant, and/or (iii) who acknowledges the Terms of Use on behalf of the Applicant when the Applicant is an Affiliate of the CA or is the CA. - -**Application Software Supplier**: A supplier of Internet browser software or other relying-party application software that displays or uses Certificates and incorporates Root Certificates. - -**Attestation Letter**: A letter attesting that Subject Information is correct written by an accountant, lawyer, government official, or other reliable third party customarily relied upon for such information. - -**Audit Report**: A report from a Qualified Auditor stating the Qualified Auditor's opinion on whether an entity's processes and controls comply with the mandatory provisions of these Requirements. - -**Authorization Domain Name**: The Domain Name used to obtain authorization for certificate issuance for a given FQDN. The CA may use the FQDN returned from a DNS CNAME lookup as the FQDN for the purposes of domain validation. If the FQDN contains a wildcard character, then the CA MUST remove all wildcard labels from the left most portion of requested FQDN. The CA may prune zero or more labels from left to right until encountering a Base Domain Name and may use any one of the intermediate values for the purpose of domain validation. - -**Authorized Port**: One of the following ports: 80 (http), 443 (http), 115 (sftp), 25 (smtp), 22 (ssh). - -**Base Domain Name**: The portion of an applied-for FQDN that is the first domain name node left of a registry-controlled or public suffix plus the registry-controlled or public suffix (e.g. "example.co.uk" or "example.com"). For FQDNs where the right-most domain name node is a gTLD having ICANN Specification 13 in its registry agreement, the gTLD itself may be used as the Base Domain Name. - -**CAA**: From RFC 6844 ([http:tools.ietf.org/html/rfc6844](http://tools.ietf.org/html/rfc6844)): "The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify the Certification Authorities (CAs) authorized to issue certificates for that domain. Publication of CAA Resource Records allows a public Certification Authority to implement additional controls to reduce the risk of unintended certificate mis-issue." - -**Certificate**: An electronic document that uses a digital signature to bind a public key and an identity. - -**Certificate Data**: Certificate requests and data related thereto (whether obtained from the Applicant or otherwise) in the CA's possession or control or to which the CA has access. - -**Certificate Management Process**: Processes, practices, and procedures associated with the use of keys, software, and hardware, by which the CA verifies Certificate Data, issues Certificates, maintains a Repository, and revokes Certificates. - -**Certificate Policy**: A set of rules that indicates the applicability of a named Certificate to a particular community and/or PKI implementation with common security requirements. - -**Certificate Problem Report**: Complaint of suspected Key Compromise, Certificate misuse, or other types of fraud, compromise, misuse, or inappropriate conduct related to Certificates. - -**Certificate Revocation List**: A regularly updated time-stamped list of revoked Certificates that is created and digitally signed by the CA that issued the Certificates. - -**Certification Authority**: An organization that is responsible for the creation, issuance, revocation, and management of Certificates. The term applies equally to both Roots CAs and Subordinate CAs. - -**Certification Practice Statement**: One of several documents forming the governance framework in which Certificates are created, issued, managed, and used. - -**Control**: "Control" (and its correlative meanings, "controlled by" and "under common control with") means possession, directly or indirectly, of the power to: (1) direct the management, personnel, finances, or plans of such entity; (2) control the election of a majority of the directors ; or (3) vote that portion of voting shares required for "control" under the law of the entity's Jurisdiction of Incorporation or Registration but in no case less than 10%. - -**Country**: Either a member of the United Nations OR a geographic region recognized as a Sovereign State by at least two UN member nations. - -**Cross Certificate**: A certificate that is used to establish a trust relationship between two Root CAs. - -**CSPRNG**: A random number generator intended for use in cryptographic system. - -**Delegated Third Party**: A natural person or Legal Entity that is not the CA but is authorized by the CA to assist in the Certificate Management Process by performing or fulfilling one or more of the CA requirements found herein. - -**Domain Authorization Document**: Documentation provided by, or a CA's documentation of a communication with, a Domain Name Registrar, the Domain Name Registrant, or the person or entity listed in WHOIS as the Domain Name Registrant (including any private, anonymous, or proxy registration service) attesting to the authority of an Applicant to request a Certificate for a specific Domain Namespace. - -**Domain Contact**: The Domain Name Registrant, technical contact, or administrative contract (or the equivalent under a ccTLD) as listed in the WHOIS record of the Base Domain Name or in a DNS SOA record. - -**Domain Name**: The label assigned to a node in the Domain Name System. - -**Domain Namespace**: The set of all possible Domain Names that are subordinate to a single node in the Domain Name System. - -**Domain Name Registrant**: Sometimes referred to as the "owner" of a Domain Name, but more properly the person(s) or entity(ies) registered with a Domain Name Registrar as having the right to control how a Domain Name is used, such as the natural person or Legal Entity that is listed as the "Registrant" by WHOIS or the Domain Name Registrar. - -**Domain Name Registrar**: A person or entity that registers Domain Names under the auspices of or by agreement with: (i) the Internet Corporation for Assigned Names and Numbers (ICANN), (ii) a national Domain Name authority/registry, or (iii) a Network Information Center (including their affiliates, contractors, delegates, successors, or assigns). - -**Effective Date**: 1 July 2012. - -**Enterprise RA**: An employee or agent of an organization unaffiliated with the CA who authorizes issuance of Certificates to that organization. - -**Expiry Date**: The "Not After" date in a Certificate that defines the end of a Certificate's validity period. - -**Fully-Qualified Domain Name**: A Domain Name that includes the labels of all superior nodes in the Internet Domain Name System. - -**Government Entity**: A government-operated legal entity, agency, department, ministry, branch, or similar element of the government of a country, or political subdivision within such country (such as a state, province, city, county, etc.). - -**High Risk Certificate Request**: A Request that the CA flags for additional scrutiny by reference to internal criteria and databases maintained by the CA, which may include names at higher risk for phishing or other fraudulent usage, names contained in previously rejected certificate requests or revoked Certificates, names listed on the Miller Smiles phishing list or the Google Safe Browsing list, or names that the CA identifies using its own risk-mitigation criteria. - -**Internal Name**: A string of characters (not an IP address) in a Common Name or Subject Alternative Name field of a Certificate that cannot be verified as globally unique within the public DNS at the time of certificate issuance because it does not end with a Top Level Domain registered in IANA's Root Zone Database. - -**Issuing CA**: In relation to a particular Certificate, the CA that issued the Certificate. This could be either a Root CA or a Subordinate CA. - -**Key Compromise**: A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, an unauthorized person has had access to it, or there exists a practical technique by which an unauthorized person may discover its value. A Private Key is also considered compromised if methods have been developed that can easily calculate it based on the Public Key (such as a Debian weak key, see http://wiki.debian.org/SSLkeys) or if there is clear evidence that the specific method used to generate the Private Key was flawed. - -**Key Generation Script**: A documented plan of procedures for the generation of a CA Key Pair **.** - -**Key Pair**: The Private Key and its associated Public Key. - -**Legal Entity**: An [association](http://www.businessdictionary.com/definition/association.html), [corporation](http://www.businessdictionary.com/definition/corporation.html), [partnership](http://www.businessdictionary.com/definition/partnership.html), [proprietorship](http://www.businessdictionary.com/definition/proprietorship.html), [trust](http://www.businessdictionary.com/definition/trust.html), government entity or other entity with [legal](http://www.businessdictionary.com/definition/legal.html) [standing](http://www.investorwords.com/7216/standing.html)in a country's legal system. - -**Object Identifier**: A unique alphanumeric or numeric identifier registered under the International Organization for Standardization's applicable standard for a specific object or object class. - -**OCSP Responder**: An online server operated under the authority of the CA and connected to its Repository for processing Certificate status requests. See also, Online Certificate Status Protocol. - -**Online Certificate Status Protocol**: An online Certificate-checking protocol that enables relying-party application software to determine the status of an identified Certificate. See also OCSP Responder. - -**Parent Company**: A company that Controls a Subsidiary Company. - -**Private Key**: The key of a Key Pair that is kept secret by the holder of the Key Pair, and that is used to create Digital Signatures and/or to decrypt electronic records or files that were encrypted with the corresponding Public Key. - -**Public Key**: The key of a Key Pair that may be publicly disclosed by the holder of the corresponding Private Key and that is used by a Relying Party to verify Digital Signatures created with the holder's corresponding Private Key and/or to encrypt messages so that they can be decrypted only with the holder's corresponding Private Key. - -**Public Key Infrastructure**: A set of hardware, software, people, procedures, rules, policies, and obligations used to facilitate the trustworthy creation, issuance, management, and use of Certificates and keys based on Public Key Cryptography. - -**Publicly-Trusted Certificate**: A Certificate that is trusted by virtue of the fact that its corresponding Root Certificate is distributed as a trust anchor in widely-available application software. - -**Qualified Auditor**: A natural person or Legal Entity that meets the requirements of Section 8.3. - -**Random Value**: A value specified by a CA to the Applicant that exhibits at least 112 bits of entropy. - -**Registered Domain Name**: A Domain Name that has been registered with a Domain Name Registrar. - -**Registration Authority (RA)**: Any Legal Entity that is responsible for identification and authentication of subjects of Certificates, but is not a CA, and hence does not sign or issue Certificates. An RA may assist in the certificate application process or revocation process or both. When "RA" is used as an adjective to describe a role or function, it does not necessarily imply a separate body, but can be part of the CA. - -**Reliable Data Source**: An identification document or source of data used to verify Subject Identity Information that is generally recognized among commercial enterprises and governments as reliable, and which was created by a third party for a purpose other than the Applicant obtaining a Certificate. - -**Reliable Method of Communication**: A method of communication, such as a postal/courier delivery address, telephone number, or email address, that was verified using a source other than the Applicant Representative. - -**Relying Party**: Any natural person or Legal Entity that relies on a Valid Certificate. An Application Software Supplier is not considered a Relying Party when software distributed by such Supplier merely displays information relating to a Certificate. - -**Repository**: An online database containing publicly-disclosed PKI governance documents (such as Certificate Policies and Certification Practice Statements) and Certificate status information, either in the form of a CRL or an OCSP response. - -**Request Token**: A value derived in a method specified by the CA which binds this demonstration of control to the certificate request. - -The Request Token SHALL incorporate the key used in the certificate request. - -A Request Token MAY include a timestamp to indicate when it was created. - -A Request Token MAY include other information to ensure its uniqueness. - -A Request Token that includes a timestamp SHALL remain valid for no more than 30 days from the time of creation. - -A Request Token that includes a timestamp SHALL be treated as invalid if its timestamp is in the future. - -A Request Token that does not include a timestamp is valid for a single use and the CA SHALL NOT re-use it for a subsequent validation. - -The binding SHALL use a digital signature algorithm or a cryptographic hash algorithm at least as strong as that to be used in signing the certificate request. - -**Required Website Content**: Either a Random Value or a Request Token, together with additional information that uniquely identifies the Subscriber, as specified by the CA. - -**Requirements**: The Baseline Requirements found in this document. - -**Reserved IP Address**: An IPv4 or IPv6 address that the IANA has marked as reserved: - -[http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml](http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml) - -[http://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml](http://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml) - -**Root CA**: The top level Certification Authority whose Root Certificate is distributed by Application Software Suppliers and that issues Subordinate CA Certificates. - -**Root Certificate**: The self-signed Certificate issued by the Root CA to identify itself and to facilitate verification of Certificates issued to its Subordinate CAs. - -**Sovereign State**: A state or country that administers its own government, and is not dependent upon, or subject to, another power. - -**Subject**: The natural person, device, system, unit, or Legal Entity identified in a Certificate as the Subject. The Subject is either the Subscriber or a device under the control and operation of the Subscriber. - -**Subject Identity Information**: Information that identifies the Certificate Subject. Subject Identity Information does not include a domain name listed in the subjectAltName extension or the Subject commonName field. - -**Subordinate CA**: A Certification Authority whose Certificate is signed by the Root CA, or another Subordinate CA. - -**Subscriber**: A natural person or Legal Entity to whom a Certificate is issued and who is legally bound by a Subscriber Agreement or Terms of Use. - -**Subscriber Agreement**: An agreement between the CA and the Applicant/Subscriber that specifies the rights and responsibilities of the parties. - -**Subsidiary Company**: A company that is controlled by a Parent Company. - -**Technically Constrained Subordinate CA Certificate**: A Subordinate CA certificate which uses a combination of Extended Key Usage settings and Name Constraint settings to limit the scope within which the Subordinate CA Certificate may issue Subscriber or additional Subordinate CA Certificates. - -**Terms of Use**: Provisions regarding the safekeeping and acceptable uses of a Certificate issued in accordance with these Requirements when the Applicant/Subscriber is an Affiliate of the CA or is the CA. - -**Test Certificate**: A Certificate with a maximum validity period of 30 days and which: (i) includes a critical extension with the specified Test Certificate CABF OID, or (ii) is issued under a CA where there are no certificate paths/chains to a root certificate subject to these Requirements. - -**Trustworthy System**: Computer hardware, software, and procedures that are: reasonably secure from intrusion and misuse; provide a reasonable level of availability, reliability, and correct operation; are reasonably suited to performing their intended functions; and enforce the applicable security policy. - -**Unregistered Domain Name**: A Domain Name that is not a Registered Domain Name. - -**Valid Certificate**: A Certificate that passes the validation procedure specified in RFC 5280. - -**Validation Specialists**: Someone who performs the information verification duties specified by these Requirements. - -**Validity Period**: The period of time measured from the date when the Certificate is issued until the Expiry Date. - -**Wildcard Certificate**: A Certificate containing an asterisk (\*) in the left-most position of any of the Subject Fully-Qualified Domain Names contained in the Certificate. - -### 1.6.2 Acronyms - -| **Acronym** | **Meaning** | -| --- | --- | -| AICPA | American Institute of Certified Public Accountants | -| CA | Certification Authority | -| CAA | Certification Authority Authorization | -| ccTLD | Country Code Top-Level Domain | -| CICA | Canadian Institute of Chartered Accountants | -| CP | Certificate Policy | -| CPS | Certification Practice Statement | -| CRL | Certificate Revocation List | -| DBA | Doing Business As | -| DNS | Domain Name System | -| FIPS | (US Government) Federal Information Processing Standard | -| FQDN | Fully Qualified Domain Name | -| IM | Instant Messaging | -| IANA | Internet Assigned Numbers Authority | -| ICANN | Internet Corporation for Assigned Names and Numbers | -| ISO | International Organization for Standardization | -| NIST | (US Government) National Institute of Standards and Technology | -| OCSP | Online Certificate Status Protocol | -| OID | Object Identifier | -| PKI | Public Key Infrastructure | -| RA | Registration Authority | -| S/MIME | Secure MIME (Multipurpose Internet Mail Extensions) | -| SSL | Secure Sockets Layer | -| TLD | Top-Level Domain | -| TLS | Transport Layer Security | -| VOIP | Voice Over Internet Protocol | - - - - -### 1.6.3 References - -ETSI EN 319 403, Electronic Signatures and Infrastructures (ESI); Trust Service Provider Conformity Assessment - Requirements for conformity assessment bodies assessing Trust Service Providers - -ETSI EN 319 411-1, Electronic Signatures and Infrastructures (ESI); Policy and security requirements for Trust Service Providers issuing certificates; Part 1: General requirements - -ETSI TS 102 042, Electronic Signatures and Infrastructures (ESI); Policy requirements for certification authorities issuing public key certificates. - -FIPS 140-2, Federal Information Processing Standards Publication - Security Requirements For Cryptographic Modules, Information Technology Laboratory, National Institute of Standards and Technology, May 25, 2001. - -ISO 21188:2006, Public key infrastructure for financial services -- Practices and policy framework. - -NIST SP 800-89, Recommendation for Obtaining Assurances for Digital Signature Applications, http://csrc.nist.gov/publications/nistpubs/800-89/SP-800-89_November2006.pdf. - -RFC2119, Request for Comments: 2119, Key words for use in RFCs to Indicate Requirement Levels, Bradner, March 1997. - -RFC2527, Request for Comments: 2527, Internet X.509 Public Key Infrastructure: Certificate Policy and Certification Practices Framework, Chokhani, et al, March 1999. - -RFC6960, Request for Comments: 6960, X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP. Santesson, Myers, Ankney, Malpani, Galperin, Adams, June 2013. - -RFC3647, Request for Comments: 3647, Internet X.509 Public Key Infrastructure: Certificate Policy and Certification Practices Framework, Chokhani, et al, November 2003. - -RFC4366, Request for Comments: 4366, Transport Layer Security (TLS) Extensions, Blake-Wilson, et al, April 2006. - -RFC5019, Request for Comments: 5019, The Lightweight Online Certificate Status Protocol (OCSP) Profile for High-Volume Environments, A. Deacon, et al, September 2007. - -RFC5280, Request for Comments: 5280, Internet X.509 Public Key Infrastructure: Certificate and Certificate Revocation List (CRL) Profile, Cooper et al, May 2008. - -WebTrust for Certification Authorities, SSL Baseline with Network Security, Version 2.0, available at http://www.webtrust.org/homepage-documents/item79806.pdf. - -X.509, Recommendation ITU-T X.509 (10/2012) \| ISO/IEC 9594-8:2014 (E), Information technology – Open Systems Interconnection – The Directory: Public-key and attribute certificate frameworks. - -### 1.6.4 Conventions -The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in these Requirements shall be interpreted in accordance with RFC 2119. - - -# 2. PUBLICATION AND REPOSITORY RESPONSIBILITIES -The CA SHALL develop, implement, enforce, and annually update a Certification Practice Statement that describes in detail how the CA implements the latest version of these Requirements. - -## 2.1 Repositories -The CA SHALL make revocation information for Subordinate Certificates and Subscriber Certificates available in accordance with this Policy. - -## 2.2 Publication of information -The CA SHALL publicly disclose its Certificate Policy and/or Certification Practice Statement through an appropriate and readily accessible online means that is available on a 24x7 basis. The CA SHALL publicly disclose its CA business practices to the extent required by the CA's selected audit scheme (see Section 8.1). The disclosures MUST include all the material required by RFC 2527 or RFC 3647, and MUST be structured in accordance with either RFC 2527 or RFC 3647. Effective as of 15 April 2015, section 4.2 of a CA's Certificate Policy and/or Certification Practice Statement (section 4.1 for CAs still conforming to RFC 2527) SHALL state whether the CA reviews CAA Records, and if so, the CA's policy or practice on processing CAA Records for Fully Qualified Domain Names. The CA SHALL log all actions taken, if any, consistent with its processing practice. - -The CA SHALL publicly give effect to these Requirements and represent that it will adhere to the latest published version. The CA MAY fulfill this requirement by incorporating these Requirements directly into its Certificate Policy and/or Certification Practice Statements or by incorporating them by reference using a clause such as the following (which MUST include a link to the official version of these Requirements): - -> [Name of CA] conforms to the current version of the Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates published at http://www.cabforum.org. In the event of any inconsistency between this document and those Requirements, those Requirements take precedence over this document. - - -The CA SHALL host test Web pages that allow Application Software Suppliers to test their software with Subscriber Certificates that chain up to each publicly trusted Root Certificate. At a minimum, the CA SHALL host separate Web pages using Subscriber Certificates that are (i) valid, (ii) revoked, and (iii) expired. - -## 2.3 Time or frequency of publication -The CA SHALL develop, implement, enforce, and annually update a Certificate Policy and/or Certification Practices Statement that describes in detail how the CA implements the latest version of these Requirements. - -## 2.4 Access controls on repositories -The CA shall make its Repository publicly available in a read-only manner. - -# 3. IDENTIFICATION AND AUTHENTICATION - -## 3.1 Naming - -### 3.1.1 Types of names - -### 3.1.2 Need for names to be meaningful - -### 3.1.3 Anonymity or pseudonymity of subscribers - -### 3.1.4 Rules for interpreting various name forms - -### 3.1.5 Uniqueness of names - -### 3.1.6 Recognition, authentication, and role of trademarks - -## 3.2 Initial identity validation - -### 3.2.1 Method to prove possession of private key - -### 3.2.2 Authentication of Organization and Domain Identity -If the Applicant requests a Certificate that will contain Subject Identity Information comprised only of the countryName field, then the CA SHALL verify the country associated with the Subject using a verification process meeting the requirements of Section 3.2.2.3 and that is described in the CA's Certificate Policy and/or Certification Practice Statement. If the Applicant requests a Certificate that will contain the countryName field and other Subject Identity Information, then the CA SHALL verify the identity of the Applicant, and the authenticity of the Applicant Representative's certificate request using a verification process meeting the requirements of this Section 3.2.2.1 and that is described in the CA's Certificate Policy and/or Certification Practice Statement. The CA SHALL inspect any document relied upon under this Section for alteration or falsification. - -#### 3.2.2.1 Identity -If the Subject Identity Information is to include the name or address of an organization, the CA SHALL verify the identity and address of the organization and that the address is the Applicant's address of existence or operation. The CA SHALL verify the identity and address of the Applicant using documentation provided by, or through communication with, at least one of the following: - -1. A government agency in the jurisdiction of the Applicant's legal creation, existence, or recognition; -2. A third party database that is periodically updated and considered a Reliable Data Source; -3. A site visit by the CA or a third party who is acting as an agent for the CA; or -4. An Attestation Letter. - -The CA MAY use the same documentation or communication described in 1 through 4 above to verify both the Applicant's identity and address. - -Alternatively, the CA MAY verify the address of the Applicant (but not the identity of the Applicant) using a utility bill, bank statement, credit card statement, government-issued tax document, or other form of identification that the CA determines to be reliable. - -#### 3.2.2.2 DBA/Tradename -If the Subject Identity Information is to include a DBA or tradename, the CA SHALL verify the Applicant's right to use the DBA/tradename using at least one of the following: - -1. Documentation provided by, or communication with, a government agency in the jurisdiction of the Applicant's legal creation, existence, or recognition; -2. A Reliable Data Source; -3. Communication with a government agency responsible for the management of such DBAs or tradenames; -4. An Attestation Letter accompanied by documentary support; or -5. A utility bill, bank statement, credit card statement, government-issued tax document, or other form of identification that the CA determines to be reliable. - -#### 3.2.2.3 Verification of Country -If the subject:countryName field is present, then the CA SHALL verify the country associated with the Subject using one of the following: (a) the IP Address range assignment by country for either (i) the web site's IP address, as indicated by the DNS record for the web site or (ii) the Applicant's IP address; (b) the ccTLD of the requested Domain Name; (c) information provided by the Domain Name Registrar; or (d) a method identified in Section 3.2.2.1. The CA SHOULD implement a process to screen proxy servers in order to prevent reliance upon IP addresses assigned in countries other than where the Applicant is actually located. - -#### 3.2.2.4 Validation of Domain Authorization or Control - -This section defines the permitted processes and procedures for validating the Applicant's ownership or control of the domain. -The CA SHALL confirm that, as of the date the Certificate issues, either the CA or a Delegated Third Party has validated each Fully-Qualified Domain Name (FQDN) listed in the Certificate using at least one of the methods listed below. - -Completed confirmations of Applicant authority may be valid for the issuance of multiple certificates over time. In all cases, the confirmation must have been initiated within the time period specified in the relevant requirement (such as Section 3.3.1 of this document) prior to certificate issuance. For purposes of domain validation, the term Applicant includes the Applicant's Parent Company, Subsidiary Company, or Affiliate. - -Note: FQDNs may be listed in Subscriber Certificates using dNSNames in the subjectAltName extension or in Subordinate CA Certificates via dNSNames in permittedSubtrees within the Name Constraints extension. - -##### 3.2.2.4.1 Validating the Applicant as a Domain Contact. - -Confirming the Applicant's control over the FQDN by validating the Applicant is the Domain Contact directly with the Domain Name Registrar. This method may only be used if: - -1. The CA authenticates the Applicant's identity under BR Section 3.2.2.1 and the authority of the Applicant Representative under BR Section 3.2.5, OR -2. The CA authenticates the Applicant's identity under EV Guidelines Section 11.2 and the agency of the Certificate Approver under EV Guidelines Section 11.8; OR -3. The CA is also the Domain Name Registrar, or an Affiliate of the Registrar, of the Base Domain Name. - -##### 3.2.2.4.2 Email, Fax, SMS, or Postal Mail to Domain Contact - -Confirming the Applicant's control over the FQDN by sending a Random Value via email, fax, SMS, or postal mail and then receiving a confirming response utilizing the Random Value. The Random Value MUST be sent to an email address, fax/SMS number, or postal mail address identified as a Domain Contact. -Each email, fax, SMS, or postal mail MAY confirm control of multiple Authorization Domain Names. -The CA or Delegated Third Party MAY send the email, fax, SMS, or postal mail identified under this section to more than one recipient provided that every recipient is identified by the Domain Name Registrar as representing the Domain Name Registrant for every FQDN being verified using the email, fax, SMS, or postal mail. -The Random Value SHALL be unique in each email, fax, SMS, or postal mail. -The CA or Delegated Third Party MAY resend the email, fax, SMS, or postal mail in its entirety, including re-use of the Random Value, provided that the communication's entire contents and recipient(s) remain unchanged. -The Random Value SHALL remain valid for use in a confirming response for no more than 30 days from its creation. The CPS MAY specify a shorter validity period for Random Values, in which case the CA MUST follow its CPS. - -##### 3.2.2.4.3 Phone Contact with Domain Contact - -Confirming the Applicant's control over the requested FQDN by calling the Domain Name Registrant's phone number and obtaining a response confirming the Applicant's request for validation of the FQDN. The CA or Delegated Third Party MUST place the call to a phone number identified by the Domain Name Registrar as the Domain Contact. -Each phone call SHALL be made to a single number and MAY confirm control of multiple FQDNs, provided that the phone number is identified by the Domain Registrar as a valid contact method for every Base Domain Name being verified using the phone call. - -##### 3.2.2.4.4 Constructed Email to Domain Contact - -Confirming the Applicant's control over the requested FQDN by (i) sending an email to one or more addresses created by using 'admin', 'administrator', 'webmaster', 'hostmaster', or 'postmaster' as the local part, followed by the at-sign ("@"), followed by an Authorization Domain Name, (ii) including a Random Value in the email, and (iii) receiving a confirming response utilizing the Random Value. -Each email MAY confirm control of multiple FQDNs, provided the Authorization Domain Name used in the email is an Authorization Domain Name for each FQDN being confirmed. -The Random Value SHALL be unique in each email. -The email MAY be re-sent in its entirety, including the re-use of the Random Value, provided that its entire contents and recipient SHALL remain unchanged. -The Random Value SHALL remain valid for use in a confirming response for no more than 30 days from its creation. The CPS MAY specify a shorter validity period for Random Values, in which case the CA MUST follow its CPS. - -##### 3.2.2.4.5 Domain Authorization Document - -Confirming the Applicant's control over the requested FQDN by relying upon the attestation to the authority of the Applicant to request a Certificate contained in a Domain Authorization Document. The Domain Authorization Document MUST substantiate that the communication came from the Domain Contact. The CA MUST verify that the Domain Authorization Document was either (i) dated on or after the date of the domain validation request or (ii) that the WHOIS data has not materially changed since a previously provided Domain Authorization Document for the Domain Name Space. - -##### 3.2.2.4.6 Agreed-Upon Change to Website - -Confirming the Applicant's control over the requested FQDN by confirming one of the following under the "/.well-known/pki-validation" directory, or another path registered with IANA for the purpose of Domain Validation, on the Authorization Domain Name that is accessible by the CA via HTTP/HTTPS over an Authorized Port: - -1. The presence of Required Website Content contained in the content of a file or on a web page in the form of a meta tag. The entire Required Website Content MUST NOT appear in the request used to retrieve the file or web page, or -2. The presence of the Request Token or Request Value contained in the content of a file or on a webpage in the form of a meta tag where the Request Token or Random Value MUST NOT appear in the request. - -If a Random Value is used, the CA or Delegated Third Party SHALL provide a Random Value unique to the certificate request and SHALL not use the Random Value after the longer of (i) 30 days or (ii) if the Applicant submitted the certificate request, the timeframe permitted for reuse of validated information relevant to the certificate (such as in Section 3.3.1 of these Guidelines or Section 11.14.3 of the EV Guidelines). - -Note: Examples of Request Tokens include, but are not limited to: (i) a hash of the public key; (ii) a hash of the Subject Public Key Info [X.509]; and (iii) a hash of a PKCS#10 CSR. A Request Token may also be concatenated with a timestamp or other data. If a CA wanted to always use a hash of a PKCS#10 CSR as a Request Token and did not want to incorporate a timestamp and did want to allow certificate key re-use then the applicant might use the challenge password in the creation of a CSR with OpenSSL to ensure uniqueness even if the subject and key are identical between subsequent requests. This simplistic shell command produces a Request Token which has a timestamp and a hash of a CSR. E.g. echo date -u +%Y%m%d%H%M sha256sum Prior to September 1, 2013, each CA MUST revoke any valid certificate that does not comply with this section of the Requirements. - -[^pubsuffix]: Determination of what is "registry-controlled" versus the registerable portion of a Country Code Top-Level Domain Namespace is not standardized at the time of writing and is not a property of the DNS itself. Current best practice is to consult a "public suffix list" such as (PSL), and to retrieve a fresh copy regularly. If using the PSL, a CA SHOULD consult the "ICANN DOMAINS" section only, not the "PRIVATE DOMAINS" section. The PSL is updated regularly to contain new gTLDs delegated by ICANN, which are listed in the "ICANN DOMAINS" section. A CA is not prohibited from issuing a Wildcard Certificate to the Registrant of an entire gTLD, provided that control of the entire namespace is demonstrated in an appropriate way. - -#### 3.2.2.7 Data Source Accuracy -Prior to using any data source as a Reliable Data Source, the CA SHALL evaluate the source for its reliability, accuracy, and resistance to alteration or falsification. The CA SHOULD consider the following during its evaluation: - -1. The age of the information provided, -2. The frequency of updates to the information source, -3. The data provider and purpose of the data collection, -4. The public accessibility of the data availability, and -5. The relative difficulty in falsifying or altering the data. - -Databases maintained by the CA, its owner, or its affiliated companies do not qualify as a Reliable Data Source if the primary purpose of the database is to collect information for the purpose of fulfilling the validation requirements under this Section 3.2. - -### 3.2.3 Authentication of individual identity -If an Applicant subject to this Section is a natural person, then the CA SHALL verify the Applicant's name, Applicant's address, and the authenticity of the certificate request. - -The CA SHALL verify the Applicant's name using a legible copy, which discernibly shows the Applicant's face, of at least one currently valid government-issued photo ID (passport, drivers license, military ID, national ID, or equivalent document type). The CA SHALL inspect the copy for any indication of alteration or falsification. - -The CA SHALL verify the Applicant's address using a form of identification that the CA determines to be reliable, such as a government ID, utility bill, or bank or credit card statement. The CA MAY rely on the same government-issued ID that was used to verify the Applicant's name. - -The CA SHALL verify the certificate request with the Applicant using a Reliable Method of Communication. - -### 3.2.4 Non-verified subscriber information - -### 3.2.5 Validation of authority -If the Applicant for a Certificate containing Subject Identity Information is an organization, the CA SHALL use a Reliable Method of Communication to verify the authenticity of the Applicant Representative's certificate request. - -The CA MAY use the sources listed in section 3.2.2.1 to verify the Reliable Method of Communication. Provided that the CA uses a Reliable Method of Communication, the CA MAY establish the authenticity of the certificate request directly with the Applicant Representative or with an authoritative source within the Applicant's organization, such as the Applicant's main business offices, corporate offices, human resource offices, information technology offices, or other department that the CA deems appropriate. - -In addition, the CA SHALL establish a process that allows an Applicant to specify the individuals who may request Certificates. If an Applicant specifies, in writing, the individuals who may request a Certificate, then the CA SHALL NOT accept any certificate requests that are outside this specification. The CA SHALL provide an Applicant with a list of its authorized certificate requesters upon the Applicant's verified written request. - -### 3.2.6 Criteria for Interoperation or Certification -The CA SHALL disclose all Cross Certificates that identify the CA as the Subject, provided that the CA arranged for or accepted the establishment of the trust relationship (i.e. the Cross Certificate at issue). - -## 3.3 Identification and authentication for re-key requests - -### 3.3.1 Identification and authentication for routine re-key - -### 3.3.2 Identification and authentication for re-key after revocation - -## 3.4 Identification and authentication for revocation request - -# 4. CERTIFICATE LIFE-CYCLE OPERATIONAL REQUIREMENTS - -## 4.1 Certificate Application - -### 4.1.1 Who can submit a certificate application -In accordance with Section 5.5.2, the CA SHALL maintain an internal database of all previously revoked Certificates and previously rejected certificate requests due to suspected phishing or other fraudulent usage or concerns. The CA SHALL use this information to identify subsequent suspicious certificate requests. - -### 4.1.2 Enrollment process and responsibilities -Prior to the issuance of a Certificate, the CA SHALL obtain the following documentation from the Applicant: - -1. A certificate request, which may be electronic; and -2. An executed Subscriber Agreement or Terms of Use, which may be electronic. - -The CA SHOULD obtain any additional documentation the CA determines necessary to meet these Requirements. - -Prior to the issuance of a Certificate, the CA SHALL obtain from the Applicant a certificate request in a form prescribed by the CA and that complies with these Requirements. One certificate request MAY suffice for multiple Certificates to be issued to the same Applicant, subject to the aging and updating requirement in Section 3.3.1, provided that each Certificate is supported by a valid, current certificate request signed by the appropriate Applicant Representative on behalf of the Applicant. The certificate request MAY be made, submitted and/or signed electronically. - -The certificate request MUST contain a request from, or on behalf of, the Applicant for the issuance of a Certificate, and a certification by, or on behalf of, the Applicant that all of the information contained therein is correct. - -## 4.2 Certificate application processing - -### 4.2.1 Performing identification and authentication functions -The certificate request MAY include all factual information about the Applicant to be included in the Certificate, and such additional information as is necessary for the CA to obtain from the Applicant in order to comply with these Requirements and the CA's Certificate Policy and/or Certification Practice Statement. In cases where the certificate request does not contain all the necessary information about the Applicant, the CA SHALL obtain the remaining information from the Applicant or, having obtained it from a reliable, independent, third-party data source, confirm it with the Applicant. The CA SHALL establish and follow a documented procedure for verifying all data requested for inclusion in the Certificate by the Applicant. - -Applicant information MUST include, but not be limited to, at least one Fully-Qualified Domain Name or IP address to be included in the Certificate's SubjectAltName extension. - -Section 6.3.2 limits the validity period of Subscriber Certificates. The CA MAY use the documents and data provided in Section 3.2 to verify certificate information, provide that the CA obtained the data or document from a source specified under Section 3.2 no more than thirty-nine (39) months prior to issuing the Certificate. - -The CA SHALL develop, maintain, and implement documented procedures that identify and require additional verification activity for High Risk Certificate Requests prior to the Certificate's approval, as reasonably necessary to ensure that such requests are properly verified under these Requirements. - -If a Delegated Third Party fulfills any of the CA's obligations under this section , the CA SHALL verify that the process used by the Delegated Third Party to identify and further verify High Risk Certificate Requests provides at least the same level of assurance as the CA's own processes - -### 4.2.2 Approval or rejection of certificate applications -CAs SHOULD NOT issue Certificates containing a new gTLD under consideration by ICANN. Prior to issuing a Certificate containing an Internal Name with a gTLD that ICANN has announced as under consideration to make operational, the CA MUST provide a warning to the applicant that the gTLD may soon become resolvable and that, at that time, the CA will revoke the Certificate unless the applicant promptly registers the Domain Name. When a gTLD is delegated by inclusion in the IANA Root Zone Database, the Internal Name becomes a Domain Name, and at such time, a Certificate with such gTLD, which may have complied with these Requirements at the time it was issued, will be in a violation of these Requirements, unless the CA has verified the Subscriber's rights in the Domain Name. The provisions below are intended to prevent such violation from happening. - -Within 30 days after ICANN has approved a new gTLD for operation, as evidenced by publication of a contract with the gTLD operator on [www.ICANN.org] each CA MUST (1) compare the new gTLD against the CA's records of valid certificates and (2) cease issuing Certificates containing a Domain Name that includes the new gTLD until after the CA has first verified the Subscriber's control over or exclusive right to use the Domain Name in accordance with Section 3.2.2.4. - -Within 120 days after the publication of a contract for a new gTLD is published on [www.icann.org], CAs MUST revoke each Certificate containing a Domain Name that includes the new gTLD unless the Subscriber is either the Domain Name Registrant or can demonstrate control over the Domain Name. - -### 4.2.3 Time to process certificate applications -No stipulation. - -## 4.3 Certificate issuance - -### 4.3.1 CA actions during certificate issuance -Certificate issuance by the Root CA SHALL require an individual authorized by the CA (i.e. the CA system operator, system officer, or PKI administrator) to deliberately issue a direct command in order for the Root CA to perform a certificate signing operation. - -### 4.3.2 Notification to subscriber by the CA of issuance of certificate -No stipulation. - -## 4.4 Certificate acceptance - -### 4.4.1 Conduct constituting certificate acceptance -No stipulation. - -### 4.4.2 Publication of the certificate by the CA -No stipulation. - -### 4.4.3 Notification of certificate issuance by the CA to other entities -No stipulation. - -## 4.5 Key pair and certificate usage - -### 4.5.1 Subscriber private key and certificate usage -See Section 9.6.3, provisions 2. and 4. - -### 4.5.2 Relying party public key and certificate usage -No stipulation. - -## 4.6 Certificate renewal - -### 4.6.1 Circumstance for certificate renewal -No stipulation. - -### 4.6.2 Who may request renewal -No stipulation. - -### 4.6.3 Processing certificate renewal requests -No stipulation. - -### 4.6.4 Notification of new certificate issuance to subscriber -No stipulation. - -### 4.6.5 Conduct constituting acceptance of a renewal certificate -No stipulation. - -### 4.6.6 Publication of the renewal certificate by the CA -No stipulation. - -### 4.6.7 Notification of certificate issuance by the CA to other entities -No stipulation. - -## 4.7 Certificate re-key - -### 4.7.1 Circumstance for certificate re-key -No stipulation. - -### 4.7.2 Who may request certification of a new public key -No stipulation. - -### 4.7.3 Processing certificate re-keying requests -No stipulation. - -### 4.7.4 Notification of new certificate issuance to subscriber -No stipulation. - -### 4.7.5 Conduct constituting acceptance of a re-keyed certificate -No stipulation. - -### 4.7.6 Publication of the re-keyed certificate by the CA -No stipulation. - -### 4.7.7 Notification of certificate issuance by the CA to other entities -No stipulation. - -## 4.8 Certificate modification - -### 4.8.1 Circumstance for certificate modification -No stipulation. - -### 4.8.2 Who may request certificate modification -No stipulation. - -### 4.8.3 Processing certificate modification requests -No stipulation. - -### 4.8.4 Notification of new certificate issuance to subscriber -No stipulation. - -### 4.8.5 Conduct constituting acceptance of modified certificate -No stipulation. - -### 4.8.6 Publication of the modified certificate by the CA -No stipulation. - -### 4.8.7 Notification of certificate issuance by the CA to other entities -No stipulation. - -## 4.9 Certificate revocation and suspension - -### 4.9.1 Circumstances for revocation - -#### 4.9.1.1 Reasons for Revoking a Subscriber Certificate -The CA SHALL revoke a Certificate within 24 hours if one or more of the following occurs: - -1. The Subscriber requests in writing that the CA revoke the Certificate; -2. The Subscriber notifies the CA that the original certificate request was not authorized and does not retroactively grant authorization; -3. The CA obtains evidence that the Subscriber's Private Key corresponding to the Public Key in the Certificate suffered a Key Compromise or no longer complies with the requirements of Sections 6.1.5 and 6.1.6; -4. The CA obtains evidence that the Certificate was misused; -5. The CA is made aware that a Subscriber has violated one or more of its material obligations under the Subscriber Agreement or Terms of Use; -6. The CA is made aware of any circumstance indicating that use of a Fully-Qualified Domain Name or IP address in the Certificate is no longer legally permitted (e.g. a court or arbitrator has revoked a Domain Name Registrant's right to use the Domain Name, a relevant licensing or services agreement between the Domain Name Registrant and the Applicant has terminated, or the Domain Name Registrant has failed to renew the Domain Name); -7. The CA is made aware that a Wildcard Certificate has been used to authenticate a fraudulently misleading subordinate Fully-Qualified Domain Name; -8. The CA is made aware of a material change in the information contained in the Certificate; -9. The CA is made aware that the Certificate was not issued in accordance with these Requirements or the -CA's Certificate Policy or Certification Practice Statement; -10. The CA determines that any of the information appearing in the Certificate is inaccurate or misleading; -11. The CA ceases operations for any reason and has not made arrangements for another CA to provide revocation support for the Certificate; -12. The CA's right to issue Certificates under these Requirements expires or is revoked or terminated, unless the CA has made arrangements to continue maintaining the CRL/OCSP Repository; -13. The CA is made aware of a possible compromise of the Private Key of the Subordinate CA used for issuing the Certificate; -14. Revocation is required by the CA's Certificate Policy and/or Certification Practice Statement; or -15. The technical content or format of the Certificate presents an unacceptable risk to Application Software Suppliers or Relying Parties (e.g. the CA/Browser Forum might determine that a deprecated cryptographic/signature algorithm or key size presents an unacceptable risk and that such Certificates should be revoked and replaced by CAs within a given period of time). - -#### 4.9.1.2 Reasons for Revoking a Subordinate CA Certificate -The Issuing CA SHALL revoke a Subordinate CA Certificate within seven (7) days if one or more of the following occurs: - -1. The Subordinate CA requests revocation in writing; -2. The Subordinate CA notifies the Issuing CA that the original certificate request was not authorized and does not retroactively grant authorization; -3. The Issuing CA obtains evidence that the Subordinate CA's Private Key corresponding to the Public Key in the Certificate suffered a Key Compromise or no longer complies with the requirements of Sections 6.1.5 and 6.1.6; -4. The Issuing CA obtains evidence that the Certificate was misused; -5. The Issuing CA is made aware that the Certificate was not issued in accordance with or that Subordinate CA has not complied with this CP or the applicable Certificate Policy or Certification Practice Statement; -6. The Issuing CA determines that any of the information appearing in the Certificate is inaccurate or misleading; -7. The Issuing CA or Subordinate CA ceases operations for any reason and has not made arrangements for another CA to provide revocation support for the Certificate; -8. The Issuing CA's or Subordinate CA's right to issue Certificates under these Requirements expires or is revoked or terminated, unless the Issuing CA has made arrangements to continue maintaining the CRL/OCSP Repository; -9. Revocation is required by the Issuing CA's Certificate Policy and/or Certification Practice Statement; or -10. The technical content or format of the Certificate presents an unacceptable risk to Application Software Suppliers or Relying Parties (e.g. the CA/Browser Forum might determine that a deprecated cryptographic/signature algorithm or key size presents an unacceptable risk and that such Certificates should be revoked and replaced by CAs within a given period of time). - -### 4.9.2 Who can request revocation -The Subscriber, RA, or Issuing CA can initiate revocation. Additionally, Subscribers, Relying Parties, Application Software Suppliers, and other third parties may submit Certificate Problem Reports informing the issuing CA of reasonable cause to revoke the certificate. - -### 4.9.3 Procedure for revocation request -The CA SHALL provide a process for Subscribers to request revocation of their own Certificates. The process MUST be described in the CA's Certificate Policy or Certification Practice Statement. The CA SHALL maintain a continuous 24x7 ability to accept and respond to revocation requests and related inquiries. - -The CA SHALL provide Subscribers, Relying Parties, Application Software Suppliers, and other third parties with clear instructions for reporting suspected Private Key Compromise, Certificate misuse, or other types of fraud, compromise, misuse, inappropriate conduct, or any other matter related to Certificates. The CA SHALL publicly disclose the instructions through a readily accessible online means. - -### 4.9.4 Revocation request grace period -No stipulation. - -### 4.9.5 Time within which CA must process the revocation request -The CA SHALL begin investigation of a Certificate Problem Report within twenty-four hours of receipt, and decide whether revocation or other appropriate action is warranted based on at least the following criteria: - -1. The nature of the alleged problem; -2. The number of Certificate Problem Reports received about a particular Certificate or Subscriber; -3. The entity making the complaint (for example, a complaint from a law enforcement official that a Web site is engaged in illegal activities should carry more weight than a complaint from a consumer alleging that she didn't receive the goods she ordered); and -4. Relevant legislation. - -### 4.9.6 Revocation checking requirement for relying parties -No stipulation. - -(Note: Following certificate issuance, a certificate may be revoked for reasons stated in Section 4.9.1. Therefore, relying parties should check the revocation status of all certificates that contain a CDP or OCSP pointer.) - -### 4.9.7 CRL issuance frequency (if applicable) - -For the status of Subscriber Certificates: - -If the CA publishes a CRL, then the CA SHALL update and reissue CRLs at least once every seven days, and the value of the nextUpdate field MUST NOT be more than ten days beyond the value of the thisUpdate field - -For the status of Subordinate CA Certificates: - -The CA SHALL update and reissue CRLs at least (i) once every twelve months and (ii) within 24 hours after revoking a Subordinate CA Certificate, and the value of the nextUpdate field MUST NOT be more than twelve months beyond the value of the thisUpdate field - -### 4.9.8 Maximum latency for CRLs (if applicable) -No stipulation. - -### 4.9.9 On-line revocation/status checking availability -OCSP responses MUST conform to RFC6960 and/or RFC5019. OCSP responses MUST either: - -1. Be signed by the CA that issued the Certificates whose revocation status is being checked, or -2. Be signed by an OCSP Responder whose Certificate is signed by the CA that issued the Certificate whose -revocation status is being checked. - -In the latter case, the OCSP signing Certificate MUST contain an extension of type id-pkix-ocsp-nocheck, as -defined by RFC6960. - -### 4.9.10 On-line revocation checking requirements -Effective 1 January 2013, the CA SHALL support an OCSP capability using the GET method for Certificates issued -in accordance with these Requirements. - -For the status of Subscriber Certificates: - -The CA SHALL update information provided via an Online Certificate Status Protocol at least every four days. OCSP responses from this service MUST have a maximum expiration time of ten days. - -For the status of Subordinate CA Certificates: - -The CA SHALL update information provided via an Online Certificate Status Protocol at least (i) every twelve months and (ii) within 24 hours after revoking a Subordinate CA Certificate. - -If the OCSP responder receives a request for status of a certificate that has not been issued, then the responder SHOULD NOT respond with a "good" status. The CA SHOULD monitor the responder for such requests as part of its security response procedures. - -Effective 1 August 2013, OCSP responders for CAs which are not Technically Constrained in line with Section 7.1.5 MUST NOT respond with a "good" status for such certificates. - -### 4.9.11 Other forms of revocation advertisements available -If the Subscriber Certificate is for a high-traffic FQDN, the CA MAY rely on stapling, in accordance with [RFC4366], to distribute its OCSP responses. In this case, the CA SHALL ensure that the Subscriber "staples" the OCSP response for the Certificate in its TLS handshake. The CA SHALL enforce this requirement on the Subscriber either contractually, through the Subscriber Agreement or Terms of Use, or by technical review measures implemented by the CA. - -### 4.9.12 Special requirements re key compromise -See Section 4.9.1. - -### 4.9.13 Circumstances for suspension -The Repository MUST NOT include entries that indicate that a Certificate is suspended. - -### 4.9.14 Who can request suspension -Not applicable. - -### 4.9.15 Procedure for suspension request -Not applicable. - -### 4.9.16 Limits on suspension period -Not applicable. - -## 4.10 Certificate status services - -### 4.10.1 Operational characteristics -Revocation entries on a CRL or OCSP Response MUST NOT be removed until after the Expiry Date of the revoked -Certificate - -### 4.10.2 Service availability -The CA SHALL operate and maintain its CRL and OCSP capability with resources sufficient to provide a response time of ten seconds or less under normal operating conditions. - -The CA SHALL maintain an online 24x7 Repository that application software can use to automatically check the current status of all unexpired Certificates issued by the CA. - -The CA SHALL maintain a continuous 24x7 ability to respond internally to a high-priority Certificate Problem Report, and where appropriate, forward such a complaint to law enforcement authorities, and/or revoke a Certificate that is the subject of such a complaint. - -### 4.10.3 Optional features -No stipulation. - -## 4.11 End of subscription -No stipulation. - -## 4.12 Key escrow and recovery - -### 4.12.1 Key escrow and recovery policy and practices -No stipulation. - -### 4.12.2 Session key encapsulation and recovery policy and practices -Not applicable. - -# 5. MANAGEMENT, OPERATIONAL, AND PHYSICAL CONTROLS - -The CA/Browser Forum's Network and Certificate System Security Requirements are incorporated by reference as if fully set forth herein. - -The CA SHALL develop, implement, and maintain a comprehensive security program designed to: - -1. Protect the confidentiality, integrity, and availability of Certificate Data and Certificate Management Processes; -2. Protect against anticipated threats or hazards to the confidentiality, integrity, and availability of the Certificate Data and Certificate Management Processes; -3. Protect against unauthorized or unlawful access, use, disclosure, alteration, or destruction of any Certificate Data or Certificate Management Processes; -4. Protect against accidental loss or destruction of, or damage to, any Certificate Data or Certificate Management Processes; and -5. Comply with all other security requirements applicable to the CA by law. - -The Certificate Management Process MUST include: - -1. physical security and environmental controls; -2. system integrity controls, including configuration management, integrity maintenance of trusted code, and malware detection/prevention; -3. network security and firewall management, including port restrictions and IP address filtering; -4. user management, separate trusted-role assignments, education, awareness, and training; and -5. logical access controls, activity logging, and inactivity time-outs to provide individual accountability. - -The CA's security program MUST include an annual Risk Assessment that: - -1. Identifies foreseeable internal and external threats that could result in unauthorized access, disclosure, misuse, alteration, or destruction of any Certificate Data or Certificate Management Processes; -2. Assesses the likelihood and potential damage of these threats, taking into consideration the sensitivity of the Certificate Data and Certificate Management Processes; and -3. Assesses the sufficiency of the policies, procedures, information systems, technology, and other arrangements that the CA has in place to counter such threats. - -Based on the Risk Assessment, the CA SHALL develop, implement, and maintain a security plan consisting of security procedures, measures, and products designed to achieve the objectives set forth above and to manage and control the risks identified during the Risk Assessment, commensurate with the sensitivity of the Certificate Data and Certificate Management Processes. The security plan MUST include administrative, organizational, technical, and physical safeguards appropriate to the sensitivity of the Certificate Data and Certificate Management Processes. The security plan MUST also take into account then-available technology and the cost of implementing the specific measures, and SHALL implement a reasonable level of security appropriate to the harm that might result from a breach of security and the nature of the data to be protected. -{:.br data-sect="16.3"} - -## 5.1 PHYSICAL SECURITY CONTROLS - -### 5.1.1 Site location and construction - -### 5.1.2 Physical access - -### 5.1.3 Power and air conditioning - -### 5.1.4 Water exposures - -### 5.1.5 Fire prevention and protection - -### 5.1.6 Media storage - -### 5.1.7 Waste disposal - -### 5.1.8 Off-site backup - -## 5.2 Procedural controls - -### 5.2.1 Trusted roles - -### 5.2.2 Number of Individuals Required per Task -The CA Private Key SHALL be backed up, stored, and recovered only by personnel in trusted roles using, at least, dual control in a physically secured environment. - -### 5.2.3 Identification and authentication for each role - -### 5.2.4 Roles requiring separation of duties - -## 5.3 Personnel controls - -### 5.3.1 Qualifications, experience, and clearance requirements -Prior to the engagement of any person in the Certificate Management Process, whether as an employee, agent, or an independent contractor of the CA, the CA SHALL verify the identity and trustworthiness of such person. - -### 5.3.2 Background check procedures - -### 5.3.3 Training Requirements and Procedures -The CA SHALL provide all personnel performing information verification duties with skills-training that covers basic Public Key Infrastructure knowledge, authentication and vetting policies and procedures (including the CA's Certificate Policy and/or Certification Practice Statement), common threats to the information verification process (including phishing and other social engineering tactics), and these Requirements. - -The CA SHALL maintain records of such training and ensure that personnel entrusted with Validation Specialist duties maintain a skill level that enables them to perform such duties satisfactorily. - -The CA SHALL document that each Validation Specialist possesses the skills required by a task before allowing the Validation Specialist to perform that task. - -The CA SHALL require all Validation Specialists to pass an examination provided by the CA on the information verification requirements outlined in these Requirements. - -### 5.3.4 Retraining frequency and requirements -All personnel in Trusted roles SHALL maintain skill levels consistent with the CA's training and performance programs. - -### 5.3.5 Job rotation frequency and sequence - -### 5.3.6 Sanctions for unauthorized actions - -### 5.3.7 Independent Contractor Controls -The CA SHALL verify that the Delegated Third Party's personnel involved in the issuance of a Certificate meet the training and skills requirements of Section 5.3.3 and the document retention and event logging requirements of Section 5.4.1. - -### 5.3.8 Documentation supplied to personnel - -## 5.4 Audit logging procedures - -### 5.4.1 Types of events recorded -The CA and each Delegated Third Party SHALL record details of the actions taken to process a certificate request and to issue a Certificate, including all information generated and documentation received in connection with the certificate request; the time and date; and the personnel involved. The CA SHALL make these records available to its Qualified Auditor as proof of the CA's compliance with these Requirements. - -The CA SHALL record at least the following events: - -1. CA key lifecycle management events, including: - - a. Key generation, backup, storage, recovery, archival, and destruction; and - b. Cryptographic device lifecycle management events. - -2. CA and Subscriber Certificate lifecycle management events, including: - - a. Certificate requests, renewal, and re-key requests, and revocation; - b. All verification activities stipulated in these Requirements and the CA's Certification Practice Statement; - c. Date, time, phone number used, persons spoken to, and end results of verification telephone calls; - d. Acceptance and rejection of certificate requests; Frequency of Processing Log - e. Issuance of Certificates; and - f. Generation of Certificate Revocation Lists and OCSP entries. - -3. Security events, including: - - a. Successful and unsuccessful PKI system access attempts; - b. PKI and security system actions performed; - c. Security profile changes; - d. System crashes, hardware failures, and other anomalies; - e. Firewall and router activities; and - f. Entries to and exits from the CA facility. - -Log entries MUST include the following elements: - -1. Date and time of entry; -2. Identity of the person making the journal entry; and -3. Description of the entry. - -### 5.4.2 Frequency for Processing and Archiving Audit Logs - -### 5.4.3 Retention Period for Audit Logs -The CA SHALL retain any audit logs generated for at least seven years. The CA SHALL make these audit logs available to its Qualified Auditor upon request. - -### 5.4.4 Protection of Audit Log - -### 5.4.5 Audit Log Backup Procedures - -### 5.4.6 Audit Log Accumulation System (internal vs. external) - -### 5.4.7 Notification to event-causing subject - -### 5.4.8 Vulnerability assessments -Additionally, the CA's security program MUST include an annual Risk Assessment that: - -1. Identifies foreseeable internal and external threats that could result in unauthorized access, disclosure, misuse, alteration, or destruction of any Certificate Data or Certificate Management Processes; -2. Assesses the likelihood and potential damage of these threats, taking into consideration the sensitivity of the Certificate Data and Certificate Management Processes; and -3. Assesses the sufficiency of the policies, procedures, information systems, technology, and other arrangements that the CA has in place to counter such threats. - -## 5.5 Records archival - -### 5.5.1 Types of records archived - -### 5.5.2 Retention period for archive -The CA SHALL retain all documentation relating to certificate requests and the verification thereof, and all Certificates and revocation thereof, for at least seven years after any Certificate based on that documentation ceases to be valid. - -### 5.5.3 Protection of archive - -### 5.5.4 Archive backup procedures - -### 5.5.5 Requirements for time-stamping of records - -### 5.5.6 Archive collection system (internal or external) - -### 5.5.7 Procedures to obtain and verify archive information - -## 5.6 Key changeover - -## 5.7 Compromise and disaster recovery - -### 5.7.1 Incident and compromise handling procedures -CA organizations shall have an Incident Response Plan and a Disaster Recovery Plan. - -The CA SHALL document a business continuity and disaster recovery procedures designed to notify and reasonably protect Application Software Suppliers, Subscribers, and Relying Parties in the event of a disaster, security compromise, or business failure. The CA is not required to publicly disclose its business continuity plans but SHALL make its business continuity plan and security plans available to the CA's auditors upon request. The CA SHALL annually test, review, and update these procedures. - -The business continuity plan MUST include: - -1. The conditions for activating the plan, -2. Emergency procedures, -3. Fallback procedures, -4. Resumption procedures, -5. A maintenance schedule for the plan; -6. Awareness and education requirements; -7. The responsibilities of the individuals; -8. Recovery time objective (RTO); -9. Regular testing of contingency plans. -10. The CA's plan to maintain or restore the CA's business operations in a timely manner following interruption to or failure of critical business processes -11. A requirement to store critical cryptographic materials (i.e., secure cryptographic device and activation materials) at an alternate location; -12. What constitutes an acceptable system outage and recovery time -13. How frequently backup copies of essential business information and software are taken; -14. The distance of recovery facilities to the CA's main site; and -15. Procedures for securing its facility to the extent possible during the period of time following a disaster and prior to restoring a secure environment either at the original or a remote site. - -### 5.7.2 Recovery Procedures if Computing resources, software, and/or data are corrupted - -### 5.7.3 Recovery Procedures after Key Compromise - -### 5.7.4 Business continuity capabilities after a disaster - -## 5.8 CA or RA termination - -# 6. TECHNICAL SECURITY CONTROLS - -## 6.1 Key pair generation and installation - -### 6.1.1 Key pair generation - -#### 6.1.1.1 CA Key Pair Generation -For Root CA Key Pairs created after the Effective Date that are either (i) used as Root CA Key Pairs or (ii) Key Pairs generated for a subordinate CA that is not the operator of the Root CA or an Affiliate of the Root CA, the CA SHALL: - -1. prepare and follow a Key Generation Script, -2. have a Qualified Auditor witness the Root CA Key Pair generation process or record a video of the entire Root CA Key Pair generation process, and -3. have a Qualified Auditor issue a report opining that the CA followed its key ceremony during its Key and Certificate generation process and the controls used to ensure the integrity and confidentiality of the Key Pair. - -For other CA Key Pairs created after the Effective Date that are for the operator of the Root CA or an Affiliate of the Root CA, the CA SHOULD: - -1. prepare and follow a Key Generation Script and -2. have a Qualified Auditor witness the Root CA Key Pair generation process or record a video of the entire Root CA Key Pair generation process. - -In all cases, the CA SHALL: - -1. generate the keys in a physically secured environment as described in the CA's Certification Practice Statement; -2. generate the CA keys using personnel in Trusted Roles under the principles of multiple person control and split knowledge; -3. generate the CA keys within cryptographic modules meeting the applicable technical and business requirements as disclosed in the CA's Certificate Policy and/or Certification Practice Statement; -4. log its CA key generation activities; and -5. maintain effective controls to provide reasonable assurance that the Private Key was generated and protected in conformance with the procedures described in its Certificate Policy and/or Certification Practice Statement and (if applicable) its Key Generation Script. - -#### 6.1.1.2 RA Key Pair Generation - -#### 6.1.1.3 Subscriber Key Pair Generation -The CA SHALL reject a certificate request if the requested Public Key does not meet the requirements set forth in Sections 6.1.5 and 6.1.6 or if it has a known weak Private Key (such as a Debian weak key, see ). - -### 6.1.2 Private key delivery to subscriber -Parties other than the Subscriber SHALL NOT archive the Subscriber Private Key without authorization by the Subscriber. - -If the CA or any of its designated RAs generated the Private Key on behalf of the Subscriber, then the CA SHALL encrypt the Private Key for transport to the Subscriber. - -If the CA or any of its designated RAs become aware that a Subscriber's Private Key has been communicated to an unauthorized person or an organization not affiliated with the Subscriber, then the CA SHALL revoke all certificates that include the Public Key corresponding to the communicated Private Key. - -### 6.1.3 Public key delivery to certificate issuer - -### 6.1.4 CA public key delivery to relying parties - -### 6.1.5 Key sizes -Certificates MUST meet the following requirements for algorithm type and key size. - -(1) Root CA Certificates - -||Validity period beginning on or before 31 Dec 2010|Validity period beginning after 31 Dec 2010| -|---|---|---| -|Digest algorithm|MD5 (NOT RECOMMENDED), SHA-1, SHA-256, SHA-384 or SHA-512|SHA-1\*, SHA-256, SHA-384 or SHA-512| -|Minimum RSA modulus size (bits)|2048\*\*|2048| -|ECC curve|NIST P-256, P-384, or P-521|NIST P-256, P-384, or P-521| -|Minimum DSA modulus and divisor size (bits)\*\*\*|L= 2048 N= 224 or L= 2048 N= 256|L= 2048 N= 224 or L= 2048 N= 256| - -(2) Subordinate CA Certificates - -||Validity period beginning on or before 31 Dec 2010 and ending on or before 31 Dec 2013|Validity period beginning after 31 Dec 2010 or ending after 31 Dec 2013| -|---|---|---| -|Digest algorithm|SHA-1, SHA-256, SHA-384 or SHA-512|SHA-1\*, SHA-256, SHA-384 or SHA-512| -|Minimum RSA modulus size (bits)|1024|2048| -|ECC curve|NIST P-256, P-384, or P-521|NIST P-256, P-384, or P-521| -|Minimum DSA modulus and divisor size (bits)\*\*\*|L= 2048, N= 224 or L= 2048, N= 256|L= 2048 N= 224 or L= 2048 N= 256 - -(3) Subscriber Certificates - -||Validity period *ending* on or before 31 Dec 2013|Validity period *ending* after 31 Dec 2013| -|---|---|---| -|Digest algorithm|SHA1\*, SHA-256, SHA-384 or SHA-512|SHA-1\*, SHA-256, SHA-384 or SHA-512| -|Minimum RSA modulus size (bits)|1024|2048| -|ECC curve|NIST P-256, P-384, or P-521|NIST P-256, P-384, or P-521| -|Minimum DSA modulus and divisor size (bits)|L= 2048, N= 224 or L= 2048, N= 256|L= 2048 N= 224 or L= 2048 N= 256 - -\* SHA-1 MAY be used with RSA keys until SHA-256 is supported widely by browsers used by a substantial portion of relying-parties worldwide. - -\*\* A Root CA Certificate issued prior to 31 Dec. 2010 with an RSA key size less than 2048 bits MAY still serve as a trust anchor for Subscriber Certificates issued in accordance with these Requirements. - -\*\*\* L and N (the bit lengths of modulus p and divisor q, respectively) are described in the Digital Signature Standard, FIPS 186-4 (http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf). - -### 6.1.6 Public key parameters generation and quality checking -RSA: The CA SHALL confirm that the value of the public exponent is an odd number equal to 3 or more. Additionally, the public exponent SHOULD be in the range between 216+1 and 2256-1. The modulus SHOULD also have the following characteristics: an odd number, not the power of a prime, and have no factors smaller than 752. [Source: Section 5.3.3, NIST SP 800-89] - -DSA: Although FIPS 800-57 says that domain parameters may be made available at some accessible site, compliant DSA certificates MUST include all domain parameters. This is to insure maximum interoperability among relying party software. The CA MUST confirm that the value of the public key has the unique correct representation and range in the field, and that the key has the correct order in the subgroup. [Source: Section 5.3.1, NIST SP 800-89] - -ECC: The CA SHOULD confirm the validity of all keys using either the ECC Full Public Key Validation Routine or the ECC Partial Public Key Validation Routine. [Source: Sections 5.6.2.3.2 and 5.6.2.3.3, respectively, of NIST SP 800-56A: Revision 2] - -### 6.1.7 Key usage purposes (as per X.509 v3 key usage field) -Root CA Private Keys MUST NOT be used to sign Certificates except in the following cases: - -1. Self-signed Certificates to represent the Root CA itself; -2. Certificates for Subordinate CAs and Cross Certificates; -3. Certificates for infrastructure purposes (e.g. administrative role certificates, internal CA operational device certificates, and OCSP Response verification Certificates); -4. Certificates issued solely for the purpose of testing products with Certificates issued by a Root CA; and -5. Subscriber Certificates, provided that: - - a. The Root CA uses a 1024-bit RSA signing key that was created prior to the Effective Date; - - b. The Applicant's application was deployed prior to the Effective Date; - - c. The Applicant's application is in active use by the Applicant or the CA uses a documented process to establish that the Certificate's use is required by a substantial number of Relying Parties; - - d. The CA follows a documented process to determine that the Applicant's application poses no known security risks to Relying Parties; - - e. The CA documents that the Applicant's application cannot be patched or replaced without substantial economic outlay; - - f. The CA signs the Subscriber Certificate on or before June 30, 2016; and - - g. The notBefore field in the Subscriber Certificate has a date on or before June 30, 2016. - - -## 6.2 Private Key Protection and Cryptographic Module Engineering Controls -The CA SHALL implement physical and logical safeguards to prevent unauthorized certificate issuance. Protection of the CA Private Key outside the validated system or device specified above MUST consist of physical security, encryption, or a combination of both, implemented in a manner that prevents disclosure of the Private Key. The CA SHALL encrypt its Private Key with an algorithm and key-length that, according to the state of the art, are capable of withstanding cryptanalytic attacks for the residual life of the encrypted key or key part. - -### 6.2.1 Cryptographic module standards and controls - -### 6.2.2 Private key (n out of m) multi-person control - -### 6.2.3 Private key escrow - -### 6.2.4 Private key backup -See Section 5.2.2. - -### 6.2.5 Private key archival -Parties other than the Subordinate CA SHALL NOT archive the Subordinate CA Private Keys without authorization by the Subordinate CA. - -### 6.2.6 Private key transfer into or from a cryptographic module -If the Issuing CA generated the Private Key on behalf of the Subordinate CA, then the Issuing CA SHALL encrypt the Private Key for transport to the Subordinate CA. If the Issuing CA becomes aware that a Subordinate CA's Private Key has been communicated to an unauthorized person or an organization not affiliated with the Subordinate CA, then the Issuing CA SHALL revoke all certificates that include the Public Key corresponding to the communicated Private Key. - -### 6.2.7 Private key storage on cryptographic module -The CA SHALL protect its Private Key in a system or device that has been validated as meeting at least FIPS 140 level 3 or an appropriate Common Criteria Protection Profile or Security Target, EAL 4 (or higher), which includes requirements to protect the Private Key and other assets against known threats. - -### 6.2.8 Activating Private Keys - -### 6.2.9 Deactivating Private Keys - -### 6.2.10 Destroying Private Keys - -### 6.2.11 Cryptographic Module Capabilities - -## 6.3 Other aspects of key pair management - -### 6.3.1 Public key archival - -### 6.3.2 Certificate operational periods and key pair usage periods -Subscriber Certificates issued after the Effective Date MUST have a Validity Period no greater than 60 months. -Except as provided for below, Subscriber Certificates issued after 1 April 2015 MUST have a Validity Period no greater than 39 months. - -Until 30 June 2016, CAs MAY continue to issue Subscriber Certificates with a Validity Period greater than 39 months but not greater than 60 months provided that the CA documents that the Certificate is for a system or software that: - -a. was in use prior to the Effective Date; -b. is currently in use by either the Applicant or a substantial number of Relying Parties; -c. fails to operate if the Validity Period is shorter than 60 months; -d. does not contain known security risks to Relying Parties; and -e. is difficult to patch or replace without substantial economic outlay. - -## 6.4 Activation data - -### 6.4.1 Activation data generation and installation - -### 6.4.2 Activation data protection - -### 6.4.3 Other aspects of activation data - -## 6.5 Computer security controls - -### 6.5.1 Specific computer security technical requirements - -The CA SHALL enforce multi-factor authentication for all accounts capable of directly causing certificate issuance. - -### 6.5.2 Computer security rating - -## 6.6 Life cycle technical controls - -### 6.6.1 System development controls - -### 6.6.2 Security management controls - -### 6.6.3 Life cycle security controls - -## 6.7 Network security controls - -## 6.8 Time-stamping - -# 7. CERTIFICATE, CRL, AND OCSP PROFILES - -## 7.1 Certificate profile - -The CA SHALL meet the technical requirements set forth in Section 2.2 - Publication of Information, Section 6.1.5 - Key Sizes, and Section 6.1.6 - Public Key Parameters Generation and Quality Checking. - -Effective September 30, 2016, CAs SHALL generate non-sequential Certificate serial numbers greater than zero (0) containing at least 64 bits of output from a CSPRNG. - -### 7.1.1 Version number(s) -Certificates MUST be of type X.509 v3. - - -### 7.1.2 Certificate Content and Extensions; Application of RFC 5280 -This section specifies the additional requirements for Certificate content and extensions for Certificates generated after the Effective Date. - -#### 7.1.2.1 Root CA Certificate -a. basicConstraints -This extension MUST appear as a critical extension. The cA field MUST be set true. The pathLenConstraint field SHOULD NOT be present. - -b. keyUsage -This extension MUST be present and MUST be marked critical. Bit positions for keyCertSign and cRLSign MUST be set. If the Root CA Private Key is used for signing OCSP responses, then the digitalSignature bit MUST be set. - -c. certificatePolicies -This extension SHOULD NOT be present. - -d. extendedKeyUsage -This extension MUST NOT be present. - -e. Subject Information - -The Certificate Subject MUST contain the following: -- countryName (OID 2.5.4.6). This field MUST contain the two-letter ISO 3166-1 country code for the country in which the CA's place of business is located. - -- organizationName (OID 2.5.4.10): This field MUST be present and the contents MUST contain either the Subject CA’s name or DBA as verified under Section 3.2.2.2. The CA may include information in this field that differs slightly from the verified name, such as common variations or abbreviations, provided that the CA documents the difference and any abbreviations used are locally accepted abbreviations; e.g., if the official record shows “Company Name Incorporated”, the CA MAY use “Company Name Inc.” or “Company Name". - -#### 7.1.2.2 Subordinate CA Certificate -a. certificatePolicies - - This extension MUST be present and SHOULD NOT be marked critical. - - certificatePolicies:policyIdentifier (Required) - - The following fields MAY be present if the Subordinate CA is not an Affiliate of the entity that controls the Root CA. - - certificatePolicies:policyQualifiers:policyQualifierId (Optional) - - * id-qt 1 [RFC 5280]. - - * certificatePolicies:policyQualifiers:qualifier:cPSuri (Optional) - - * HTTP URL for the Root CA's Certificate Policyies, Certification Practice Statement, Relying Party Agreement, or other pointer to online policy information provided by the CA. - -b. cRLDistributionPoints - - This extension MUST be present and MUST NOT be marked critical. It MUST contain the HTTP URL of the CA's CRL service. - -c. authorityInformationAccess - - With the exception of stapling, which is noted below, this extension MUST be present. It MUST NOT be marked critical, and it MUST contain the HTTP URL of the Issuing CA's OCSP responder (accessMethod = 1.3.6.1.5.5.7.48.1). It SHOULD also contain the HTTP URL of the Issuing CA's certificate (accessMethod = 1.3.6.1.5.5.7.48.2). - - The HTTP URL of the Issuing CA's OCSP responder MAY be omitted, provided that the Subscriber "staples" the OCSP response for the Certificate in its TLS handshakes [RFC4366]. - -d. basicConstraints - - This extension MUST be present and MUST be marked critical. The cA field MUST be set true. The pathLenConstraint field MAY be present. - -e. keyUsage - - This extension MUST be present and MUST be marked critical. Bit positions for keyCertSign and cRLSign MUST be set. If the Subordinate CA Private Key is used for signing OCSP responses, then the digitalSignature bit MUST be set. - -f. nameConstraints (optional) - - If present, this extension SHOULD be marked critical\*. - - \* Non-critical Name Constraints are an exception to RFC 5280 (4.2.1.10), however, they MAY be used until the Name Constraints extension is supported by Application Software Suppliers whose software is used by a substantial portion of Relying Parties worldwide. - -g. extkeyUsage (optional) - - For Subordinate CA Certificates to be Technically constrained in line with section 7.1.5, then either the value id-kp-serverAuth [RFC5280] or id-kp-clientAuth [RFC5280] or both values MUST be present\*\*. - - Other values MAY be present. - - If present, this extension SHOULD be marked non-critical. - - \*\* Generally Extended Key Usage will only appear within end entity certificates (as highlighted in RFC 5280 (4.2.1.12)), however, Subordinate CAs MAY include the extension to further protect relying parties until the use of the extension is consistent between Application Software Suppliers whose software is used by a substantial portion of Relying Parties worldwide. - -h. Subject Information - -The Certificate Subject MUST contain the following: -- countryName (OID 2.5.4.6). This field MUST contain the two-letter ISO 3166-1 country code for the country in which the CA's place of business is located. -- organizationName (OID 2.5.4.10): This field MUST be present and the contents MUST contain either the Subject CA’s name or DBA as verified under Section 3.2.2.2. The CA may include information in this field that differs slightly from the verified name, such as common variations or abbreviations, provided that the CA documents the difference and any abbreviations used are locally accepted abbreviations; e.g., if the official record shows “Company Name Incorporated”, the CA MAY use “Company Name Inc.” or “Company Name". - -#### 7.1.2.3 Subscriber Certificate -a. certificatePolicies - - This extension MUST be present and SHOULD NOT be marked critical. - - * certificatePolicies:policyIdentifier (Required) - - A Policy Identifier, defined by the issuing CA, that indicates a Certificate Policy asserting the issuing CA's adherence to and compliance with these Requirements. - - The following extensions MAY be present: - - * certificatePolicies:policyQualifiers:policyQualifierId (Recommended) - - * id-qt 1 [RFC 5280]. - - * certificatePolicies:policyQualifiers:qualifier:cPSuri (Optional) - - HTTP URL for the Subordinate CA's Certification Practice Statement, Relying Party Agreement or other pointer to online information provided by the CA. - -b. cRLDistributionPoints - - This extension MAY be present. If present, it MUST NOT be marked critical, and it MUST contain the HTTP URL of the CA's CRL service. - -c. authorityInformationAccess - - With the exception of stapling, which is noted below, this extension MUST be present. It MUST NOT be marked critical, and it MUST contain the HTTP URL of the Issuing CA's OCSP responder (accessMethod = 1.3.6.1.5.5.7.48.1). It SHOULD also contain the HTTP URL of the Issuing CA's certificate (accessMethod = 1.3.6.1.5.5.7.48.2). - - The HTTP URL of the Issuing CA's OCSP responder MAY be omitted provided that the Subscriber "staples" OCSP responses for the Certificate in its TLS handshakes [RFC4366]. - -d. basicConstraints (optional) - - The cA field MUST NOT be true. - -e. keyUsage (optional) - - If present, bit positions for keyCertSign and cRLSign MUST NOT be set. - -f. extKeyUsage (required) - - Either the value id-kp-serverAuth [RFC5280] or id-kp-clientAuth [RFC5280] or both values MUST be present. id-kp-emailProtection [RFC5280] MAY be present. Other values SHOULD NOT be present. - -#### 7.1.2.4 All Certificates -All other fields and extensions MUST be set in accordance with RFC 5280. The CA SHALL NOT issue a Certificate that contains a keyUsage flag, extendedKeyUsage value, Certificate extension, or other data not specified in section 7.1.2.1, 7.1.2.2, or 7.1.2.3 unless the CA is aware of a reason for including the data in the Certificate. - -CAs SHALL NOT issue a Certificate with: - -a. Extensions that do not apply in the context of the public Internet (such as an extendedKeyUsage value for a service that is only valid in the context of a privately managed network), unless: - - i. such value falls within an OID arc for which the Applicant demonstrates ownership, or - ii. the Applicant can otherwise demonstrate the right to assert the data in a public context; or - - -b. semantics that, if included, will mislead a Relying Party about the certificate information verified by the CA (such as including extendedKeyUsage value for a smart card, where the CA is not able to verify that the corresponding Private Key is confined to such hardware due to remote issuance). - -#### 7.1.2.5 Application of RFC 5280 -For purposes of clarification, a Precertificate, as described in RFC 6962 - Certificate Transparency, shall not be considered to be a "certificate" subject to the requirements of RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile under these Baseline Requirements. - -### 7.1.3 Algorithm object identifiers -Effective 1 January 2016, CAs MUST NOT issue any new Subscriber certificates or Subordinate CA certificates using the SHA-1 hash algorithm. CAs MAY continue to sign certificates to verify OCSP responses using SHA1 until 1 January 2017. This Section 7.1.3 does not apply to Root CA or CA cross certificates. CAs MAY continue to use their existing SHA-1 Root Certificates. SHA-2 Subscriber certificates SHOULD NOT chain up to a SHA-1Subordinate CA Certificate. - -Effective 16 January 2015, CAs SHOULD NOT issue Subscriber Certificates utilizing the SHA-1 algorithm with an Expiry Date greater than 1 January 2017 because Application Software Providers are in the process of deprecating and/or removing the SHA-1 algorithm from their software, and they have communicated that CAs and Subscribers using such certificates do so at their own risk. - -### 7.1.4 Name forms - -#### 7.1.4.1 Issuing CA Certificate Subject -The content of the Certificate Issuer Distinguished Name field MUST match the Subject DN of the Issuing CA to support Name chaining as specified in RFC 5280, section 4.1.2.4. - -#### 7.1.4.2 Subject Information for Standard Server Authentication certificates -By issuing the Certificate, the CA represents that it followed the procedure set forth in its Certificate Policy and/or Certification Practice Statement to verify that, as of the Certificate's issuance date, all of the Subject Information was accurate. CAs SHALL NOT include a Domain Name or IP Address in a Subject attribute except as specified in Section 3.2.2.4 or Section 3.2.2.5. - -#### 7.1.4.2.1 Subject Alternative Name Extension -Certificate Field: extensions:subjectAltName -Required/Optional: Required -Contents: This extension MUST contain at least one entry. Each entry MUST be either a dNSName containing the Fully-Qualified Domain Name or an iPAddress containing the IP address of a server. The CA MUST confirm that the Applicant controls the Fully-Qualified Domain Name or IP address or has been granted the right to use it by the Domain Name Registrant or IP address assignee, as appropriate. - -Wildcard FQDNs are permitted. - -As of the Effective Date of these Requirements, prior to the issuance of a Certificate with a subjectAlternativeName extension or Subject commonName field containing a Reserved IP Address or Internal Name, the CA SHALL notify the Applicant that the use of such Certificates has been deprecated by the CA / Browser Forum and that the practice will be eliminated by October 2016. Also as of the Effective Date, the CA SHALL NOT issue a certificate with an Expiry Date later than 1 November 2015 with a subjectAlternativeName extension or Subject commonName field containing a Reserved IP Address or Internal Name. Effective 1 October 2016, CAs SHALL revoke all unexpired Certificates whose subjectAlternativeName extension or Subject commonName field contains a Reserved IP Address or Internal Name. - -#### 7.1.4.2.2. Subject Distinguished Name Fields -a. Certificate Field: subject:commonName (OID 2.5.4.3) -Required/Optional: Deprecated (Discouraged, but not prohibited) -Contents: If present, this field MUST contain a single IP address or Fully-Qualified Domain Name that is one of the values contained in the Certificate's subjectAltName extension (see Section 7.1.4.2.1). - -b. Certificate Field: subject:organizationName (OID 2.5.4.10) -Optional. -Contents: If present, the subject:organizationName field MUST contain either the Subject's name or DBA as verified under Section 3.2.2.2. The CA may include information in this field that differs slightly from the verified name, such as common variations or abbreviations, provided that the CA documents the difference and any abbreviations used are locally accepted abbreviations; e.g., if the official record shows "Company Name Incorporated", the CA MAY use "Company Name Inc." or "Company Name". Because Subject name attributes for individuals (e.g. givenName (2.5.4.42) and surname (2.5.4.4)) are not broadly supported by application software, the CA MAY use the subject:organizationName field to convey a natural person Subject's name or DBA. - -c. Certificate Field: subject:givenName (2.5.4.42) and subject:surname (2.5.4.4) -Optional. -Contents: If present, the subject:givenName field and subject:surname field MUST contain an natural person Subject’s name as verified under Section 3.2.3. A Certificate containing a subject:givenName field or subject:surname field MUST contain the (2.23.140.1.2.3) Certificate Policy OID. - -d. Certificate Field: Number and street: subject:streetAddress (OID: 2.5.4.9) -Optional if the subject:organizationName field, subject: givenName field, or subject:surname field are present. -Prohibited if the subject:organizationName field, subject:givenName, and subject:surname field are absent. -Contents: If present, the subject:streetAddress field MUST contain the Subject's street address information as verified under Section 3.2.2.1. - -e. Certificate Field: subject:localityName (OID: 2.5.4.7) -Required if the subject:organizationName field, subject:givenName field, or subject:surname field are present and the subject:stateOrProvinceName field is absent. -Optional if the subject:stateOrProvinceName field and the subject:organizationName field, subject:givenName field, or subject:surname field are present. -Prohibited if the subject:organizationName field, subject:givenName, and subject:surname field are absent. -Contents: If present, the subject:localityName field MUST contain the Subject's locality information as verified under Section 3.2.2.1. If the subject:countryName field specifies the ISO 3166-1 user-assigned code of XX in accordance with Section 7.1.4.2.2(g), the localityName field MAY contain the Subject's locality and/or state or province information as verified under Section 3.2.2.1. - -f. Certificate Field: subject:stateOrProvinceName (OID: 2.5.4.8) -Required if the subject:organizationName field, subject:givenName field, or subject:surname field are present and subject:localityName field is absent. -Optional if the subject:localityName field and the subject:organizationName field, the subject:givenName field, or the subject:surname field are present. -Prohibited if the subject:organizationName field, the subject:givenName field, or subject:surname field are absent. -Contents: If present, the subject:stateOrProvinceName field MUST contain the Subject's state or province information as verified under Section 3.2.2.1. If the subject:countryName field specifies the ISO 3166-1 user-assigned code of XX in accordance with Section 7.1.4.2.2(g), the subject:stateOrProvinceName field MAY contain the full name of the Subject's country information as verified under Section 3.2.2.1. - -g. Certificate Field: subject:postalCode (OID: 2.5.4.17) -Optional if the subject:organizationName, subject:givenName field, or subject:surname fields are present. -Prohibited if the subject:organizationName field, subject:givenName field, or subject:surname field are absent. -Contents: If present, the subject:postalCode field MUST contain the Subject's zip or postal information as verified under Section 3.2.2.1. - -h. Certificate Field: subject:countryName (OID: 2.5.4.6) -Required if the subject:organizationName field, subject:givenName, or subject:surname field are present. -Optional if the subject:organizationName field, subject:givenName field, and subject:surname field are absent. -Contents: If the subject:organizationName field is present, the subject:countryName MUST contain the two-letter ISO 3166-1 country code associated with the location of the Subject verified under Section 3.2.2.1. If the subject:organizationName field is absent, the subject:countryName field MAY contain the two-letter ISO 3166-1 country code associated with the Subject as verified in accordance with Section 3.2.2.3. If a Country is not represented by an official ISO 3166-1 country code, the CA MAY specify the ISO 3166-1 user-assigned code of XX indicating that an official ISO 3166-1 alpha-2 code has not been assigned. - -i. Certificate Field: subject:organizationalUnitName -Optional. -The CA SHALL implement a process that prevents an OU attribute from including a name, DBA, tradename, trademark, address, location, or other text that refers to a specific natural person or Legal Entity unless the CA has verified this information in accordance with Section 3.2 and the Certificate also contains subject:organizationName, subject:givenName, subject:surname, subject:localityName, and subject:countryName attributes, also verified in accordance with Section 3.2.2.1. - -j. Other Subject Attributes -All other optional attributes, when present within the subject field, MUST contain information that has been verified by the CA. Optional attributes MUST NOT contain metadata such as '.', '-', and ' ' (i.e. space) characters, and/or any other indication that the value is absent, incomplete, or not applicable. - -#### 7.1.4.3. Subject Information - Subordinate CA Certificates -By issuing a Subordinate CA Certificate, the CA represents that it followed the procedure set forth in its Certificate Policy and/or Certification Practice Statement to verify that, as of the Certificate's issuance date, all of the Subject Information was accurate. - -### 7.1.5 Name constraints -For a Subordinate CA Certificate to be considered Technically Constrained, the certificate MUST include an Extended Key Usage (EKU) extension specifying all extended key usages that the Subordinate CA Certificate is authorized to issue certificates for. The anyExtendedKeyUsage KeyPurposeId MUST NOT appear within this extension. - -If the Subordinate CA Certificate includes the id-kp-serverAuth extended key usage, then the Subordinate CA Certificate MUST include the Name Constraints X.509v3 extension with constraints on dNSName, iPAddress and DirectoryName as follows: - -a. For each dNSName in permittedSubtrees, the CA MUST confirm that the Applicant has registered the dNSName or has been authorized by the domain registrant to act on the registrant's behalf in line with the verification practices of section 3.2.2.4. -b. For each iPAddress range in permittedSubtrees, the CA MUST confirm that the Applicant has been assigned the iPAddress range or has been authorized by the assigner to act on the assignee's behalf. -c. For each DirectoryName in permittedSubtrees the CA MUST confirm the Applicants and/or Subsidiary's Organizational name and location such that end entity certificates issued from the subordinate CA Certificate will be in compliancy with section 7.1.2.4 and 7.1.2.5. - -If the Subordinate CA Certificate is not allowed to issue certificates with an iPAddress, then the Subordinate CA Certificate MUST specify the entire IPv4 and IPv6 address ranges in excludedSubtrees. The Subordinate CA Certificate MUST include within excludedSubtrees an iPAddress GeneralName of 8 zero octets (covering the IPv4 address range of 0.0.0.0/0). The Subordinate CA Certificate MUST also include within excludedSubtrees an iPAddress GeneralName of 32 zero octets (covering the IPv6 address range of ::0/0). Otherwise, the Subordinate CA Certificate MUST include at least one iPAddress in permittedSubtrees. - -A decoded example for issuance to the domain and sub domains of example.com by organization :- Example LLC, Boston, Massachusetts, US would be:- - -> X509v3 Name Constraints: -> Permitted: -> DNS:example.com -> DirName: C=US, ST=MA, L=Boston, O=Example LLC -> Excluded: -> IP:0.0.0.0/0.0.0.0 -> IP:0:0:0:0:0:0:0:0/0:0:0:0:0:0:0:0 - -If the Subordinate CA is not allowed to issue certificates with dNSNames, then the Subordinate CA Certificate MUST include a zero-length dNSName in excludedSubtrees. Otherwise, the Subordinate CA Certificate MUST include at least one dNSName in permittedSubtrees. - -### 7.1.6 Certificate policy object identifier - -#### 7.1.6.1. Reserved Certificate Policy Identifiers -This section describes the content requirements for the Root CA, Subordinate CA, and Subscriber Certificates, as they relate to the identification of Certificate Policy. - -The following Certificate Policy identifiers are reserved for use by CAs as an optional means of asserting compliance with these Requirements as follows: - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) domain-validated(1)} (2.23.140.1.2.1), if the Certificate complies with these Requirements but lacks Subject Identity Information that is verified in accordance with Section 3.2.2.1 or Section 3.2.3. - -If the Certificate asserts the policy identifier of 2.23.140.1.2.1, then it MUST NOT include organizationName, givenName, surname, streetAddress, localityName, stateOrProvinceName, or postalCode in the Subject field. - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) organization-validated(2)} (2.23.140.1.2.2), if the Certificate complies with these Requirements and includes Subject Identity Information that is verified in accordance with Section 3.2.2.1. - -{joint-iso-itu-t(2) international-organizations(23) ca-browser-forum(140) certificate-policies(1) baseline-requirements(2) individual-validated(3)} (2.23.140.1.2.3), if the Certificate complies with these Requirements and includes Subject Identity Information that is verified in accordance with Section 3.2.3. - -If the Certificate asserts the policy identifier of 2.23.140.1.2.2, then it MUST also include organizationName, localityName (to the extent such field is required under Section 7.1.4.2.2), stateOrProvinceName (to the extent such field is required under Section 7.1.4.2.2), and countryName in the Subject field. If the Certificate asserts the policy identifier of 2.23.140.1.2.3, then it MUST also include (i) either organizationName or givenName and surname, (ii) localityName (to the extent such field is required under Section 7.1.4.2.2), (iii) stateOrProvinceName (to the extent required under Section 7.1.4.2.2), and (iv) countryName in the Subject field. - -#### 7.1.6.2. Root CA Certificates -A Root CA Certificate SHOULD NOT contain the certificatePolicies extension. - -#### 7.1.6.3 Subordinate CA Certificates -A Certificate issued after the Effective Date to a Subordinate CA that is not an Affiliate of the Issuing CA: - -1. MUST include one or more explicit policy identifiers that indicates the Subordinate CA's adherence to and compliance with these Requirements (i.e. either the CA/Browser Forum reserved identifiers or identifiers defined by the CA in its Certificate Policy and/or Certification Practice Statement) and -2. MUST NOT contain the "anyPolicy" identifier (2.5.29.32.0). - -A Certificate issued after the Effective Date to a Subordinate CA that is an affiliate of the Issuing CA: - -1. MAY include the CA/Browser Forum reserved identifiers or an identifier defined by the CA in its Certificate Policy and/or Certification Practice Statement to indicate the Subordinate CA's compliance with these Requirements and -2. MAY contain the "anyPolicy" identifier (2.5.29.32.0) in place of an explicit policy identifier. - -A Subordinate CA SHALL represent, in its Certificate Policy and/or Certification Practice Statement, that all Certificates containing a policy identifier indicating compliance with these Requirements are issued and managed in accordance with these Requirements. - -#### 7.1.6.4 Subscriber Certificates -A Certificate issued to a Subscriber MUST contain one or more policy identifier(s), defined by the Issuing CA, in the Certificate's certificatePolicies extension that indicates adherence to and compliance with these Requirements. CAs complying with these Requirements MAY also assert one of the reserved policy OIDs in such Certificates. - -The issuing CA SHALL document in its Certificate Policy or Certification Practice Statement that the Certificates it issues containing the specified policy identifier(s) are managed in accordance with these Requirements. - -### 7.1.7 Usage of Policy Constraints extension - -### 7.1.8 Policy qualifiers syntax and semantics - -### 7.1.9 Processing semantics for the critical Certificate Policies extension - -## 7.2 CRL profile - -### 7.2.1 Version number(s) - -### 7.2.2 CRL and CRL entry extensions - -## 7.3 OCSP profile - -### 7.3.1 Version number(s) - -### 7.3.2 OCSP extensions - -# 8. COMPLIANCE AUDIT AND OTHER ASSESSMENTS -The CA SHALL at all times: - -1. Issue Certificates and operate its PKI in accordance with all law applicable to its business and the Certificates it issues in every jurisdiction in which it operates; -2. Comply with these Requirements; -3. Comply with the audit requirements set forth in this section; and -4. Be licensed as a CA in each jurisdiction where it operates, if licensing is required by the law of such jurisdiction for the issuance of Certificates. - -**Implementers' Note**: Version 1.1.6 of the SSL Baseline Requirements was published on July 29, 2013. Version 2.0 of WebTrust's Principles and Criteria for Certifiation Authorities - SSL Baseline with Network Security and ETSI's Electronic Signatures and Infrastructures (ESI) 102 042 incorporate version 1.1.6 of these Baseline Requirements and version 1.0 of the Network and Certificate System Security Requirements. The CA/Browser Forum continues to improve the Baseline Requirements while WebTrust and ETSI also continue to update their audit criteria. We encourage all CAs to conform to each revision herein on the date specified without awaiting a corresponding update to an applicable audit criterion. In the event of a conflict between an existing audit criterion and a guideline revision, we will communicate with the audit community and attempt to resolve any uncertainty, and we will respond to implementation questions directed to questions@cabforum.org. Our coordination with compliance auditors will continue as we develop guideline revision cycles that harmonize with the revision cycles for audit criteria, the compliance auditing periods and cycles of CAs, and the CA/Browser Forum's guideline implementation dates. - -## 8.1 Frequency or circumstances of assessment -Certificates that are capable of being used to issue new certificates MUST either be Technically Constrained in line with section 7.1.5 and audited in line with section 8.7 only, or Unconstrained and fully audited in line with all remaining requirements from this section. A Certificate is deemed as capable of being used to issue new certificates if it contains an X.509v3 basicConstraints extension, with the cA boolean set to true and is therefore by definition a Root CA Certificate or a Subordinate CA Certificate. - -The period during which the CA issues Certificates SHALL be divided into an unbroken sequence of audit periods. -An audit period MUST NOT exceed one year in duration. - -If the CA has a currently valid Audit Report indicating compliance with an audit scheme listed in Section 8.1, then no pre-issuance readiness assessment is necessary. - -If the CA does not have a currently valid Audit Report indicating compliance with one of the audit schemes listed in -Section 8.1, then, before issuing Publicly-Trusted Certificates, the CA SHALL successfully complete a point-in-time readiness assessment performed in accordance with applicable standards under one of the audit schemes listed in Section 8.1. The point-in-time readiness assessment SHALL be completed no earlier than twelve (12) months prior to issuing Publicly-Trusted Certificates and SHALL be followed by a complete audit under such scheme within ninety (90) days of issuing the first Publicly-Trusted Certificate. - -## 8.2 Identity/qualifications of assessor -The CA's audit SHALL be performed by a Qualified Auditor. A Qualified Auditor means a natural person, Legal Entity, or group of natural persons or Legal Entities that collectively possess the following qualifications and skills: - -1. Independence from the subject of the audit; -2. The ability to conduct an audit that addresses the criteria specified in an Eligible Audit Scheme (see Section 8.1); -3. Employs individuals who have proficiency in examining Public Key Infrastructure technology, information security tools and techniques, information technology and security auditing, and the third-party attestation function; -4. (For audits conducted in accordance with any one of the ETSI standards) accredited in accordance with ISO 17065 applying the requirements specified in ETSI EN 319 403; -5. (For audits conducted in accordance with the WebTrust standard) licensed by WebTrust; -6. Bound by law, government regulation, or professional code of ethics; and -7. Except in the case of an Internal Government Auditing Agency, maintains Professional Liability/Errors & Omissions insurance with policy limits of at least one million US dollars in coverage - -## 8.3 Assessor's relationship to assessed entity - -## 8.4 Topics covered by assessment -The CA SHALL undergo an audit in accordance with one of the following schemes: - -1. WebTrust for Certification Authorities v2.0; -2. A national scheme that audits conformance to ETSI TS 102 042 / ETSI EN 319 411-1; or -4. If a Government CA is required by its Certificate Policy to use a different internal audit scheme, it MAY use such scheme provided that the audit either (a) encompasses all requirements of one of the above schemes or (b) consists of comparable criteria that are available for public review. - -Whichever scheme is chosen, it MUST incorporate periodic monitoring and/or accountability procedures to ensure that its audits continue to be conducted in accordance with the requirements of the scheme. - -The audit MUST be conducted by a Qualified Auditor, as specified in Section 8.3. - -If a Delegated Third Party is not currently audited in accordance with Section 8 and is not an Enterprise RA, then prior to certificate issuance the CA SHALL ensure that the domain control validation process required under Section 3.2.2.4 or IP address verification under 3.2.2.5 has been properly performed by the Delegated Third Party by either (1) using an out-of-band mechanism involving at least one human who is acting either on behalf of the CA or on behalf of the Delegated Third Party to confirm the authenticity of the certificate request or the information supporting the certificate request or (2) performing the domain control validation process itself. - -If the CA is not using one of the above procedures and the Delegated Third Party is not an Enterprise RA, then the CA SHALL obtain an audit report, issued under the auditing standards that underlie the accepted audit schemes found in Section 8.1, that provides an opinion whether the Delegated Third Party's performance complies with either the Delegated Third Party's practice statement or the CA's Certificate Policy and/or Certification Practice Statement. If the opinion is that the Delegated Third Party does not comply, then the CA SHALL not allow the Delegated Third Party to continue performing delegated functions. - -The audit period for the Delegated Third Party SHALL NOT exceed one year (ideally aligned with the CA's audit). However, if the CA or Delegated Third Party is under the operation, control, or supervision of a Government Entity and the audit scheme is completed over multiple years, then the annual audit MUST cover at least the core controls that are required to be audited annually by such scheme plus that portion of all non-core controls that are allowed to be conducted less frequently, but in no case may any non-core control be audited less often than once every three years. - -## 8.5 Actions taken as a result of deficiency - -## 8.6 Communication of results -The Audit Report SHALL state explicitly that it covers the relevant systems and processes used in the issuance of all Certificates that assert one or more of the policy identifiers listed in Section 7.1.6.1. The CA SHALL make the Audit Report publicly available. The CA is not required to make publicly available any general audit findings that do not impact the overall audit opinion. For both government and commercial CAs, the CA SHOULD make its Audit Report publicly available no later than three months after the end of the audit period. In the event of a delay greater than three months, and if so requested by an Application Software Supplier, the CA SHALL provide an explanatory letter signed by the Qualified Auditor. - -## 8.7 Self-Audits -During the period in which the CA issues Certificates, the CA SHALL monitor adherence to its Certificate Policy, Certification Practice Statement and these Requirements and strictly control its service quality by performing self audits on at least a quarterly basis against a randomly selected sample of the greater of one certificate or at least three percent of the Certificates issued by it during the period commencing immediately after the previous self-audit sample was taken. Except for Delegated Third Parties that undergo an annual audit that meets the criteria specified in Section 8.1, the CA SHALL strictly control the service quality of Certificates issued or containing information verified by a Delegated Third Party by having a Validation Specialist employed by the CA perform ongoing quarterly audits against a randomly selected sample of at least the greater of one certificate or three percent of the Certificates verified by the Delegated Third Party in the period beginning immediately after the last sample was taken. The CA SHALL review each Delegated Third Party's practices and procedures to ensure that the Delegated Third Party is in compliance with these Requirements and the relevant Certificate Policy and/or Certification Practice Statement. - -The CA SHALL internally audit each Delegated Third Party's compliance with these Requirements on an annual basis. - -During the period in which a Technically Constrained Subordinate CA issues Certificates, the CA which signed the Subordinate CA SHALL monitor adherence to the CA's Certificate Policy and the Subordinate CA's Certification Practice Statement. On at least a quarterly basis, against a randomly selected sample of the greater of one certificate or at least three percent of the Certificates issued by the Subordinate CA, during the period commencing immediately after the previous audit sample was taken, the CA shall ensure all applicable CP are met. - -# 9. OTHER BUSINESS AND LEGAL MATTERS - -## 9.1 Fees - -### 9.1.1 Certificate issuance or renewal fees - -### 9.1.2 Certificate access fees - -### 9.1.3 Revocation or status information access fees - -### 9.1.4 Fees for other services - -### 9.1.5 Refund policy - -## 9.2 Financial responsibility - -### 9.2.1 Insurance coverage - -### 9.2.2 Other assets - -### 9.2.3 Insurance or warranty coverage for end-entities - -## 9.3 Confidentiality of business information - -### 9.3.1 Scope of confidential information - -### 9.3.2 Information not within the scope of confidential information - -### 9.3.3 Responsibility to protect confidential information - -## 9.4 Privacy of personal information - -### 9.4.1 Privacy plan - -### 9.4.2 Information treated as private - -### 9.4.3 Information not deemed private - -### 9.4.4 Responsibility to protect private information - -### 9.4.5 Notice and consent to use private information - -### 9.4.6 Disclosure pursuant to judicial or administrative process - -### 9.4.7 Other information disclosure circumstances - -## 9.5 Intellectual property rights - -## 9.6 Representations and warranties - -### 9.6.1 CA representations and warranties -By issuing a Certificate, the CA makes the certificate warranties listed herein to the following Certificate Beneficiaries: - -1. The Subscriber that is a party to the Subscriber Agreement or Terms of Use for the Certificate; -2. All Application Software Suppliers with whom the Root CA has entered into a contract for inclusion of its Root Certificate in software distributed by such Application Software Supplier; and -3. All Relying Parties who reasonably rely on a Valid Certificate. -The CA represents and warrants to the Certificate Beneficiaries that, during the period when the Certificate is valid, the CA has complied with these Requirements and its Certificate Policy and/or Certification Practice Statement in issuing and managing the Certificate. - -The Certificate Warranties specifically include, but are not limited to, the following: - -1. **Right to Use Domain Name or IP Address**: That, at the time of issuance, the CA (i) implemented a procedure for verifying that the Applicant either had the right to use, or had control of, the Domain Name(s) and IP address(es) listed in the Certificate's subject field and subjectAltName extension (or, only in the case of Domain Names, was delegated such right or control by someone who had such right to use or control); (ii) followed the procedure when issuing the Certificate; and (iii) accurately described the procedure in the CA's Certificate Policy and/or Certification Practice Statement; -2. **Authorization for Certificate**: That, at the time of issuance, the CA (i) implemented a procedure for verifying that the Subject authorized the issuance of the Certificate and that the Applicant Representative is authorized to request the Certificate on behalf of the Subject; (ii) followed the procedure when issuing the Certificate; and (iii) accurately described the procedure in the CA's Certificate Policy and/or Certification Practice Statement; -3. **Accuracy of Information**: That, at the time of issuance, the CA (i) implemented a procedure for verifying the accuracy of all of the information contained in the Certificate (with the exception of the subject:organizationalUnitName attribute); (ii) followed the procedure when issuing the Certificate; and (iii) accurately described the procedure in the CA's Certificate Policy and/or Certification Practice Statement; -4. **No Misleading Information**: That, at the time of issuance, the CA (i) implemented a procedure for reducing the likelihood that the information contained in the Certificate's subject:organizationalUnitName attribute would be misleading; (ii) followed the procedure when issuing the Certificate; and (iii) accurately described the procedure in the CA's Certificate Policy and/or Certification Practice Statement; -5. **Identity of Applicant**: That, if the Certificate contains Subject Identity Information, the CA (i) implemented a procedure to verify the identity of the Applicant in accordance with Sections 3.2 and 11.2; (ii) followed the procedure when issuing the Certificate; and (iii) accurately described the procedure in the CA's Certificate Policy and/or Certification Practice Statement; -6. **Subscriber Agreement**: That, if the CA and Subscriber are not Affiliated, the Subscriber and CA are parties to a legally valid and enforceable Subscriber Agreement that satisfies these Requirements, or, if the CA and Subscriber are the same entity or are Affiliated, the Applicant Representative acknowledged the Terms of Use; -7. **Status**: That the CA maintains a 24 x 7 publicly-accessible Repository with current information regarding the status (valid or revoked) of all unexpired Certificates; and -8. **Revocation**: That the CA will revoke the Certificate for any of the reasons specified in these Requirements. - -The Root CA SHALL be responsible for the performance and warranties of the Subordinate CA, for the Subordinate CA's compliance with these Requirements, and for all liabilities and indemnification obligations of the Subordinate CA under these Requirements, as if the Root CA were the Subordinate CA issuing the Certificates - - -### 9.6.2 RA representations and warranties -No stipulation. - -### 9.6.3 Subscriber representations and warranties -The CA SHALL require, as part of the Subscriber Agreement or Terms of Use, that the Applicant make the commitments and warranties in this section for the benefit of the CA and the Certificate Beneficiaries. - -Prior to the issuance of a Certificate, the CA SHALL obtain, for the express benefit of the CA and the Certificate Beneficiaries, either: - -1. The Applicant's agreement to the Subscriber Agreement with the CA, or -2. The Applicant's acknowledgement of the Terms of Use. - -The CA SHALL implement a process to ensure that each Subscriber Agreement or Terms of Use is legally enforceable against the Applicant. In either case, the Agreement MUST apply to the Certificate to be issued pursuant to the certificate request. The CA MAY use an electronic or "click-through" Agreement provided that the CA has determined that such agreements are legally enforceable. A separate Agreement MAY be used for each certificate request, or a single Agreement MAY be used to cover multiple future certificate requests and the resulting Certificates, so long as each Certificate that the CA issues to the Applicant is clearly covered by that Subscriber Agreement or Terms of Use. - -The Subscriber Agreement or Terms of Use MUST contain provisions imposing on the Applicant itself (or made by the Applicant on behalf of its principal or agent under a subcontractor or hosting service relationship) the following obligations and warranties: - -1. **Accuracy of Information**: An obligation and warranty to provide accurate and complete information at all times to the CA, both in the certificate request and as otherwise requested by the CA in connection with the issuance of the Certificate(s) to be supplied by the CA; -2. **Protection of Private Key**: An obligation and warranty by the Applicant to take all reasonable measures to assure control of, keep confidential, and properly protect at all times the Private Key that corresponds to the Public Key to be included in the requested Certificate(s) (and any associated activation data or device, e.g. password or token); -3. **Acceptance of Certificate**: An obligation and warranty that the Subscriber will review and verify the Certificate contents for accuracy; -4. **Use of Certificate**: An obligation and warranty to install the Certificate only on servers that are accessible at the subjectAltName(s) listed in the Certificate, and to use the Certificate solely in compliance with all applicable laws and solely in accordance with the Subscriber Agreement or Terms of Use; -5. **Reporting and Revocation**: An obligation and warranty to: (a) promptly request revocation of the Certificate, and cease using it and its associated Private Key, if there is any actual or suspected misuse or compromise of the Subscriber’s Private Key associated with the Public Key included in the Certificate, and (b) promptly request revocation of the Certificate, and cease using it, if any information in the Certificate is or becomes incorrect or inaccurate; -6. **Termination of Use of Certificate**: An obligation and warranty to promptly cease all use of the Private Key corresponding to the Public Key included in the Certificate upon revocation of that Certificate for reasons of Key Compromise. -7. **Responsiveness**: An obligation to respond to the CA's instructions concerning Key Compromise or Certificate misuse within a specified time period. -8. **Acknowledgment and Acceptance**: An acknowledgment and acceptance that the CA is entitled to revoke the certificate immediately if the Applicant were to violate the terms of the Subscriber Agreement or Terms of Use or if the CA discovers that the Certificate is being used to enable criminal activities such as phishing attacks, fraud, or the distribution of malware. - -### 9.6.4 Relying party representations and warranties - -### 9.6.5 Representations and warranties of other participants - -## 9.7 Disclaimers of warranties - -## 9.8 Limitations of liability -For delegated tasks, the CA and any Delegated Third Party MAY allocate liability between themselves contractually as they determine, but the CA SHALL remain fully responsible for the performance of all parties in accordance with these Requirements, as if the tasks had not been delegated. - -If the CA has issued and managed the Certificate in compliance with these Requirements and its Certificate Policy and/or Certification Practice Statement, the CA MAY disclaim liability to the Certificate Beneficiaries or any other third parties for any losses suffered as a result of use or reliance on such Certificate beyond those specified in the CA's Certificate Policy and/or Certification Practice Statement. If the CA has not issued or managed the Certificate in compliance with these Requirements and its Certificate Policy and/or Certification Practice Statement, the CA MAY seek to limit its liability to the Subscriber and to Relying Parties, regardless of the cause of action or legal theory involved, for any and all claims, losses or damages suffered as a result of the use or reliance on such Certificate by any appropriate means that the CA desires. If the CA chooses to limit its liability for Certificates that are not issued or managed in compliance with these Requirements or its Certificate Policy and/or Certification Practice Statement, then the CA SHALL include the limitations on liability in the CA's Certificate Policy and/or Certification Practice Statement. - -## 9.9 Indemnities - -Notwithstanding any limitations on its liability to Subscribers and Relying Parties, the CA understands and acknowledges that the Application Software Suppliers who have a Root Certificate distribution agreement in place with the Root CA do not assume any obligation or potential liability of the CA under these Requirements or that otherwise might exist because of the issuance or maintenance of Certificates or reliance thereon by Relying Parties or others. Thus, except in the case where the CA is a government entity, the CA SHALL defend, indemnify, and hold harmless each Application Software Supplier for any and all claims, damages, and losses suffered by such Application Software Supplier related to a Certificate issued by the CA, regardless of the cause of action or legal theory involved. This does not apply, however, to any claim, damages, or loss suffered by such Application Software Supplier related to a Certificate issued by the CA where such claim, damage, or loss was directly caused by such Application Software Supplier's software displaying as not trustworthy a Certificate that is still valid, or displaying as trustworthy: (1) a Certificate that has expired, or (2) a Certificate that has been revoked (but only in cases where the revocation status is currently available from the CA online, and the application software either failed to check such status or ignored an indication of revoked status). - -## 9.10 Term and termination - -### 9.10.1 Term - -### 9.10.2 Termination - -### 9.10.3 Effect of termination and survival - -## 9.11 Individual notices and communications with participants - -## 9.12 Amendments - -### 9.12.1 Procedure for amendment - -### 9.12.2 Notification mechanism and period - -### 9.12.3 Circumstances under which OID must be changed - -## 9.13 Dispute resolution provisions - -## 9.14 Governing law - -## 9.15 Compliance with applicable law - -## 9.16 Miscellaneous provisions - -### 9.16.1 Entire agreement - -### 9.16.2 Assignment - -### 9.16.3 Severability - -In the event of a conflict between these Requirements and a law, regulation or government order (hereinafter 'Law') of any jurisdiction in which a CA operates or issues certificates, a CA MAY modify any conflicting requirement to the minimum extent necessary to make the requirement valid and legal in the jurisdiction. This applies only to operations or certificate issuances that are subject to that Law. In such event, the CA SHALL immediately (and prior to issuing a certificate under the modified requirement) include in Section 9.16.3 of the CA's CPS a detailed reference to the Law requiring a modification of these Requirements under this section, and the specific modification to these Requirements implemented by the CA. - -The CA MUST also (prior to issuing a certificate under the modified requirement) notify the CA/Browser Forum of the relevant information newly added to its CPS by sending a message to questions@cabforum.org and receiving confirmation that it has been posted to the Public Mailing List and is indexed in the Public Mail Archives available at https://cabforum.org/pipermail/public/ (or such other email addresses and links as the Forum may designate), so that the CA/Browser Forum may consider possible revisions to these Requirements accordingly. - -Any modification to CA practice enabled under this section MUST be discontinued if and when the Law no longer applies, or these Requirements are modified to make it possible to comply with both them and the Law simultaneously. An appropriate change in practice, modification to the CA's CPS and a notice to the CA/Browser Forum, as outlined above, MUST be made within 90 days. - -### 9.16.4 Enforcement (attorneys' fees and waiver of rights) - -### 9.16.5 Force Majeure - -## 9.17 Other provisions From b207fe946c7b231adf3e15cad1cd1c090effc5f4 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Fri, 18 Aug 2017 10:44:16 -0400 Subject: [PATCH 03/33] fix dnssec memo link (#234) --- pages/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/index.md b/pages/index.md index b062bcf..bb1eda4 100644 --- a/pages/index.md +++ b/pages/index.md @@ -55,7 +55,7 @@ HTTPS only guarantees the integrity of the connection between two systems, not t **[Strict Transport Security](/hsts/):** Websites and services available over HTTPS must enable HTTP Strict Transport Security (HSTS) to instruct compliant browsers to assume HTTPS going forward. This reduces insecure redirects, and protects users against attacks that attempt to downgrade connections to plain HTTP. Once HSTS is in place, domains can be submitted to a ["preload list"](https://hstspreload.org) used by all major browsers to ensure the HSTS policy is in effect at all times. -**Domain Name System Security (DNSSEC):** The new policy outlined in this Memorandum does not rescind or conflict with M-08-23, ["Securing the Federal Government's Domain Name System Infrastructure"](https://www.whitehouse.gov/sites/default/files/omb/memoranda/fy2008/m08-23.pdf). Once DNS resolution is complete, DNSSEC does not ensure the privacy or integrity of communication between a client and the destination IP. HTTPS provides this additional security. +**Domain Name System Security (DNSSEC):** The new policy outlined in this Memorandum does not rescind or conflict with M-08-23, ["Securing the Federal Government's Domain Name System Infrastructure"](https://www.whitehouse.gov/sites/whitehouse.gov/files/omb/memoranda/2008/m08-23.pdf). Once DNS resolution is complete, DNSSEC does not ensure the privacy or integrity of communication between a client and the destination IP. HTTPS provides this additional security. ## Cost Effective Implementation From dccaf3ee6a95c6c7cb457c3789d10cea9b525671 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 23 Oct 2017 09:22:19 -0700 Subject: [PATCH 04/33] Design overhaul to use US Web Design Standards (#235) * design and theme overhaul to match cyber.dhs.gov and IT Mod * restore an Edit This Page link * move banner color to what it has been --- .gitignore | 5 +- .nvmrc | 1 + .travis.yml | 26 - Gemfile | 8 +- Gemfile.lock | 52 +- Makefile | 13 - README.md | 29 +- _config.yml | 59 +- _data/navigation.yml | 48 + _includes/banner.html | 10 + _includes/footer.html | 7 + _includes/head.html | 14 + _includes/header.html | 43 + _includes/{analytics.html => scripts.html} | 17 +- _includes/sidebar.html | 19 - _includes/sidenav.html | 28 + _layouts/base.html | 40 + _layouts/default.html | 65 - _layouts/page.html | 7 - .../bourbon/_bourbon-deprecated-upcoming.scss | 8 - assets/_sass/bourbon/_bourbon.scss | 78 - assets/_sass/bourbon/addons/_button.scss | 374 ---- assets/_sass/bourbon/addons/_clearfix.scss | 23 - .../bourbon/addons/_directional-values.scss | 111 -- assets/_sass/bourbon/addons/_ellipsis.scss | 7 - assets/_sass/bourbon/addons/_font-family.scss | 5 - assets/_sass/bourbon/addons/_hide-text.scss | 10 - .../bourbon/addons/_html5-input-types.scss | 86 - assets/_sass/bourbon/addons/_position.scss | 32 - assets/_sass/bourbon/addons/_prefixer.scss | 45 - .../_sass/bourbon/addons/_retina-image.scss | 31 - assets/_sass/bourbon/addons/_size.scss | 16 - .../bourbon/addons/_timing-functions.scss | 32 - assets/_sass/bourbon/addons/_triangle.scss | 83 - assets/_sass/bourbon/addons/_word-wrap.scss | 8 - assets/_sass/bourbon/css3/_animation.scss | 52 - assets/_sass/bourbon/css3/_appearance.scss | 3 - .../bourbon/css3/_backface-visibility.scss | 6 - .../_sass/bourbon/css3/_background-image.scss | 42 - assets/_sass/bourbon/css3/_background.scss | 55 - assets/_sass/bourbon/css3/_border-image.scss | 59 - assets/_sass/bourbon/css3/_border-radius.scss | 22 - assets/_sass/bourbon/css3/_box-sizing.scss | 4 - assets/_sass/bourbon/css3/_calc.scss | 4 - assets/_sass/bourbon/css3/_columns.scss | 47 - assets/_sass/bourbon/css3/_filter.scss | 5 - assets/_sass/bourbon/css3/_flex-box.scss | 321 ---- assets/_sass/bourbon/css3/_font-face.scss | 23 - .../bourbon/css3/_font-feature-settings.scss | 10 - .../bourbon/css3/_hidpi-media-query.scss | 10 - assets/_sass/bourbon/css3/_hyphens.scss | 4 - .../_sass/bourbon/css3/_image-rendering.scss | 14 - assets/_sass/bourbon/css3/_keyframes.scss | 35 - .../_sass/bourbon/css3/_linear-gradient.scss | 38 - assets/_sass/bourbon/css3/_perspective.scss | 8 - assets/_sass/bourbon/css3/_placeholder.scss | 8 - .../_sass/bourbon/css3/_radial-gradient.scss | 39 - assets/_sass/bourbon/css3/_transform.scss | 15 - assets/_sass/bourbon/css3/_transition.scss | 77 - assets/_sass/bourbon/css3/_user-select.scss | 3 - assets/_sass/bourbon/functions/_assign.scss | 11 - .../bourbon/functions/_color-lightness.scss | 13 - .../_sass/bourbon/functions/_flex-grid.scss | 39 - .../bourbon/functions/_golden-ratio.scss | 3 - .../_sass/bourbon/functions/_grid-width.scss | 13 - .../bourbon/functions/_modular-scale.scss | 66 - assets/_sass/bourbon/functions/_px-to-em.scss | 13 - .../_sass/bourbon/functions/_px-to-rem.scss | 15 - .../_sass/bourbon/functions/_strip-units.scss | 5 - .../_sass/bourbon/functions/_tint-shade.scss | 9 - .../functions/_transition-property-name.scss | 22 - assets/_sass/bourbon/functions/_unpack.scss | 17 - .../_sass/bourbon/helpers/_convert-units.scss | 15 - .../helpers/_gradient-positions-parser.scss | 13 - assets/_sass/bourbon/helpers/_is-num.scss | 8 - .../bourbon/helpers/_linear-angle-parser.scss | 25 - .../helpers/_linear-gradient-parser.scss | 41 - .../helpers/_linear-positions-parser.scss | 61 - .../helpers/_linear-side-corner-parser.scss | 31 - .../bourbon/helpers/_radial-arg-parser.scss | 69 - .../helpers/_radial-gradient-parser.scss | 50 - .../helpers/_radial-positions-parser.scss | 18 - .../bourbon/helpers/_render-gradients.scss | 26 - .../bourbon/helpers/_shape-size-stripper.scss | 10 - assets/_sass/bourbon/helpers/_str-to-num.scss | 50 - assets/_sass/bourbon/settings/_prefixer.scss | 6 - assets/_sass/bourbon/settings/_px-to-em.scss | 1 - assets/_sass/neat/_neat-helpers.scss | 7 - assets/_sass/neat/_neat.scss | 21 - .../_sass/neat/functions/_new-breakpoint.scss | 16 - assets/_sass/neat/functions/_private.scss | 125 -- assets/_sass/neat/grid/_fill-parent.scss | 7 - assets/_sass/neat/grid/_grid.scss | 5 - assets/_sass/neat/grid/_media.scss | 38 - assets/_sass/neat/grid/_omega.scss | 61 - assets/_sass/neat/grid/_outer-container.scss | 8 - assets/_sass/neat/grid/_pad.scss | 8 - assets/_sass/neat/grid/_private.scss | 43 - assets/_sass/neat/grid/_reset.scss | 12 - assets/_sass/neat/grid/_row.scss | 17 - assets/_sass/neat/grid/_shift.scss | 16 - assets/_sass/neat/grid/_span-columns.scss | 43 - assets/_sass/neat/grid/_to-deprecate.scss | 57 - assets/_sass/neat/grid/_visual-grid.scss | 41 - assets/_sass/neat/settings/_grid.scss | 7 - assets/_sass/neat/settings/_visual-grid.scss | 5 - assets/_sass/styles.scss | 328 ---- assets/css/google-fonts.css | 77 - assets/css/normalize.css | 406 ---- assets/css/styles.css | 260 --- assets/css/styles.css.map | 7 - assets/css/syntax.css | 60 - assets/favicon.ico | Bin 5430 -> 0 bytes ...6a72f9b37d353a87e0a853c811c2036304cd53.eot | Bin 14249 -> 0 bytes ...bd3f15962cf91348a133d3d38571a5c67eca65.ttf | Bin 31304 -> 0 bytes ...6aa75249c84b5fcee1c10527af21a83eb780b5.svg | 461 ----- ...92237948e74246a2fb0d0d886498776a185e54.ttf | Bin 30972 -> 0 bytes ...d0ffb2d0348d9e22de97e57214b7db795e9513.ttf | Bin 31124 -> 0 bytes ...a898729b3a62cb5f7e5a8367d375a1784700ca.ttf | Bin 24120 -> 0 bytes ...54f1cc512d376e366c33802aecc5e80c1a1f33.ttf | Bin 24384 -> 0 bytes ...193feab52524db86cd1508693f2e5086102669.ttf | Bin 24140 -> 0 bytes ...d19ed3a763ce10e050662542bc0318bb620096.svg | 1637 ----------------- ...44beeac9a044f2c478b70838e447f0af077825.ttf | Bin 24324 -> 0 bytes ...cc9c782f41b44a31392230103f5b4e101a944a.eot | Bin 18233 -> 0 bytes .../js/Universal-Federated-Analytics-Min.js | 218 --- assets/js/html5.js | 8 - assets/js/respond.min.js | 6 - assets/sass/main.scss | 317 ++++ deploy/fabfile.py | 44 - deploy/hookshot.js | 18 - deploy/site.conf | 45 - favicon.ico | Bin 0 -> 67646 bytes gulpfile.js | 35 + package.json | 13 + pages/apis.md | 3 +- pages/certificates.md | 3 +- pages/everything.md | 3 +- pages/faq.md | 3 +- pages/guide.md | 3 +- pages/hsts.md | 3 +- pages/index.md | 3 +- pages/mixed-content.md | 3 +- pages/resources.md | 3 +- pages/sni.md | 3 +- pages/technical.md | 3 +- 145 files changed, 627 insertions(+), 6877 deletions(-) create mode 100644 .nvmrc delete mode 100644 .travis.yml delete mode 100644 Makefile create mode 100644 _data/navigation.yml create mode 100644 _includes/banner.html create mode 100644 _includes/footer.html create mode 100644 _includes/head.html create mode 100644 _includes/header.html rename _includes/{analytics.html => scripts.html} (61%) delete mode 100644 _includes/sidebar.html create mode 100644 _includes/sidenav.html create mode 100644 _layouts/base.html delete mode 100644 _layouts/default.html delete mode 100644 _layouts/page.html delete mode 100644 assets/_sass/bourbon/_bourbon-deprecated-upcoming.scss delete mode 100644 assets/_sass/bourbon/_bourbon.scss delete mode 100644 assets/_sass/bourbon/addons/_button.scss delete mode 100644 assets/_sass/bourbon/addons/_clearfix.scss delete mode 100644 assets/_sass/bourbon/addons/_directional-values.scss delete mode 100644 assets/_sass/bourbon/addons/_ellipsis.scss delete mode 100644 assets/_sass/bourbon/addons/_font-family.scss delete mode 100644 assets/_sass/bourbon/addons/_hide-text.scss delete mode 100644 assets/_sass/bourbon/addons/_html5-input-types.scss delete mode 100644 assets/_sass/bourbon/addons/_position.scss delete mode 100644 assets/_sass/bourbon/addons/_prefixer.scss delete mode 100644 assets/_sass/bourbon/addons/_retina-image.scss delete mode 100644 assets/_sass/bourbon/addons/_size.scss delete mode 100644 assets/_sass/bourbon/addons/_timing-functions.scss delete mode 100644 assets/_sass/bourbon/addons/_triangle.scss delete mode 100644 assets/_sass/bourbon/addons/_word-wrap.scss delete mode 100644 assets/_sass/bourbon/css3/_animation.scss delete mode 100644 assets/_sass/bourbon/css3/_appearance.scss delete mode 100644 assets/_sass/bourbon/css3/_backface-visibility.scss delete mode 100644 assets/_sass/bourbon/css3/_background-image.scss delete mode 100644 assets/_sass/bourbon/css3/_background.scss delete mode 100644 assets/_sass/bourbon/css3/_border-image.scss delete mode 100644 assets/_sass/bourbon/css3/_border-radius.scss delete mode 100644 assets/_sass/bourbon/css3/_box-sizing.scss delete mode 100644 assets/_sass/bourbon/css3/_calc.scss delete mode 100644 assets/_sass/bourbon/css3/_columns.scss delete mode 100644 assets/_sass/bourbon/css3/_filter.scss delete mode 100644 assets/_sass/bourbon/css3/_flex-box.scss delete mode 100644 assets/_sass/bourbon/css3/_font-face.scss delete mode 100644 assets/_sass/bourbon/css3/_font-feature-settings.scss delete mode 100644 assets/_sass/bourbon/css3/_hidpi-media-query.scss delete mode 100644 assets/_sass/bourbon/css3/_hyphens.scss delete mode 100644 assets/_sass/bourbon/css3/_image-rendering.scss delete mode 100644 assets/_sass/bourbon/css3/_keyframes.scss delete mode 100644 assets/_sass/bourbon/css3/_linear-gradient.scss delete mode 100644 assets/_sass/bourbon/css3/_perspective.scss delete mode 100644 assets/_sass/bourbon/css3/_placeholder.scss delete mode 100644 assets/_sass/bourbon/css3/_radial-gradient.scss delete mode 100644 assets/_sass/bourbon/css3/_transform.scss delete mode 100644 assets/_sass/bourbon/css3/_transition.scss delete mode 100644 assets/_sass/bourbon/css3/_user-select.scss delete mode 100644 assets/_sass/bourbon/functions/_assign.scss delete mode 100644 assets/_sass/bourbon/functions/_color-lightness.scss delete mode 100644 assets/_sass/bourbon/functions/_flex-grid.scss delete mode 100644 assets/_sass/bourbon/functions/_golden-ratio.scss delete mode 100644 assets/_sass/bourbon/functions/_grid-width.scss delete mode 100644 assets/_sass/bourbon/functions/_modular-scale.scss delete mode 100644 assets/_sass/bourbon/functions/_px-to-em.scss delete mode 100644 assets/_sass/bourbon/functions/_px-to-rem.scss delete mode 100644 assets/_sass/bourbon/functions/_strip-units.scss delete mode 100644 assets/_sass/bourbon/functions/_tint-shade.scss delete mode 100644 assets/_sass/bourbon/functions/_transition-property-name.scss delete mode 100644 assets/_sass/bourbon/functions/_unpack.scss delete mode 100644 assets/_sass/bourbon/helpers/_convert-units.scss delete mode 100644 assets/_sass/bourbon/helpers/_gradient-positions-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_is-num.scss delete mode 100644 assets/_sass/bourbon/helpers/_linear-angle-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_linear-gradient-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_linear-positions-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_linear-side-corner-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_radial-arg-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_radial-gradient-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_radial-positions-parser.scss delete mode 100644 assets/_sass/bourbon/helpers/_render-gradients.scss delete mode 100644 assets/_sass/bourbon/helpers/_shape-size-stripper.scss delete mode 100644 assets/_sass/bourbon/helpers/_str-to-num.scss delete mode 100644 assets/_sass/bourbon/settings/_prefixer.scss delete mode 100644 assets/_sass/bourbon/settings/_px-to-em.scss delete mode 100644 assets/_sass/neat/_neat-helpers.scss delete mode 100644 assets/_sass/neat/_neat.scss delete mode 100644 assets/_sass/neat/functions/_new-breakpoint.scss delete mode 100644 assets/_sass/neat/functions/_private.scss delete mode 100644 assets/_sass/neat/grid/_fill-parent.scss delete mode 100644 assets/_sass/neat/grid/_grid.scss delete mode 100644 assets/_sass/neat/grid/_media.scss delete mode 100644 assets/_sass/neat/grid/_omega.scss delete mode 100644 assets/_sass/neat/grid/_outer-container.scss delete mode 100644 assets/_sass/neat/grid/_pad.scss delete mode 100644 assets/_sass/neat/grid/_private.scss delete mode 100644 assets/_sass/neat/grid/_reset.scss delete mode 100644 assets/_sass/neat/grid/_row.scss delete mode 100644 assets/_sass/neat/grid/_shift.scss delete mode 100644 assets/_sass/neat/grid/_span-columns.scss delete mode 100644 assets/_sass/neat/grid/_to-deprecate.scss delete mode 100644 assets/_sass/neat/grid/_visual-grid.scss delete mode 100644 assets/_sass/neat/settings/_grid.scss delete mode 100644 assets/_sass/neat/settings/_visual-grid.scss delete mode 100644 assets/_sass/styles.scss delete mode 100644 assets/css/google-fonts.css delete mode 100644 assets/css/normalize.css delete mode 100644 assets/css/styles.css delete mode 100644 assets/css/styles.css.map delete mode 100644 assets/css/syntax.css delete mode 100644 assets/favicon.ico delete mode 100644 assets/fonts/merriweather-006a72f9b37d353a87e0a853c811c2036304cd53.eot delete mode 100644 assets/fonts/merriweather-69bd3f15962cf91348a133d3d38571a5c67eca65.ttf delete mode 100644 assets/fonts/merriweather-956aa75249c84b5fcee1c10527af21a83eb780b5.svg delete mode 100644 assets/fonts/merriweather-d392237948e74246a2fb0d0d886498776a185e54.ttf delete mode 100644 assets/fonts/merriweather-e6d0ffb2d0348d9e22de97e57214b7db795e9513.ttf delete mode 100644 assets/fonts/opensans-23a898729b3a62cb5f7e5a8367d375a1784700ca.ttf delete mode 100644 assets/fonts/opensans-3954f1cc512d376e366c33802aecc5e80c1a1f33.ttf delete mode 100644 assets/fonts/opensans-3e193feab52524db86cd1508693f2e5086102669.ttf delete mode 100644 assets/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg delete mode 100644 assets/fonts/opensans-dd44beeac9a044f2c478b70838e447f0af077825.ttf delete mode 100644 assets/fonts/opensans-f0cc9c782f41b44a31392230103f5b4e101a944a.eot delete mode 100644 assets/js/Universal-Federated-Analytics-Min.js delete mode 100644 assets/js/html5.js delete mode 100644 assets/js/respond.min.js create mode 100644 assets/sass/main.scss delete mode 100644 deploy/fabfile.py delete mode 100755 deploy/hookshot.js delete mode 100644 deploy/site.conf create mode 100755 favicon.ico create mode 100644 gulpfile.js create mode 100644 package.json diff --git a/.gitignore b/.gitignore index 91c8f3a..319f7a8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,10 @@ _site .DS_Store todo.txt .jekyll-metadata -/vendor .ruby-version *.pyc creds.txt +node_modules +/assets/vendor +/assets/css +/vendor diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..ca06394 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +6.2.2 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f4e5d5e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: ruby -rvm: -- 2.2.0 -sudo: false -cache: bundler -git: - submodules: false -script: bundle exec jekyll b --trace -notifications: - email: - recipients: - - eric.mill@gsa.gov - on_success: change - on_failure: change -branches: - only: - - master -deploy: - edge: true - provider: cloudfoundry - api: https://api.fr.cloud.gov - organization: gsa-ogp-pulse - space: https - username: 090c95f3-de69-4f23-b2c2-b45585d468f2 - password: - secure: "MwqEGMmsFdi9Mr3xpFoskFuDN+nFMfE/z0Vcbo2gpzXxexwmUCpbd8PSqbygb7SpUEoco8YgGDypsdWm1GETSEUQYTs2Vg+l/4MJq6HGRsD1i5hk96BZECixVe9K5f1y/I1f/hsQ7RTM/webwDy8yYYoDGGXewqBkf5wx350WEk=" diff --git a/Gemfile b/Gemfile index e152a33..b2e9334 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,7 @@ source "https://rubygems.org" gem 'jekyll' + +# TODO: remove gem 'redcarpet' gem 'rouge' - -gem 'bourbon' -gem 'sass' -gem 'neat' - -gem 'travis' diff --git a/Gemfile.lock b/Gemfile.lock index f4f9dd7..971b0aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,12 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.4.0) - backports (3.6.8) blankslate (2.1.2.4) - bourbon (4.2.1) - sass (~> 3.4) - thor celluloid (0.16.0) timers (~> 4.0.0) classifier-reborn (2.0.3) @@ -16,23 +11,9 @@ GEM execjs coffee-script-source (1.9.1) colorator (0.1) - ethon (0.9.1) - ffi (>= 1.3.0) execjs (2.4.0) - faraday (0.10.0) - multipart-post (>= 1.2, < 3) - faraday_middleware (0.10.1) - faraday (>= 0.7.4, < 1.0) fast-stemmer (1.0.2) ffi (1.9.8) - gh (0.15.0) - addressable (~> 2.4.0) - backports - faraday (~> 0.8) - multi_json (~> 1.0) - net-http-persistent (~> 2.9) - net-http-pipeline - highline (1.7.8) hitimes (1.2.2) jekyll (2.5.3) classifier-reborn (~> 2.0) @@ -57,29 +38,16 @@ GEM sass (~> 3.2) jekyll-watch (1.2.1) listen (~> 2.7) - json (1.8.3) kramdown (1.6.0) - launchy (2.4.3) - addressable (~> 2.3) liquid (2.6.2) listen (2.9.0) celluloid (>= 0.15.2) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) mercenary (0.3.5) - multi_json (1.12.1) - multipart-post (2.0.0) - neat (1.7.2) - bourbon (>= 4.0) - sass (>= 3.3) - net-http-persistent (2.9.4) - net-http-pipeline (1.0.1) parslet (1.5.0) blankslate (~> 2.0) posix-spawn (0.3.10) - pusher-client (0.6.2) - json - websocket (~> 1.0) pygments.rb (0.6.2) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.2.0) @@ -90,37 +58,19 @@ GEM rouge (1.8.0) safe_yaml (1.0.4) sass (3.4.13) - thor (0.19.1) timers (4.0.1) hitimes toml (0.1.2) parslet (~> 1.5.0) - travis (1.8.4) - backports - faraday (~> 0.9) - faraday_middleware (~> 0.9, >= 0.9.1) - gh (~> 0.13) - highline (~> 1.6) - launchy (~> 2.1) - net-http-persistent (~> 2.9) - pusher-client (~> 0.4) - typhoeus (~> 0.6, >= 0.6.8) - typhoeus (0.8.0) - ethon (>= 0.8.0) - websocket (1.2.3) yajl-ruby (1.2.1) PLATFORMS ruby DEPENDENCIES - bourbon jekyll - neat redcarpet rouge - sass - travis BUNDLED WITH - 1.13.6 + 1.14.6 diff --git a/Makefile b/Makefile deleted file mode 100644 index 63f18d3..0000000 --- a/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -scss ?= assets/_sass/styles.scss -css ?= assets/css/styles.css - -all: styles - -styles: - sass $(scss):$(css) - -watch: - sass --watch $(scss):$(css) - -clean: - rm -f $(css) diff --git a/README.md b/README.md index 40e8000..367a330 100644 --- a/README.md +++ b/README.md @@ -18,27 +18,28 @@ The homepage of this site is the final policy. The other pages on [https.cio.gov ### Developing on the site locally -This site uses [Jekyll](http://jekyllrb.com), [Sass](http://sass-lang.com), [Bourbon](http://bourbon.io), [Neat](http://neat.bourbon.io), and requires **Ruby 2.x**. +If you're using this repository to run the site locally, instructions follow below. -Install dependencies with Bundler: +Dependencies: -``` -bundle install -``` +* **Node 6+** to install USWDS and dependencies +* **Ruby** and **bundler** to install / run Jekyll -Start up a Sass watcher to keep assets auto-compiled: +##### First-time setup -``` -make watch -``` +1. `npm install` to install the USWDS, and Gulp dependencies. +2. `npm install -g gulp` to let you use the `gulp` CLI directly. +3. `bundle install` to install Jekyll. -And run the site with Jekyll: +##### Running the app -``` -bundle exec jekyll serve --watch -``` +If you'll be editing the Sass/CSS: -If all goes well, visit the site at `http://localhost:4000`. +* `gulp watch` + +To run the app: + +* `bundle exec jekyll serve` ### Public domain diff --git a/_config.yml b/_config.yml index 04d6b4c..c373c6a 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,17 @@ -# markdown +# Site metadata +title: The HTTPS-Only Standard +description: "Resources, best practices, and case studies for deploying HTTPS in the federal government." +url: https://https.cio.gov + +# DAP, GA, and GitHub +dap_agency: GSA +google_analytics_ua: UA-48605964-20 +repo: https://github.com/GSA/https + +# Standard +uswds_path: assets/vendor/uswds + +# TODO: get rid of this highlighter: rouge markdown: redcarpet redcarpet: @@ -7,53 +20,17 @@ redcarpet: - with_toc_data exclude: +- compliance +- resources - ".ruby-version" - ".jekyll-metadata" - ".gitignore" -- ".travis.yml" - todo.txt -- resources +- Staticfile - Gemfile - Gemfile.lock -- Makefile - vendor - README.md - CONTRIBUTING.md - LICENSE.md -- compliance - -# Site metadata -name: The HTTPS-Only Standard -description: "Resources, best practices, and case studies for deploying HTTPS in the federal government." -url: https://https.cio.gov - -# GitHub information -org_name: GSA -repo_name: https -branch: master - -# Navigation -# List links that should appear in the site sidebar here -navigation: -- text: Home - url: / -- text: Why Everything? - url: /everything/ -- text: Compliance Guide - url: /guide/ -- text: Introduction to HTTPS - url: /faq/ -- text: Certificates - url: /certificates/ -- text: HTTP Strict Transport Security - url: /hsts/ -- text: Migrating APIs - url: /apis/ -- text: Server Name Indication - url: /sni/ -- text: Technical Guidelines - url: /technical-guidelines/ -- text: Mixed Content - url: /mixed-content/ -- text: Resources - url: /resources/ +- .nvmrc diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..148a02a --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,48 @@ + +primary: +- text: Home + href: / +- text: Why Everything? + href: /everything/ +- text: Compliance Guide + href: /guide/ +- text: Introduction to HTTPS + href: /faq/ +- text: Certificates + href: /certificates/ +- text: HTTP Strict Transport Security + href: /hsts/ +- text: Migrating APIs + href: /apis/ +- text: Server Name Indication + href: /sni/ +- text: Technical Guidelines + href: /technical-guidelines/ +- text: Mixed Content + href: /mixed-content/ +- text: Resources + href: /resources/ + +mobile: +- text: Home + href: / +- text: Why Everything? + href: /everything/ +- text: Compliance Guide + href: /guide/ +- text: Introduction to HTTPS + href: /faq/ +- text: Certificates + href: /certificates/ +- text: HTTP Strict Transport Security + href: /hsts/ +- text: Migrating APIs + href: /apis/ +- text: Server Name Indication + href: /sni/ +- text: Technical Guidelines + href: /technical-guidelines/ +- text: Mixed Content + href: /mixed-content/ +- text: Resources + href: /resources/ diff --git a/_includes/banner.html b/_includes/banner.html new file mode 100644 index 0000000..1033663 --- /dev/null +++ b/_includes/banner.html @@ -0,0 +1,10 @@ +
+
+
+
+ U.S. flag +

An official website of the United States government

+
+
+
+
diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..a81e354 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,7 @@ + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..d490d50 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,14 @@ + + + + +{% if page.title %}{{ site.title }} - {{ page.title }}{% else %}{{ site.title }}{% endif %} + + + + + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..90661d5 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,43 @@ + + + + diff --git a/_includes/analytics.html b/_includes/scripts.html similarity index 61% rename from _includes/analytics.html rename to _includes/scripts.html index 00959f1..dd6b283 100644 --- a/_includes/analytics.html +++ b/_includes/scripts.html @@ -1,20 +1,21 @@ + + + + + + + - - diff --git a/_includes/sidebar.html b/_includes/sidebar.html deleted file mode 100644 index f7b42f1..0000000 --- a/_includes/sidebar.html +++ /dev/null @@ -1,19 +0,0 @@ - diff --git a/_includes/sidenav.html b/_includes/sidenav.html new file mode 100644 index 0000000..78a6351 --- /dev/null +++ b/_includes/sidenav.html @@ -0,0 +1,28 @@ +
    + {% for link in include.links %} + {% assign _href = link.href %} + {% assign _current = false %} + {% if link.href == page.url or link.href == page.permalink %} + {% assign _current = true %} + {% endif %} +
  • + + {{ link.text }} + + {% if _current and page.subnav %} + + {% endif %} +
  • + {% endfor %} + +

    + Edit this page +

    +
diff --git a/_layouts/base.html b/_layouts/base.html new file mode 100644 index 0000000..e85f969 --- /dev/null +++ b/_layouts/base.html @@ -0,0 +1,40 @@ +--- + +--- + + + + {% include head.html %} + + + + + +Skip to main content + +{% include header.html %} + + + +
+
+ {% if page.appendix %} +

{{ page.title }}

+ {% else %} +

{{ page.title }}

+ {% endif %} + + {{ content }} +
+ + {% include footer.html %} + +
+ +{% include scripts.html %} + + + + diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 282fdb8..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - {% if page.title %} - {{ page.title }} - - {% else %} - {{ site.title }} - - {% endif %} - - {% if page.description %} - - - {% else %} - - - {% endif %} - - - - -
-
-

- {{ site.name }} -

-
- -
- - {% include sidebar.html %} - -
- {{ content }} -
- -
-
- -{% include analytics.html %} - - - diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index 80476ae..0000000 --- a/_layouts/page.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: default ---- - -

{{ page.title }}

- -{{ content }} diff --git a/assets/_sass/bourbon/_bourbon-deprecated-upcoming.scss b/assets/_sass/bourbon/_bourbon-deprecated-upcoming.scss deleted file mode 100644 index f946b3b..0000000 --- a/assets/_sass/bourbon/_bourbon-deprecated-upcoming.scss +++ /dev/null @@ -1,8 +0,0 @@ -//************************************************************************// -// These mixins/functions are deprecated -// They will be removed in the next MAJOR version release -//************************************************************************// -@mixin inline-block { - display: inline-block; - @warn "inline-block mixin is deprecated and will be removed in the next major version release"; -} diff --git a/assets/_sass/bourbon/_bourbon.scss b/assets/_sass/bourbon/_bourbon.scss deleted file mode 100644 index 11d52d7..0000000 --- a/assets/_sass/bourbon/_bourbon.scss +++ /dev/null @@ -1,78 +0,0 @@ -// Settings -@import "settings/prefixer"; -@import "settings/px-to-em"; - -// Custom Helpers -@import "helpers/convert-units"; -@import "helpers/gradient-positions-parser"; -@import "helpers/is-num"; -@import "helpers/linear-angle-parser"; -@import "helpers/linear-gradient-parser"; -@import "helpers/linear-positions-parser"; -@import "helpers/linear-side-corner-parser"; -@import "helpers/radial-arg-parser"; -@import "helpers/radial-positions-parser"; -@import "helpers/radial-gradient-parser"; -@import "helpers/render-gradients"; -@import "helpers/shape-size-stripper"; -@import "helpers/str-to-num"; - -// Custom Functions -@import "functions/assign"; -@import "functions/color-lightness"; -@import "functions/flex-grid"; -@import "functions/golden-ratio"; -@import "functions/grid-width"; -@import "functions/modular-scale"; -@import "functions/px-to-em"; -@import "functions/px-to-rem"; -@import "functions/strip-units"; -@import "functions/tint-shade"; -@import "functions/transition-property-name"; -@import "functions/unpack"; - -// CSS3 Mixins -@import "css3/animation"; -@import "css3/appearance"; -@import "css3/backface-visibility"; -@import "css3/background"; -@import "css3/background-image"; -@import "css3/border-image"; -@import "css3/border-radius"; -@import "css3/box-sizing"; -@import "css3/calc"; -@import "css3/columns"; -@import "css3/filter"; -@import "css3/flex-box"; -@import "css3/font-face"; -@import "css3/font-feature-settings"; -@import "css3/hyphens"; -@import "css3/hidpi-media-query"; -@import "css3/image-rendering"; -@import "css3/keyframes"; -@import "css3/linear-gradient"; -@import "css3/perspective"; -@import "css3/radial-gradient"; -@import "css3/transform"; -@import "css3/transition"; -@import "css3/user-select"; -@import "css3/placeholder"; - -// Addons & other mixins -@import "addons/button"; -@import "addons/clearfix"; -@import "addons/directional-values"; -@import "addons/ellipsis"; -@import "addons/font-family"; -@import "addons/hide-text"; -@import "addons/html5-input-types"; -@import "addons/position"; -@import "addons/prefixer"; -@import "addons/retina-image"; -@import "addons/size"; -@import "addons/timing-functions"; -@import "addons/triangle"; -@import "addons/word-wrap"; - -// Soon to be deprecated Mixins -@import "bourbon-deprecated-upcoming"; diff --git a/assets/_sass/bourbon/addons/_button.scss b/assets/_sass/bourbon/addons/_button.scss deleted file mode 100644 index 14a89e4..0000000 --- a/assets/_sass/bourbon/addons/_button.scss +++ /dev/null @@ -1,374 +0,0 @@ -@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) { - - @if type-of($style) == string and type-of($base-color) == color { - @include buttonstyle($style, $base-color, $text-size, $padding); - } - - @if type-of($style) == string and type-of($base-color) == number { - $padding: $text-size; - $text-size: $base-color; - $base-color: #4294f0; - - @if $padding == inherit { - $padding: 7px 18px; - } - - @include buttonstyle($style, $base-color, $text-size, $padding); - } - - @if type-of($style) == color and type-of($base-color) == color { - $base-color: $style; - $style: simple; - @include buttonstyle($style, $base-color, $text-size, $padding); - } - - @if type-of($style) == color and type-of($base-color) == number { - $padding: $text-size; - $text-size: $base-color; - $base-color: $style; - $style: simple; - - @if $padding == inherit { - $padding: 7px 18px; - } - - @include buttonstyle($style, $base-color, $text-size, $padding); - } - - @if type-of($style) == number { - $padding: $base-color; - $text-size: $style; - $base-color: #4294f0; - $style: simple; - - @if $padding == #4294f0 { - $padding: 7px 18px; - } - - @include buttonstyle($style, $base-color, $text-size, $padding); - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } -} - - -// Selector Style Button -//************************************************************************// -@mixin buttonstyle($type, $b-color, $t-size, $pad) { - // Grayscale button - @if $type == simple and $b-color == grayscale($b-color) { - @include simple($b-color, true, $t-size, $pad); - } - - @if $type == shiny and $b-color == grayscale($b-color) { - @include shiny($b-color, true, $t-size, $pad); - } - - @if $type == pill and $b-color == grayscale($b-color) { - @include pill($b-color, true, $t-size, $pad); - } - - @if $type == flat and $b-color == grayscale($b-color) { - @include flat($b-color, true, $t-size, $pad); - } - - // Colored button - @if $type == simple { - @include simple($b-color, false, $t-size, $pad); - } - - @else if $type == shiny { - @include shiny($b-color, false, $t-size, $pad); - } - - @else if $type == pill { - @include pill($b-color, false, $t-size, $pad); - } - - @else if $type == flat { - @include flat($b-color, false, $t-size, $pad); - } -} - - -// Simple Button -//************************************************************************// -@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { - $color: hsl(0, 0, 100%); - $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); - $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); - $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); - $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); - - @if is-light($base-color) { - $color: hsl(0, 0, 20%); - $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); - } - - @if $grayscale == true { - $border: grayscale($border); - $inset-shadow: grayscale($inset-shadow); - $stop-gradient: grayscale($stop-gradient); - $text-shadow: grayscale($text-shadow); - } - - border: 1px solid $border; - border-radius: 3px; - box-shadow: inset 0 1px 0 0 $inset-shadow; - color: $color; - display: inline-block; - font-size: $textsize; - font-weight: bold; - @include linear-gradient ($base-color, $stop-gradient); - padding: $padding; - text-decoration: none; - text-shadow: 0 1px 0 $text-shadow; - background-clip: padding-box; - - &:hover:not(:disabled) { - $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); - $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); - $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); - - @if $grayscale == true { - $base-color-hover: grayscale($base-color-hover); - $inset-shadow-hover: grayscale($inset-shadow-hover); - $stop-gradient-hover: grayscale($stop-gradient-hover); - } - - box-shadow: inset 0 1px 0 0 $inset-shadow-hover; - cursor: pointer; - @include linear-gradient ($base-color-hover, $stop-gradient-hover); - } - - &:active:not(:disabled), - &:focus:not(:disabled) { - $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); - $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); - - @if $grayscale == true { - $border-active: grayscale($border-active); - $inset-shadow-active: grayscale($inset-shadow-active); - } - - border: 1px solid $border-active; - box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active; - } -} - - -// Shiny Button -//************************************************************************// -@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { - $color: hsl(0, 0, 100%); - $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); - $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); - $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); - $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); - $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); - $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); - $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); - - @if is-light($base-color) { - $color: hsl(0, 0, 20%); - $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); - } - - @if $grayscale == true { - $border: grayscale($border); - $border-bottom: grayscale($border-bottom); - $fourth-stop: grayscale($fourth-stop); - $inset-shadow: grayscale($inset-shadow); - $second-stop: grayscale($second-stop); - $text-shadow: grayscale($text-shadow); - $third-stop: grayscale($third-stop); - } - - border: 1px solid $border; - border-bottom: 1px solid $border-bottom; - border-radius: 5px; - box-shadow: inset 0 1px 0 0 $inset-shadow; - color: $color; - display: inline-block; - font-size: $textsize; - font-weight: bold; - @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); - padding: $padding; - text-align: center; - text-decoration: none; - text-shadow: 0 -1px 1px $text-shadow; - - &:hover:not(:disabled) { - $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); - $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); - $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); - $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); - - @if $grayscale == true { - $first-stop-hover: grayscale($first-stop-hover); - $second-stop-hover: grayscale($second-stop-hover); - $third-stop-hover: grayscale($third-stop-hover); - $fourth-stop-hover: grayscale($fourth-stop-hover); - } - - cursor: pointer; - @include linear-gradient(top, $first-stop-hover 0%, - $second-stop-hover 50%, - $third-stop-hover 50%, - $fourth-stop-hover 100%); - } - - &:active:not(:disabled), - &:focus:not(:disabled) { - $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); - - @if $grayscale == true { - $inset-shadow-active: grayscale($inset-shadow-active); - } - - box-shadow: inset 0 0 20px 0 $inset-shadow-active; - } -} - - -// Pill Button -//************************************************************************// -@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { - $color: hsl(0, 0, 100%); - $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); - $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); - $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); - $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); - $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); - $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); - - @if is-light($base-color) { - $color: hsl(0, 0, 20%); - $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); - } - - @if $grayscale == true { - $border-bottom: grayscale($border-bottom); - $border-sides: grayscale($border-sides); - $border-top: grayscale($border-top); - $inset-shadow: grayscale($inset-shadow); - $stop-gradient: grayscale($stop-gradient); - $text-shadow: grayscale($text-shadow); - } - - border: 1px solid $border-top; - border-color: $border-top $border-sides $border-bottom; - border-radius: 16px; - box-shadow: inset 0 1px 0 0 $inset-shadow; - color: $color; - display: inline-block; - font-size: $textsize; - font-weight: normal; - line-height: 1; - @include linear-gradient ($base-color, $stop-gradient); - padding: $padding; - text-align: center; - text-decoration: none; - text-shadow: 0 -1px 1px $text-shadow; - background-clip: padding-box; - - &:hover:not(:disabled) { - $base-color-hover: adjust-color($base-color, $lightness: -4.5%); - $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); - $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); - $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); - $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); - $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); - $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); - - @if $grayscale == true { - $base-color-hover: grayscale($base-color-hover); - $border-bottom: grayscale($border-bottom); - $border-sides: grayscale($border-sides); - $border-top: grayscale($border-top); - $inset-shadow-hover: grayscale($inset-shadow-hover); - $stop-gradient-hover: grayscale($stop-gradient-hover); - $text-shadow-hover: grayscale($text-shadow-hover); - } - - border: 1px solid $border-top; - border-color: $border-top $border-sides $border-bottom; - box-shadow: inset 0 1px 0 0 $inset-shadow-hover; - cursor: pointer; - @include linear-gradient ($base-color-hover, $stop-gradient-hover); - text-shadow: 0 -1px 1px $text-shadow-hover; - background-clip: padding-box; - } - - &:active:not(:disabled), - &:focus:not(:disabled) { - $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); - $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); - $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); - $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); - $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); - - @if $grayscale == true { - $active-color: grayscale($active-color); - $border-active: grayscale($border-active); - $border-bottom-active: grayscale($border-bottom-active); - $inset-shadow-active: grayscale($inset-shadow-active); - $text-shadow-active: grayscale($text-shadow-active); - } - - background: $active-color; - border: 1px solid $border-active; - border-bottom: 1px solid $border-bottom-active; - box-shadow: inset 0 0 6px 3px $inset-shadow-active; - text-shadow: 0 -1px 1px $text-shadow-active; - } -} - - - -// Flat Button -//************************************************************************// -@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { - $color: hsl(0, 0, 100%); - - @if is-light($base-color) { - $color: hsl(0, 0, 20%); - } - - background-color: $base-color; - border-radius: 3px; - border: none; - color: $color; - display: inline-block; - font-size: inherit; - font-weight: bold; - padding: 7px 18px; - text-decoration: none; - background-clip: padding-box; - - &:hover:not(:disabled){ - $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%); - - @if $grayscale == true { - $base-color-hover: grayscale($base-color-hover); - } - - background-color: $base-color-hover; - cursor: pointer; - } - - &:active:not(:disabled), - &:focus:not(:disabled) { - $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%); - - @if $grayscale == true { - $base-color-active: grayscale($base-color-active); - } - - background-color: $base-color-active; - cursor: pointer; - } -} diff --git a/assets/_sass/bourbon/addons/_clearfix.scss b/assets/_sass/bourbon/addons/_clearfix.scss deleted file mode 100644 index 783cfbc..0000000 --- a/assets/_sass/bourbon/addons/_clearfix.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Modern micro clearfix provides an easy way to contain floats without adding additional markup. -// -// Example usage: -// -// // Contain all floats within .wrapper -// .wrapper { -// @include clearfix; -// .content, -// .sidebar { -// float : left; -// } -// } - -@mixin clearfix { - &:after { - content:""; - display:table; - clear:both; - } -} - -// Acknowledgements -// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php) diff --git a/assets/_sass/bourbon/addons/_directional-values.scss b/assets/_sass/bourbon/addons/_directional-values.scss deleted file mode 100644 index 742f103..0000000 --- a/assets/_sass/bourbon/addons/_directional-values.scss +++ /dev/null @@ -1,111 +0,0 @@ -// directional-property mixins are shorthands -// for writing properties like the following -// -// @include margin(null 0 10px); -// ------ -// margin-right: 0; -// margin-bottom: 10px; -// margin-left: 0; -// -// - or - -// -// @include border-style(dotted null); -// ------ -// border-top-style: dotted; -// border-bottom-style: dotted; -// -// ------ -// -// Note: You can also use false instead of null - -@function collapse-directionals($vals) { - $output: null; - - $A: nth( $vals, 1 ); - $B: if( length($vals) < 2, $A, nth($vals, 2)); - $C: if( length($vals) < 3, $A, nth($vals, 3)); - $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) )); - - @if $A == 0 { $A: 0 } - @if $B == 0 { $B: 0 } - @if $C == 0 { $C: 0 } - @if $D == 0 { $D: 0 } - - @if $A == $B and $A == $C and $A == $D { $output: $A } - @else if $A == $C and $B == $D { $output: $A $B } - @else if $B == $D { $output: $A $B $C } - @else { $output: $A $B $C $D } - - @return $output; -} - -@function contains-falsy($list) { - @each $item in $list { - @if not $item { - @return true; - } - } - - @return false; -} - -@mixin directional-property($pre, $suf, $vals) { - // Property Names - $top: $pre + "-top" + if($suf, "-#{$suf}", ""); - $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); - $left: $pre + "-left" + if($suf, "-#{$suf}", ""); - $right: $pre + "-right" + if($suf, "-#{$suf}", ""); - $all: $pre + if($suf, "-#{$suf}", ""); - - $vals: collapse-directionals($vals); - - @if contains-falsy($vals) { - @if nth($vals, 1) { #{$top}: nth($vals, 1); } - - @if length($vals) == 1 { - @if nth($vals, 1) { #{$right}: nth($vals, 1); } - } @else { - @if nth($vals, 2) { #{$right}: nth($vals, 2); } - } - - // prop: top/bottom right/left - @if length($vals) == 2 { - @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } - @if nth($vals, 2) { #{$left}: nth($vals, 2); } - - // prop: top right/left bottom - } @else if length($vals) == 3 { - @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } - @if nth($vals, 2) { #{$left}: nth($vals, 2); } - - // prop: top right bottom left - } @else if length($vals) == 4 { - @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } - @if nth($vals, 4) { #{$left}: nth($vals, 4); } - } - - // prop: top/right/bottom/left - } @else { - #{$all}: $vals; - } -} - -@mixin margin($vals...) { - @include directional-property(margin, false, $vals...); -} - -@mixin padding($vals...) { - @include directional-property(padding, false, $vals...); -} - -@mixin border-style($vals...) { - @include directional-property(border, style, $vals...); -} - -@mixin border-color($vals...) { - @include directional-property(border, color, $vals...); -} - -@mixin border-width($vals...) { - @include directional-property(border, width, $vals...); -} diff --git a/assets/_sass/bourbon/addons/_ellipsis.scss b/assets/_sass/bourbon/addons/_ellipsis.scss deleted file mode 100644 index a8ea2a4..0000000 --- a/assets/_sass/bourbon/addons/_ellipsis.scss +++ /dev/null @@ -1,7 +0,0 @@ -@mixin ellipsis($width: 100%) { - display: inline-block; - max-width: $width; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} diff --git a/assets/_sass/bourbon/addons/_font-family.scss b/assets/_sass/bourbon/addons/_font-family.scss deleted file mode 100644 index 31f5d9c..0000000 --- a/assets/_sass/bourbon/addons/_font-family.scss +++ /dev/null @@ -1,5 +0,0 @@ -$georgia: Georgia, Cambria, "Times New Roman", Times, serif; -$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; -$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif; -$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; -$verdana: Verdana, Geneva, sans-serif; diff --git a/assets/_sass/bourbon/addons/_hide-text.scss b/assets/_sass/bourbon/addons/_hide-text.scss deleted file mode 100644 index fc79438..0000000 --- a/assets/_sass/bourbon/addons/_hide-text.scss +++ /dev/null @@ -1,10 +0,0 @@ -@mixin hide-text { - overflow: hidden; - - &:before { - content: ""; - display: block; - width: 0; - height: 100%; - } -} diff --git a/assets/_sass/bourbon/addons/_html5-input-types.scss b/assets/_sass/bourbon/addons/_html5-input-types.scss deleted file mode 100644 index 9e9324a..0000000 --- a/assets/_sass/bourbon/addons/_html5-input-types.scss +++ /dev/null @@ -1,86 +0,0 @@ -//************************************************************************// -// Generate a variable ($all-text-inputs) with a list of all html5 -// input types that have a text-based input, excluding textarea. -// http://diveintohtml5.org/forms.html -//************************************************************************// -$inputs-list: 'input[type="email"]', - 'input[type="number"]', - 'input[type="password"]', - 'input[type="search"]', - 'input[type="tel"]', - 'input[type="text"]', - 'input[type="url"]', - - // Webkit & Gecko may change the display of these in the future - 'input[type="color"]', - 'input[type="date"]', - 'input[type="datetime"]', - 'input[type="datetime-local"]', - 'input[type="month"]', - 'input[type="time"]', - 'input[type="week"]'; - -// Bare inputs -//************************************************************************// -$all-text-inputs: assign-inputs($inputs-list); - -// Hover Pseudo-class -//************************************************************************// -$all-text-inputs-hover: assign-inputs($inputs-list, hover); - -// Focus Pseudo-class -//************************************************************************// -$all-text-inputs-focus: assign-inputs($inputs-list, focus); - - - -// You must use interpolation on the variable: -// #{$all-text-inputs} -// #{$all-text-inputs-hover} -// #{$all-text-inputs-focus} - -// Example -//************************************************************************// -// #{$all-text-inputs}, textarea { -// border: 1px solid red; -// } - - - -//************************************************************************// -// Generate a variable ($all-button-inputs) with a list of all html5 -// input types that have a button-based input, excluding button. -//************************************************************************// -$inputs-button-list: 'input[type="button"]', - 'input[type="reset"]', - 'input[type="submit"]'; - -// Bare inputs -//************************************************************************// -$all-button-inputs: assign-inputs($inputs-button-list); - -// Hover Pseudo-class -//************************************************************************// -$all-button-inputs-hover: assign-inputs($inputs-button-list, hover); - -// Focus Pseudo-class -//************************************************************************// -$all-button-inputs-focus: assign-inputs($inputs-button-list, focus); - -// Active Pseudo-class -//************************************************************************// -$all-button-inputs-active: assign-inputs($inputs-button-list, active); - - - -// You must use interpolation on the variable: -// #{$all-button-inputs} -// #{$all-button-inputs-hover} -// #{$all-button-inputs-focus} -// #{$all-button-inputs-active} - -// Example -//************************************************************************// -// #{$all-button-inputs}, button { -// border: 1px solid red; -// } diff --git a/assets/_sass/bourbon/addons/_position.scss b/assets/_sass/bourbon/addons/_position.scss deleted file mode 100644 index 7de7518..0000000 --- a/assets/_sass/bourbon/addons/_position.scss +++ /dev/null @@ -1,32 +0,0 @@ -@mixin position ($position: relative, $coordinates: null null null null) { - - @if type-of($position) == list { - $coordinates: $position; - $position: relative; - } - - $coordinates: unpack($coordinates); - - $top: nth($coordinates, 1); - $right: nth($coordinates, 2); - $bottom: nth($coordinates, 3); - $left: nth($coordinates, 4); - - position: $position; - - @if ($top and $top == auto) or (type-of($top) == number) { - top: $top; - } - - @if ($right and $right == auto) or (type-of($right) == number) { - right: $right; - } - - @if ($bottom and $bottom == auto) or (type-of($bottom) == number) { - bottom: $bottom; - } - - @if ($left and $left == auto) or (type-of($left) == number) { - left: $left; - } -} diff --git a/assets/_sass/bourbon/addons/_prefixer.scss b/assets/_sass/bourbon/addons/_prefixer.scss deleted file mode 100644 index c32f502..0000000 --- a/assets/_sass/bourbon/addons/_prefixer.scss +++ /dev/null @@ -1,45 +0,0 @@ -//************************************************************************// -// Example: @include prefixer(border-radius, $radii, webkit ms spec); -//************************************************************************// -// Variables located in /settings/_prefixer.scss - -@mixin prefixer ($property, $value, $prefixes) { - @each $prefix in $prefixes { - @if $prefix == webkit { - @if $prefix-for-webkit { - -webkit-#{$property}: $value; - } - } - @else if $prefix == moz { - @if $prefix-for-mozilla { - -moz-#{$property}: $value; - } - } - @else if $prefix == ms { - @if $prefix-for-microsoft { - -ms-#{$property}: $value; - } - } - @else if $prefix == o { - @if $prefix-for-opera { - -o-#{$property}: $value; - } - } - @else if $prefix == spec { - @if $prefix-for-spec { - #{$property}: $value; - } - } - @else { - @warn "Unrecognized prefix: #{$prefix}"; - } - } -} - -@mixin disable-prefix-for-all() { - $prefix-for-webkit: false !global; - $prefix-for-mozilla: false !global; - $prefix-for-microsoft: false !global; - $prefix-for-opera: false !global; - $prefix-for-spec: false !global; -} diff --git a/assets/_sass/bourbon/addons/_retina-image.scss b/assets/_sass/bourbon/addons/_retina-image.scss deleted file mode 100644 index 7931bd1..0000000 --- a/assets/_sass/bourbon/addons/_retina-image.scss +++ /dev/null @@ -1,31 +0,0 @@ -@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) { - @if $asset-pipeline { - background-image: image-url("#{$filename}.#{$extension}"); - } - @else { - background-image: url("#{$filename}.#{$extension}"); - } - - @include hidpi { - @if $asset-pipeline { - @if $retina-filename { - background-image: image-url("#{$retina-filename}.#{$extension}"); - } - @else { - background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); - } - } - - @else { - @if $retina-filename { - background-image: url("#{$retina-filename}.#{$extension}"); - } - @else { - background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); - } - } - - background-size: $background-size; - - } -} diff --git a/assets/_sass/bourbon/addons/_size.scss b/assets/_sass/bourbon/addons/_size.scss deleted file mode 100644 index ac705e2..0000000 --- a/assets/_sass/bourbon/addons/_size.scss +++ /dev/null @@ -1,16 +0,0 @@ -@mixin size($size) { - $height: nth($size, 1); - $width: $height; - - @if length($size) > 1 { - $height: nth($size, 2); - } - - @if $height == auto or (type-of($height) == number and not unitless($height)) { - height: $height; - } - - @if $width == auto or (type-of($height) == number and not unitless($width)) { - width: $width; - } -} diff --git a/assets/_sass/bourbon/addons/_timing-functions.scss b/assets/_sass/bourbon/addons/_timing-functions.scss deleted file mode 100644 index 51b2410..0000000 --- a/assets/_sass/bourbon/addons/_timing-functions.scss +++ /dev/null @@ -1,32 +0,0 @@ -// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) -// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html - -// EASE IN -$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); -$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); -$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); -$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); -$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); -$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); -$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); -$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); - -// EASE OUT -$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); -$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); -$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); -$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); -$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); -$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); -$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); -$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); - -// EASE IN OUT -$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); -$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); -$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); -$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); -$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); -$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); -$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); -$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); diff --git a/assets/_sass/bourbon/addons/_triangle.scss b/assets/_sass/bourbon/addons/_triangle.scss deleted file mode 100644 index 573954e..0000000 --- a/assets/_sass/bourbon/addons/_triangle.scss +++ /dev/null @@ -1,83 +0,0 @@ -@mixin triangle ($size, $color, $direction) { - height: 0; - width: 0; - - $width: nth($size, 1); - $height: nth($size, length($size)); - - $foreground-color: nth($color, 1); - $background-color: if(length($color) == 2, nth($color, 2), transparent); - - @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { - - $width: $width / 2; - $height: if(length($size) > 1, $height, $height/2); - - @if $direction == up { - border-left: $width solid $background-color; - border-right: $width solid $background-color; - border-bottom: $height solid $foreground-color; - - } @else if $direction == right { - border-top: $width solid $background-color; - border-bottom: $width solid $background-color; - border-left: $height solid $foreground-color; - - } @else if $direction == down { - border-left: $width solid $background-color; - border-right: $width solid $background-color; - border-top: $height solid $foreground-color; - - } @else if $direction == left { - border-top: $width solid $background-color; - border-bottom: $width solid $background-color; - border-right: $height solid $foreground-color; - } - } - - @else if ($direction == up-right) or ($direction == up-left) { - border-top: $height solid $foreground-color; - - @if $direction == up-right { - border-left: $width solid $background-color; - - } @else if $direction == up-left { - border-right: $width solid $background-color; - } - } - - @else if ($direction == down-right) or ($direction == down-left) { - border-bottom: $height solid $foreground-color; - - @if $direction == down-right { - border-left: $width solid $background-color; - - } @else if $direction == down-left { - border-right: $width solid $background-color; - } - } - - @else if ($direction == inset-up) { - border-width: $height $width; - border-style: solid; - border-color: $background-color $background-color $foreground-color; - } - - @else if ($direction == inset-down) { - border-width: $height $width; - border-style: solid; - border-color: $foreground-color $background-color $background-color; - } - - @else if ($direction == inset-right) { - border-width: $width $height; - border-style: solid; - border-color: $background-color $background-color $background-color $foreground-color; - } - - @else if ($direction == inset-left) { - border-width: $width $height; - border-style: solid; - border-color: $background-color $foreground-color $background-color $background-color; - } -} diff --git a/assets/_sass/bourbon/addons/_word-wrap.scss b/assets/_sass/bourbon/addons/_word-wrap.scss deleted file mode 100644 index 9734a59..0000000 --- a/assets/_sass/bourbon/addons/_word-wrap.scss +++ /dev/null @@ -1,8 +0,0 @@ -@mixin word-wrap($wrap: break-word) { - word-wrap: $wrap; - - @if $wrap == break-word { - overflow-wrap: break-word; - word-break: break-all; - } -} diff --git a/assets/_sass/bourbon/css3/_animation.scss b/assets/_sass/bourbon/css3/_animation.scss deleted file mode 100644 index 08c3dbf..0000000 --- a/assets/_sass/bourbon/css3/_animation.scss +++ /dev/null @@ -1,52 +0,0 @@ -// http://www.w3.org/TR/css3-animations/#the-animation-name-property- -// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. - -// Official animation shorthand property. -@mixin animation ($animations...) { - @include prefixer(animation, $animations, webkit moz spec); -} - -// Individual Animation Properties -@mixin animation-name ($names...) { - @include prefixer(animation-name, $names, webkit moz spec); -} - - -@mixin animation-duration ($times...) { - @include prefixer(animation-duration, $times, webkit moz spec); -} - - -@mixin animation-timing-function ($motions...) { -// ease | linear | ease-in | ease-out | ease-in-out - @include prefixer(animation-timing-function, $motions, webkit moz spec); -} - - -@mixin animation-iteration-count ($values...) { -// infinite | - @include prefixer(animation-iteration-count, $values, webkit moz spec); -} - - -@mixin animation-direction ($directions...) { -// normal | alternate - @include prefixer(animation-direction, $directions, webkit moz spec); -} - - -@mixin animation-play-state ($states...) { -// running | paused - @include prefixer(animation-play-state, $states, webkit moz spec); -} - - -@mixin animation-delay ($times...) { - @include prefixer(animation-delay, $times, webkit moz spec); -} - - -@mixin animation-fill-mode ($modes...) { -// none | forwards | backwards | both - @include prefixer(animation-fill-mode, $modes, webkit moz spec); -} diff --git a/assets/_sass/bourbon/css3/_appearance.scss b/assets/_sass/bourbon/css3/_appearance.scss deleted file mode 100644 index 3eb16e4..0000000 --- a/assets/_sass/bourbon/css3/_appearance.scss +++ /dev/null @@ -1,3 +0,0 @@ -@mixin appearance ($value) { - @include prefixer(appearance, $value, webkit moz ms o spec); -} diff --git a/assets/_sass/bourbon/css3/_backface-visibility.scss b/assets/_sass/bourbon/css3/_backface-visibility.scss deleted file mode 100644 index 1161fe6..0000000 --- a/assets/_sass/bourbon/css3/_backface-visibility.scss +++ /dev/null @@ -1,6 +0,0 @@ -//************************************************************************// -// Backface-visibility mixin -//************************************************************************// -@mixin backface-visibility($visibility) { - @include prefixer(backface-visibility, $visibility, webkit spec); -} diff --git a/assets/_sass/bourbon/css3/_background-image.scss b/assets/_sass/bourbon/css3/_background-image.scss deleted file mode 100644 index 6abe88b..0000000 --- a/assets/_sass/bourbon/css3/_background-image.scss +++ /dev/null @@ -1,42 +0,0 @@ -//************************************************************************// -// Background-image property for adding multiple background images with -// gradients, or for stringing multiple gradients together. -//************************************************************************// - -@mixin background-image($images...) { - $webkit-images: (); - $spec-images: (); - - @each $image in $images { - $webkit-image: (); - $spec-image: (); - - @if (type-of($image) == string) { - $url-str: str-slice($image, 0, 3); - $gradient-type: str-slice($image, 0, 6); - - @if $url-str == "url" { - $webkit-image: $image; - $spec-image: $image; - } - - @else if $gradient-type == "linear" { - $gradients: _linear-gradient-parser($image); - $webkit-image: map-get($gradients, webkit-image); - $spec-image: map-get($gradients, spec-image); - } - - @else if $gradient-type == "radial" { - $gradients: _radial-gradient-parser($image); - $webkit-image: map-get($gradients, webkit-image); - $spec-image: map-get($gradients, spec-image); - } - } - - $webkit-images: append($webkit-images, $webkit-image, comma); - $spec-images: append($spec-images, $spec-image, comma); - } - - background-image: $webkit-images; - background-image: $spec-images; -} diff --git a/assets/_sass/bourbon/css3/_background.scss b/assets/_sass/bourbon/css3/_background.scss deleted file mode 100644 index 9bce930..0000000 --- a/assets/_sass/bourbon/css3/_background.scss +++ /dev/null @@ -1,55 +0,0 @@ -//************************************************************************// -// Background property for adding multiple backgrounds using shorthand -// notation. -//************************************************************************// - -@mixin background($backgrounds...) { - $webkit-backgrounds: (); - $spec-backgrounds: (); - - @each $background in $backgrounds { - $webkit-background: (); - $spec-background: (); - $background-type: type-of($background); - - @if $background-type == string or list { - $background-str: if($background-type == list, nth($background, 1), $background); - - $url-str: str-slice($background-str, 0, 3); - $gradient-type: str-slice($background-str, 0, 6); - - @if $url-str == "url" { - $webkit-background: $background; - $spec-background: $background; - } - - @else if $gradient-type == "linear" { - $gradients: _linear-gradient-parser("#{$background}"); - $webkit-background: map-get($gradients, webkit-image); - $spec-background: map-get($gradients, spec-image); - } - - @else if $gradient-type == "radial" { - $gradients: _radial-gradient-parser("#{$background}"); - $webkit-background: map-get($gradients, webkit-image); - $spec-background: map-get($gradients, spec-image); - } - - @else { - $webkit-background: $background; - $spec-background: $background; - } - } - - @else { - $webkit-background: $background; - $spec-background: $background; - } - - $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); - $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); - } - - background: $webkit-backgrounds; - background: $spec-backgrounds; -} diff --git a/assets/_sass/bourbon/css3/_border-image.scss b/assets/_sass/bourbon/css3/_border-image.scss deleted file mode 100644 index e338c2d..0000000 --- a/assets/_sass/bourbon/css3/_border-image.scss +++ /dev/null @@ -1,59 +0,0 @@ -@mixin border-image($borders...) { - $webkit-borders: (); - $spec-borders: (); - - @each $border in $borders { - $webkit-border: (); - $spec-border: (); - $border-type: type-of($border); - - @if $border-type == string or list { - $border-str: if($border-type == list, nth($border, 1), $border); - - $url-str: str-slice($border-str, 0, 3); - $gradient-type: str-slice($border-str, 0, 6); - - @if $url-str == "url" { - $webkit-border: $border; - $spec-border: $border; - } - - @else if $gradient-type == "linear" { - $gradients: _linear-gradient-parser("#{$border}"); - $webkit-border: map-get($gradients, webkit-image); - $spec-border: map-get($gradients, spec-image); - } - - @else if $gradient-type == "radial" { - $gradients: _radial-gradient-parser("#{$border}"); - $webkit-border: map-get($gradients, webkit-image); - $spec-border: map-get($gradients, spec-image); - } - - @else { - $webkit-border: $border; - $spec-border: $border; - } - } - - @else { - $webkit-border: $border; - $spec-border: $border; - } - - $webkit-borders: append($webkit-borders, $webkit-border, comma); - $spec-borders: append($spec-borders, $spec-border, comma); - } - - -webkit-border-image: $webkit-borders; - border-image: $spec-borders; - border-style: solid; -} - -//Examples: -// @include border-image(url("image.png")); -// @include border-image(url("image.png") 20 stretch); -// @include border-image(linear-gradient(45deg, orange, yellow)); -// @include border-image(linear-gradient(45deg, orange, yellow) stretch); -// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); -// @include border-image(radial-gradient(top, cover, orange, yellow, orange)); diff --git a/assets/_sass/bourbon/css3/_border-radius.scss b/assets/_sass/bourbon/css3/_border-radius.scss deleted file mode 100644 index 7c17190..0000000 --- a/assets/_sass/bourbon/css3/_border-radius.scss +++ /dev/null @@ -1,22 +0,0 @@ -//************************************************************************// -// Shorthand Border-radius mixins -//************************************************************************// -@mixin border-top-radius($radii) { - @include prefixer(border-top-left-radius, $radii, spec); - @include prefixer(border-top-right-radius, $radii, spec); -} - -@mixin border-bottom-radius($radii) { - @include prefixer(border-bottom-left-radius, $radii, spec); - @include prefixer(border-bottom-right-radius, $radii, spec); -} - -@mixin border-left-radius($radii) { - @include prefixer(border-top-left-radius, $radii, spec); - @include prefixer(border-bottom-left-radius, $radii, spec); -} - -@mixin border-right-radius($radii) { - @include prefixer(border-top-right-radius, $radii, spec); - @include prefixer(border-bottom-right-radius, $radii, spec); -} diff --git a/assets/_sass/bourbon/css3/_box-sizing.scss b/assets/_sass/bourbon/css3/_box-sizing.scss deleted file mode 100644 index f07e1d4..0000000 --- a/assets/_sass/bourbon/css3/_box-sizing.scss +++ /dev/null @@ -1,4 +0,0 @@ -@mixin box-sizing ($box) { -// content-box | border-box | inherit - @include prefixer(box-sizing, $box, webkit moz spec); -} diff --git a/assets/_sass/bourbon/css3/_calc.scss b/assets/_sass/bourbon/css3/_calc.scss deleted file mode 100644 index 94d7e4c..0000000 --- a/assets/_sass/bourbon/css3/_calc.scss +++ /dev/null @@ -1,4 +0,0 @@ -@mixin calc($property, $value) { - #{$property}: -webkit-calc(#{$value}); - #{$property}: calc(#{$value}); -} diff --git a/assets/_sass/bourbon/css3/_columns.scss b/assets/_sass/bourbon/css3/_columns.scss deleted file mode 100644 index 96f601c..0000000 --- a/assets/_sass/bourbon/css3/_columns.scss +++ /dev/null @@ -1,47 +0,0 @@ -@mixin columns($arg: auto) { -// || - @include prefixer(columns, $arg, webkit moz spec); -} - -@mixin column-count($int: auto) { -// auto || integer - @include prefixer(column-count, $int, webkit moz spec); -} - -@mixin column-gap($length: normal) { -// normal || length - @include prefixer(column-gap, $length, webkit moz spec); -} - -@mixin column-fill($arg: auto) { -// auto || length - @include prefixer(column-fill, $arg, webkit moz spec); -} - -@mixin column-rule($arg) { -// || || - @include prefixer(column-rule, $arg, webkit moz spec); -} - -@mixin column-rule-color($color) { - @include prefixer(column-rule-color, $color, webkit moz spec); -} - -@mixin column-rule-style($style: none) { -// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid - @include prefixer(column-rule-style, $style, webkit moz spec); -} - -@mixin column-rule-width ($width: none) { - @include prefixer(column-rule-width, $width, webkit moz spec); -} - -@mixin column-span($arg: none) { -// none || all - @include prefixer(column-span, $arg, webkit moz spec); -} - -@mixin column-width($length: auto) { -// auto || length - @include prefixer(column-width, $length, webkit moz spec); -} diff --git a/assets/_sass/bourbon/css3/_filter.scss b/assets/_sass/bourbon/css3/_filter.scss deleted file mode 100644 index 8560d77..0000000 --- a/assets/_sass/bourbon/css3/_filter.scss +++ /dev/null @@ -1,5 +0,0 @@ -@mixin filter($function: none) { - // [ - @include prefixer(perspective, $depth, webkit moz spec); -} - -@mixin perspective-origin($value: 50% 50%) { - @include prefixer(perspective-origin, $value, webkit moz spec); -} diff --git a/assets/_sass/bourbon/css3/_placeholder.scss b/assets/_sass/bourbon/css3/_placeholder.scss deleted file mode 100644 index 5682fd0..0000000 --- a/assets/_sass/bourbon/css3/_placeholder.scss +++ /dev/null @@ -1,8 +0,0 @@ -@mixin placeholder { - $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; - @each $placeholder in $placeholders { - &:#{$placeholder}-placeholder { - @content; - } - } -} diff --git a/assets/_sass/bourbon/css3/_radial-gradient.scss b/assets/_sass/bourbon/css3/_radial-gradient.scss deleted file mode 100644 index 7a8c376..0000000 --- a/assets/_sass/bourbon/css3/_radial-gradient.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Requires Sass 3.1+ -@mixin radial-gradient($G1, $G2, - $G3: null, $G4: null, - $G5: null, $G6: null, - $G7: null, $G8: null, - $G9: null, $G10: null, - $pos: null, - $shape-size: null, - $fallback: null) { - - $data: _radial-arg-parser($G1, $G2, $pos, $shape-size); - $G1: nth($data, 1); - $G2: nth($data, 2); - $pos: nth($data, 3); - $shape-size: nth($data, 4); - - $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10; - - // Strip deprecated cover/contain for spec - $shape-size-spec: _shape-size-stripper($shape-size); - - // Set $G1 as the default fallback color - $first-color: nth($full, 1); - $fallback-color: nth($first-color, 1); - - @if (type-of($fallback) == color) or ($fallback == "transparent") { - $fallback-color: $fallback; - } - - // Add Commas and spaces - $shape-size: if($shape-size, '#{$shape-size}, ', null); - $pos: if($pos, '#{$pos}, ', null); - $pos-spec: if($pos, 'at #{$pos}', null); - $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} '); - - background-color: $fallback-color; - background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full})); - background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); -} diff --git a/assets/_sass/bourbon/css3/_transform.scss b/assets/_sass/bourbon/css3/_transform.scss deleted file mode 100644 index 8cc3596..0000000 --- a/assets/_sass/bourbon/css3/_transform.scss +++ /dev/null @@ -1,15 +0,0 @@ -@mixin transform($property: none) { -// none | - @include prefixer(transform, $property, webkit moz ms o spec); -} - -@mixin transform-origin($axes: 50%) { -// x-axis - left | center | right | length | % -// y-axis - top | center | bottom | length | % -// z-axis - length - @include prefixer(transform-origin, $axes, webkit moz ms o spec); -} - -@mixin transform-style ($style: flat) { - @include prefixer(transform-style, $style, webkit moz ms o spec); -} diff --git a/assets/_sass/bourbon/css3/_transition.scss b/assets/_sass/bourbon/css3/_transition.scss deleted file mode 100644 index 5ad4c0a..0000000 --- a/assets/_sass/bourbon/css3/_transition.scss +++ /dev/null @@ -1,77 +0,0 @@ -// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. -// Example: @include transition (all 2s ease-in-out); -// @include transition (opacity 1s ease-in 2s, width 2s ease-out); -// @include transition-property (transform, opacity); - -@mixin transition ($properties...) { - // Fix for vendor-prefix transform property - $needs-prefixes: false; - $webkit: (); - $moz: (); - $spec: (); - - // Create lists for vendor-prefixed transform - @each $list in $properties { - @if nth($list, 1) == "transform" { - $needs-prefixes: true; - $list1: -webkit-transform; - $list2: -moz-transform; - $list3: (); - - @each $var in $list { - $list3: join($list3, $var); - - @if $var != "transform" { - $list1: join($list1, $var); - $list2: join($list2, $var); - } - } - - $webkit: append($webkit, $list1); - $moz: append($moz, $list2); - $spec: append($spec, $list3); - } - - // Create lists for non-prefixed transition properties - @else { - $webkit: append($webkit, $list, comma); - $moz: append($moz, $list, comma); - $spec: append($spec, $list, comma); - } - } - - @if $needs-prefixes { - -webkit-transition: $webkit; - -moz-transition: $moz; - transition: $spec; - } - @else { - @if length($properties) >= 1 { - @include prefixer(transition, $properties, webkit moz spec); - } - - @else { - $properties: all 0.15s ease-out 0s; - @include prefixer(transition, $properties, webkit moz spec); - } - } -} - -@mixin transition-property ($properties...) { - -webkit-transition-property: transition-property-names($properties, 'webkit'); - -moz-transition-property: transition-property-names($properties, 'moz'); - transition-property: transition-property-names($properties, false); -} - -@mixin transition-duration ($times...) { - @include prefixer(transition-duration, $times, webkit moz spec); -} - -@mixin transition-timing-function ($motions...) { -// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() - @include prefixer(transition-timing-function, $motions, webkit moz spec); -} - -@mixin transition-delay ($times...) { - @include prefixer(transition-delay, $times, webkit moz spec); -} diff --git a/assets/_sass/bourbon/css3/_user-select.scss b/assets/_sass/bourbon/css3/_user-select.scss deleted file mode 100644 index 1380aa8..0000000 --- a/assets/_sass/bourbon/css3/_user-select.scss +++ /dev/null @@ -1,3 +0,0 @@ -@mixin user-select($arg: none) { - @include prefixer(user-select, $arg, webkit moz ms spec); -} diff --git a/assets/_sass/bourbon/functions/_assign.scss b/assets/_sass/bourbon/functions/_assign.scss deleted file mode 100644 index 9a1db93..0000000 --- a/assets/_sass/bourbon/functions/_assign.scss +++ /dev/null @@ -1,11 +0,0 @@ -@function assign-inputs($inputs, $pseudo: null) { - $list : (); - - @each $input in $inputs { - $input: unquote($input); - $input: if($pseudo, $input + ":" + $pseudo, $input); - $list: append($list, $input, comma); - } - - @return $list; -} \ No newline at end of file diff --git a/assets/_sass/bourbon/functions/_color-lightness.scss b/assets/_sass/bourbon/functions/_color-lightness.scss deleted file mode 100644 index 8c6df4e..0000000 --- a/assets/_sass/bourbon/functions/_color-lightness.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Programatically determines whether a color is light or dark -// Returns a boolean -// More details here http://robots.thoughtbot.com/closer-look-color-lightness - -@function is-light($hex-color) { - $-local-red: red(rgba($hex-color, 1.0)); - $-local-green: green(rgba($hex-color, 1.0)); - $-local-blue: blue(rgba($hex-color, 1.0)); - - $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; - - @return $-local-lightness > .6; -} diff --git a/assets/_sass/bourbon/functions/_flex-grid.scss b/assets/_sass/bourbon/functions/_flex-grid.scss deleted file mode 100644 index 3bbd866..0000000 --- a/assets/_sass/bourbon/functions/_flex-grid.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Flexible grid -@function flex-grid($columns, $container-columns: $fg-max-columns) { - $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($width / $container-width); -} - -// Flexible gutter -@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($gutter / $container-width); -} - -// The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function. -// This function takes the fluid grid equation (target / context = result) and uses columns to help define each. -// -// The calculation presumes that your column structure will be missing the last gutter: -// -// -- column -- gutter -- column -- gutter -- column -// -// $fg-column: 60px; // Column Width -// $fg-gutter: 25px; // Gutter Width -// $fg-max-columns: 12; // Total Columns For Main Container -// -// div { -// width: flex-grid(4); // returns (315px / 995px) = 31.65829%; -// margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%; -// -// p { -// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; -// float: left; -// margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%; -// } -// -// blockquote { -// float: left; -// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; -// } -// } \ No newline at end of file diff --git a/assets/_sass/bourbon/functions/_golden-ratio.scss b/assets/_sass/bourbon/functions/_golden-ratio.scss deleted file mode 100644 index 463d14a..0000000 --- a/assets/_sass/bourbon/functions/_golden-ratio.scss +++ /dev/null @@ -1,3 +0,0 @@ -@function golden-ratio($value, $increment) { - @return modular-scale($value, $increment, $golden) -} diff --git a/assets/_sass/bourbon/functions/_grid-width.scss b/assets/_sass/bourbon/functions/_grid-width.scss deleted file mode 100644 index 8e63d83..0000000 --- a/assets/_sass/bourbon/functions/_grid-width.scss +++ /dev/null @@ -1,13 +0,0 @@ -@function grid-width($n) { - @return $n * $gw-column + ($n - 1) * $gw-gutter; -} - -// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function. -// -// $gw-column: 100px; // Column Width -// $gw-gutter: 40px; // Gutter Width -// -// div { -// width: grid-width(4); // returns 520px; -// margin-left: $gw-gutter; // returns 40px; -// } diff --git a/assets/_sass/bourbon/functions/_modular-scale.scss b/assets/_sass/bourbon/functions/_modular-scale.scss deleted file mode 100644 index afc59eb..0000000 --- a/assets/_sass/bourbon/functions/_modular-scale.scss +++ /dev/null @@ -1,66 +0,0 @@ -// Scaling Variables -$golden: 1.618; -$minor-second: 1.067; -$major-second: 1.125; -$minor-third: 1.2; -$major-third: 1.25; -$perfect-fourth: 1.333; -$augmented-fourth: 1.414; -$perfect-fifth: 1.5; -$minor-sixth: 1.6; -$major-sixth: 1.667; -$minor-seventh: 1.778; -$major-seventh: 1.875; -$octave: 2; -$major-tenth: 2.5; -$major-eleventh: 2.667; -$major-twelfth: 3; -$double-octave: 4; - -@function modular-scale($value, $increment, $ratio) { - $v1: nth($value, 1); - $v2: nth($value, length($value)); - $value: $v1; - - // scale $v2 to just above $v1 - @while $v2 > $v1 { - $v2: ($v2 / $ratio); // will be off-by-1 - } - @while $v2 < $v1 { - $v2: ($v2 * $ratio); // will fix off-by-1 - } - - // check AFTER scaling $v2 to prevent double-counting corner-case - $double-stranded: $v2 > $v1; - - @if $increment > 0 { - @for $i from 1 through $increment { - @if $double-stranded and ($v1 * $ratio) > $v2 { - $value: $v2; - $v2: ($v2 * $ratio); - } @else { - $v1: ($v1 * $ratio); - $value: $v1; - } - } - } - - @if $increment < 0 { - // adjust $v2 to just below $v1 - @if $double-stranded { - $v2: ($v2 / $ratio); - } - - @for $i from $increment through -1 { - @if $double-stranded and ($v1 / $ratio) < $v2 { - $value: $v2; - $v2: ($v2 / $ratio); - } @else { - $v1: ($v1 / $ratio); - $value: $v1; - } - } - } - - @return $value; -} diff --git a/assets/_sass/bourbon/functions/_px-to-em.scss b/assets/_sass/bourbon/functions/_px-to-em.scss deleted file mode 100644 index 4832245..0000000 --- a/assets/_sass/bourbon/functions/_px-to-em.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Convert pixels to ems -// eg. for a relational value of 12px write em(12) when the parent is 16px -// if the parent is another value say 24px write em(12, 24) - -@function em($pxval, $base: $em-base) { - @if not unitless($pxval) { - $pxval: strip-units($pxval); - } - @if not unitless($base) { - $base: strip-units($base); - } - @return ($pxval / $base) * 1em; -} diff --git a/assets/_sass/bourbon/functions/_px-to-rem.scss b/assets/_sass/bourbon/functions/_px-to-rem.scss deleted file mode 100644 index 96b244e..0000000 --- a/assets/_sass/bourbon/functions/_px-to-rem.scss +++ /dev/null @@ -1,15 +0,0 @@ -// Convert pixels to rems -// eg. for a relational value of 12px write rem(12) -// Assumes $em-base is the font-size of - -@function rem($pxval) { - @if not unitless($pxval) { - $pxval: strip-units($pxval); - } - - $base: $em-base; - @if not unitless($base) { - $base: strip-units($base); - } - @return ($pxval / $base) * 1rem; -} diff --git a/assets/_sass/bourbon/functions/_strip-units.scss b/assets/_sass/bourbon/functions/_strip-units.scss deleted file mode 100644 index 6afc6e6..0000000 --- a/assets/_sass/bourbon/functions/_strip-units.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Srtips the units from a value. e.g. 12px -> 12 - -@function strip-units($val) { - @return ($val / ($val * 0 + 1)); -} diff --git a/assets/_sass/bourbon/functions/_tint-shade.scss b/assets/_sass/bourbon/functions/_tint-shade.scss deleted file mode 100644 index f717200..0000000 --- a/assets/_sass/bourbon/functions/_tint-shade.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Add percentage of white to a color -@function tint($color, $percent){ - @return mix(white, $color, $percent); -} - -// Add percentage of black to a color -@function shade($color, $percent){ - @return mix(black, $color, $percent); -} diff --git a/assets/_sass/bourbon/functions/_transition-property-name.scss b/assets/_sass/bourbon/functions/_transition-property-name.scss deleted file mode 100644 index 54cd422..0000000 --- a/assets/_sass/bourbon/functions/_transition-property-name.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Return vendor-prefixed property names if appropriate -// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background -//************************************************************************// -@function transition-property-names($props, $vendor: false) { - $new-props: (); - - @each $prop in $props { - $new-props: append($new-props, transition-property-name($prop, $vendor), comma); - } - - @return $new-props; -} - -@function transition-property-name($prop, $vendor: false) { - // put other properties that need to be prefixed here aswell - @if $vendor and $prop == transform { - @return unquote('-'+$vendor+'-'+$prop); - } - @else { - @return $prop; - } -} \ No newline at end of file diff --git a/assets/_sass/bourbon/functions/_unpack.scss b/assets/_sass/bourbon/functions/_unpack.scss deleted file mode 100644 index 3775963..0000000 --- a/assets/_sass/bourbon/functions/_unpack.scss +++ /dev/null @@ -1,17 +0,0 @@ -// Convert shorthand to the 4-value syntax - -@function unpack($shorthand) { - @if length($shorthand) == 1 { - @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); - } - @else if length($shorthand) == 2 { - @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); - } - @else if length($shorthand) == 3 { - @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); - } - @else { - @return $shorthand; - } -} - diff --git a/assets/_sass/bourbon/helpers/_convert-units.scss b/assets/_sass/bourbon/helpers/_convert-units.scss deleted file mode 100644 index 3443db3..0000000 --- a/assets/_sass/bourbon/helpers/_convert-units.scss +++ /dev/null @@ -1,15 +0,0 @@ -//************************************************************************// -// Helper function for str-to-num fn. -// Source: http://sassmeister.com/gist/9647408 -//************************************************************************// -@function _convert-units($number, $unit) { - $strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn'; - $units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn; - $index: index($strings, $unit); - - @if not $index { - @warn "Unknown unit `#{$unit}`."; - @return false; - } - @return $number * nth($units, $index); -} diff --git a/assets/_sass/bourbon/helpers/_gradient-positions-parser.scss b/assets/_sass/bourbon/helpers/_gradient-positions-parser.scss deleted file mode 100644 index 07d30b6..0000000 --- a/assets/_sass/bourbon/helpers/_gradient-positions-parser.scss +++ /dev/null @@ -1,13 +0,0 @@ -@function _gradient-positions-parser($gradient-type, $gradient-positions) { - @if $gradient-positions - and ($gradient-type == linear) - and (type-of($gradient-positions) != color) { - $gradient-positions: _linear-positions-parser($gradient-positions); - } - @else if $gradient-positions - and ($gradient-type == radial) - and (type-of($gradient-positions) != color) { - $gradient-positions: _radial-positions-parser($gradient-positions); - } - @return $gradient-positions; -} diff --git a/assets/_sass/bourbon/helpers/_is-num.scss b/assets/_sass/bourbon/helpers/_is-num.scss deleted file mode 100644 index 71459e1..0000000 --- a/assets/_sass/bourbon/helpers/_is-num.scss +++ /dev/null @@ -1,8 +0,0 @@ -//************************************************************************// -// Helper for linear-gradient-parser -//************************************************************************// -@function _is-num($char) { - $values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9; - $index: index($values, $char); - @return if($index, true, false); -} diff --git a/assets/_sass/bourbon/helpers/_linear-angle-parser.scss b/assets/_sass/bourbon/helpers/_linear-angle-parser.scss deleted file mode 100644 index e0401ed..0000000 --- a/assets/_sass/bourbon/helpers/_linear-angle-parser.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Private function for linear-gradient-parser -@function _linear-angle-parser($image, $first-val, $prefix, $suffix) { - $offset: null; - $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); - $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); - - @if ($unit-long == "grad") or - ($unit-long == "turn") { - $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); - } - - @else if ($unit-short == "deg") or - ($unit-short == "rad") { - $offset: if($unit-short == "deg", -90 * 3, 1.6rad); - } - - @if $offset { - $num: _str-to-num($first-val); - - @return ( - webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, - spec-image: $image - ); - } -} diff --git a/assets/_sass/bourbon/helpers/_linear-gradient-parser.scss b/assets/_sass/bourbon/helpers/_linear-gradient-parser.scss deleted file mode 100644 index 12bcdcd..0000000 --- a/assets/_sass/bourbon/helpers/_linear-gradient-parser.scss +++ /dev/null @@ -1,41 +0,0 @@ -@function _linear-gradient-parser($image) { - $image: unquote($image); - $gradients: (); - $start: str-index($image, "("); - $end: str-index($image, ","); - $first-val: str-slice($image, $start + 1, $end - 1); - - $prefix: str-slice($image, 0, $start); - $suffix: str-slice($image, $end, str-length($image)); - - $has-multiple-vals: str-index($first-val, " "); - $has-single-position: unquote(_position-flipper($first-val) + ""); - $has-angle: _is-num(str-slice($first-val, 0, 0)); - - @if $has-multiple-vals { - $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); - } - - @else if $has-single-position != "" { - $pos: unquote($has-single-position + ""); - - $gradients: ( - webkit-image: -webkit- + $image, - spec-image: $prefix + "to " + $pos + $suffix - ); - } - - @else if $has-angle { - // Rotate degree for webkit - $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); - } - - @else { - $gradients: ( - webkit-image: -webkit- + $image, - spec-image: $image - ); - } - - @return $gradients; -} diff --git a/assets/_sass/bourbon/helpers/_linear-positions-parser.scss b/assets/_sass/bourbon/helpers/_linear-positions-parser.scss deleted file mode 100644 index d26383e..0000000 --- a/assets/_sass/bourbon/helpers/_linear-positions-parser.scss +++ /dev/null @@ -1,61 +0,0 @@ -@function _linear-positions-parser($pos) { - $type: type-of(nth($pos, 1)); - $spec: null; - $degree: null; - $side: null; - $corner: null; - $length: length($pos); - // Parse Side and corner positions - @if ($length > 1) { - @if nth($pos, 1) == "to" { // Newer syntax - $side: nth($pos, 2); - - @if $length == 2 { // eg. to top - // Swap for backwards compatability - $degree: _position-flipper(nth($pos, 2)); - } - @else if $length == 3 { // eg. to top left - $corner: nth($pos, 3); - } - } - @else if $length == 2 { // Older syntax ("top left") - $side: _position-flipper(nth($pos, 1)); - $corner: _position-flipper(nth($pos, 2)); - } - - @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { - $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); - } - @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { - $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); - } - @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { - $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); - } - @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { - $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); - } - $spec: to $side $corner; - } - @else if $length == 1 { - // Swap for backwards compatability - @if $type == string { - $degree: $pos; - $spec: to _position-flipper($pos); - } - @else { - $degree: -270 - $pos; //rotate the gradient opposite from spec - $spec: $pos; - } - } - $degree: unquote($degree + ","); - $spec: unquote($spec + ","); - @return $degree $spec; -} - -@function _position-flipper($pos) { - @return if($pos == left, right, null) - if($pos == right, left, null) - if($pos == top, bottom, null) - if($pos == bottom, top, null); -} diff --git a/assets/_sass/bourbon/helpers/_linear-side-corner-parser.scss b/assets/_sass/bourbon/helpers/_linear-side-corner-parser.scss deleted file mode 100644 index 86ad88f..0000000 --- a/assets/_sass/bourbon/helpers/_linear-side-corner-parser.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Private function for linear-gradient-parser -@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { - $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 ); - $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); - $val-3: null; - $has-val-3: str-index($val-2, " "); - - @if $has-val-3 { - $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); - $val-2: str-slice($val-2, 0, $has-val-3 - 1); - } - - $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); - $pos: unquote($pos + ""); - - // Use old spec for webkit - @if $val-1 == "to" { - @return ( - webkit-image: -webkit- + $prefix + $pos + $suffix, - spec-image: $image - ); - } - - // Bring the code up to spec - @else { - @return ( - webkit-image: -webkit- + $image, - spec-image: $prefix + "to " + $pos + $suffix - ); - } -} diff --git a/assets/_sass/bourbon/helpers/_radial-arg-parser.scss b/assets/_sass/bourbon/helpers/_radial-arg-parser.scss deleted file mode 100644 index a3a3704..0000000 --- a/assets/_sass/bourbon/helpers/_radial-arg-parser.scss +++ /dev/null @@ -1,69 +0,0 @@ -@function _radial-arg-parser($G1, $G2, $pos, $shape-size) { - @each $value in $G1, $G2 { - $first-val: nth($value, 1); - $pos-type: type-of($first-val); - $spec-at-index: null; - - // Determine if spec was passed to mixin - @if type-of($value) == list { - $spec-at-index: if(index($value, at), index($value, at), false); - } - @if $spec-at-index { - @if $spec-at-index > 1 { - @for $i from 1 through ($spec-at-index - 1) { - $shape-size: $shape-size nth($value, $i); - } - @for $i from ($spec-at-index + 1) through length($value) { - $pos: $pos nth($value, $i); - } - } - @else if $spec-at-index == 1 { - @for $i from ($spec-at-index + 1) through length($value) { - $pos: $pos nth($value, $i); - } - } - $G1: null; - } - - // If not spec calculate correct values - @else { - @if ($pos-type != color) or ($first-val != "transparent") { - @if ($pos-type == number) - or ($first-val == "center") - or ($first-val == "top") - or ($first-val == "right") - or ($first-val == "bottom") - or ($first-val == "left") { - - $pos: $value; - - @if $pos == $G1 { - $G1: null; - } - } - - @else if - ($first-val == "ellipse") - or ($first-val == "circle") - or ($first-val == "closest-side") - or ($first-val == "closest-corner") - or ($first-val == "farthest-side") - or ($first-val == "farthest-corner") - or ($first-val == "contain") - or ($first-val == "cover") { - - $shape-size: $value; - - @if $value == $G1 { - $G1: null; - } - - @else if $value == $G2 { - $G2: null; - } - } - } - } - } - @return $G1, $G2, $pos, $shape-size; -} diff --git a/assets/_sass/bourbon/helpers/_radial-gradient-parser.scss b/assets/_sass/bourbon/helpers/_radial-gradient-parser.scss deleted file mode 100644 index 6dde50f..0000000 --- a/assets/_sass/bourbon/helpers/_radial-gradient-parser.scss +++ /dev/null @@ -1,50 +0,0 @@ -@function _radial-gradient-parser($image) { - $image: unquote($image); - $gradients: (); - $start: str-index($image, "("); - $end: str-index($image, ","); - $first-val: str-slice($image, $start + 1, $end - 1); - - $prefix: str-slice($image, 0, $start); - $suffix: str-slice($image, $end, str-length($image)); - - $is-spec-syntax: str-index($first-val, "at"); - - @if $is-spec-syntax and $is-spec-syntax > 1 { - $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); - $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); - $pos: append($pos, $keyword, comma); - - $gradients: ( - webkit-image: -webkit- + $prefix + $pos + $suffix, - spec-image: $image - ) - } - - @else if $is-spec-syntax == 1 { - $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); - - $gradients: ( - webkit-image: -webkit- + $prefix + $pos + $suffix, - spec-image: $image - ) - } - - @else if str-index($image, "cover") or str-index($image, "contain") { - @warn "Radial-gradient needs to be updated to conform to latest spec."; - - $gradients: ( - webkit-image: null, - spec-image: $image - ) - } - - @else { - $gradients: ( - webkit-image: -webkit- + $image, - spec-image: $image - ) - } - - @return $gradients; -} diff --git a/assets/_sass/bourbon/helpers/_radial-positions-parser.scss b/assets/_sass/bourbon/helpers/_radial-positions-parser.scss deleted file mode 100644 index 6a5b477..0000000 --- a/assets/_sass/bourbon/helpers/_radial-positions-parser.scss +++ /dev/null @@ -1,18 +0,0 @@ -@function _radial-positions-parser($gradient-pos) { - $shape-size: nth($gradient-pos, 1); - $pos: nth($gradient-pos, 2); - $shape-size-spec: _shape-size-stripper($shape-size); - - $pre-spec: unquote(if($pos, "#{$pos}, ", null)) - unquote(if($shape-size, "#{$shape-size},", null)); - $pos-spec: if($pos, "at #{$pos}", null); - - $spec: "#{$shape-size-spec} #{$pos-spec}"; - - // Add comma - @if ($spec != ' ') { - $spec: "#{$spec}," - } - - @return $pre-spec $spec; -} diff --git a/assets/_sass/bourbon/helpers/_render-gradients.scss b/assets/_sass/bourbon/helpers/_render-gradients.scss deleted file mode 100644 index 5765676..0000000 --- a/assets/_sass/bourbon/helpers/_render-gradients.scss +++ /dev/null @@ -1,26 +0,0 @@ -// User for linear and radial gradients within background-image or border-image properties - -@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { - $pre-spec: null; - $spec: null; - $vendor-gradients: null; - @if $gradient-type == linear { - @if $gradient-positions { - $pre-spec: nth($gradient-positions, 1); - $spec: nth($gradient-positions, 2); - } - } - @else if $gradient-type == radial { - $pre-spec: nth($gradient-positions, 1); - $spec: nth($gradient-positions, 2); - } - - @if $vendor { - $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); - } - @else if $vendor == false { - $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; - $vendor-gradients: unquote($vendor-gradients); - } - @return $vendor-gradients; -} diff --git a/assets/_sass/bourbon/helpers/_shape-size-stripper.scss b/assets/_sass/bourbon/helpers/_shape-size-stripper.scss deleted file mode 100644 index ee5eda4..0000000 --- a/assets/_sass/bourbon/helpers/_shape-size-stripper.scss +++ /dev/null @@ -1,10 +0,0 @@ -@function _shape-size-stripper($shape-size) { - $shape-size-spec: null; - @each $value in $shape-size { - @if ($value == "cover") or ($value == "contain") { - $value: null; - } - $shape-size-spec: "#{$shape-size-spec} #{$value}"; - } - @return $shape-size-spec; -} diff --git a/assets/_sass/bourbon/helpers/_str-to-num.scss b/assets/_sass/bourbon/helpers/_str-to-num.scss deleted file mode 100644 index b3d6168..0000000 --- a/assets/_sass/bourbon/helpers/_str-to-num.scss +++ /dev/null @@ -1,50 +0,0 @@ -//************************************************************************// -// Helper function for linear/radial-gradient-parsers. -// Source: http://sassmeister.com/gist/9647408 -//************************************************************************// -@function _str-to-num($string) { - // Matrices - $strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'; - $numbers: 0 1 2 3 4 5 6 7 8 9; - - // Result - $result: 0; - $divider: 0; - $minus: false; - - // Looping through all characters - @for $i from 1 through str-length($string) { - $character: str-slice($string, $i, $i); - $index: index($strings, $character); - - @if $character == '-' { - $minus: true; - } - - @else if $character == '.' { - $divider: 1; - } - - @else { - @if not $index { - $result: if($minus, $result * -1, $result); - @return _convert-units($result, str-slice($string, $i)); - } - - $number: nth($numbers, $index); - - @if $divider == 0 { - $result: $result * 10; - } - - @else { - // Move the decimal dot to the left - $divider: $divider * 10; - $number: $number / $divider; - } - - $result: $result + $number; - } - } - @return if($minus, $result * -1, $result); -} diff --git a/assets/_sass/bourbon/settings/_prefixer.scss b/assets/_sass/bourbon/settings/_prefixer.scss deleted file mode 100644 index ecab49f..0000000 --- a/assets/_sass/bourbon/settings/_prefixer.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Variable settings for /addons/prefixer.scss -$prefix-for-webkit: true !default; -$prefix-for-mozilla: true !default; -$prefix-for-microsoft: true !default; -$prefix-for-opera: true !default; -$prefix-for-spec: true !default; // required for keyframe mixin diff --git a/assets/_sass/bourbon/settings/_px-to-em.scss b/assets/_sass/bourbon/settings/_px-to-em.scss deleted file mode 100644 index f2f9a3e..0000000 --- a/assets/_sass/bourbon/settings/_px-to-em.scss +++ /dev/null @@ -1 +0,0 @@ -$em-base: 16px !default; diff --git a/assets/_sass/neat/_neat-helpers.scss b/assets/_sass/neat/_neat-helpers.scss deleted file mode 100644 index e915c69..0000000 --- a/assets/_sass/neat/_neat-helpers.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Functions -@import "functions/private"; -@import "functions/new-breakpoint"; - -// Settings -@import "settings/grid"; -@import "settings/visual-grid"; diff --git a/assets/_sass/neat/_neat.scss b/assets/_sass/neat/_neat.scss deleted file mode 100644 index e93d636..0000000 --- a/assets/_sass/neat/_neat.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Bourbon Neat 1.6.0.pre -// MIT Licensed -// Copyright (c) 2012-2013 thoughtbot, inc. - -// Helpers -@import "neat-helpers"; - -// Grid -@import "grid/private"; -@import "grid/reset"; -@import "grid/grid"; -@import "grid/omega"; -@import "grid/outer-container"; -@import "grid/span-columns"; -@import "grid/row"; -@import "grid/shift"; -@import "grid/pad"; -@import "grid/fill-parent"; -@import "grid/media"; -@import "grid/to-deprecate"; -@import "grid/visual-grid"; diff --git a/assets/_sass/neat/functions/_new-breakpoint.scss b/assets/_sass/neat/functions/_new-breakpoint.scss deleted file mode 100644 index a89c9ce..0000000 --- a/assets/_sass/neat/functions/_new-breakpoint.scss +++ /dev/null @@ -1,16 +0,0 @@ -@function new-breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { - - @if length($query) == 1 { - $query: $default-feature nth($query, 1) $total-columns; - } - - @else if length($query) % 2 == 0 { - $query: append($query, $total-columns); - } - - @if not belongs-to($query, $visual-grid-breakpoints) { - $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; - } - - @return $query; -} diff --git a/assets/_sass/neat/functions/_private.scss b/assets/_sass/neat/functions/_private.scss deleted file mode 100644 index 6f03cfc..0000000 --- a/assets/_sass/neat/functions/_private.scss +++ /dev/null @@ -1,125 +0,0 @@ -// Checks if a number is even -@function is-even($int) { - @if $int%2 == 0 { - @return true; - } - - @return false; -} - -// Checks if an element belongs to a list -@function belongs-to($tested-item, $list) { - @each $item in $list { - @if $item == $tested-item { - @return true; - } - } - - @return false; -} - -// Contains display value -@function contains-display-value($query) { - @if belongs-to(table, $query) or belongs-to(block, $query) or belongs-to(inline-block, $query) or belongs-to(inline, $query) { - @return true; - } - - @return false; -} - -// Parses the first argument of span-columns() -@function container-span($span: $span) { - @if length($span) == 3 { - $container-columns: nth($span, 3); - @return $container-columns; - } - - @else if length($span) == 2 { - $container-columns: nth($span, 2); - @return $container-columns; - } - - @else { - @return $grid-columns; - } -} - -@function container-shift($shift: $shift) { - $parent-columns: $grid-columns !global !default; - - @if length($shift) == 3 { - $container-columns: nth($shift, 3); - @return $container-columns; - } - - @else if length($shift) == 2 { - $container-columns: nth($shift, 2); - @return $container-columns; - } - - @else { - @return $parent-columns; - } -} - -// Generates a striped background -@function gradient-stops($grid-columns, $color: $visual-grid-color) { - $transparent: rgba(0,0,0,0); - - $column-width: flex-grid(1, $grid-columns); - $gutter-width: flex-gutter($grid-columns); - $column-offset: $column-width; - - $values: ($transparent 0, $color 0); - - @for $i from 1 to $grid-columns*2 { - @if is-even($i) { - $values: append($values, $transparent $column-offset, comma); - $values: append($values, $color $column-offset, comma); - $column-offset: $column-offset + $column-width; - } - - @else { - $values: append($values, $color $column-offset, comma); - $values: append($values, $transparent $column-offset, comma); - $column-offset: $column-offset + $gutter-width; - } - } - - @return $values; -} - -// Layout direction -@function get-direction($layout, $default) { - $direction: nil; - - @if $layout == LTR or $layout == RTL { - $direction: direction-from-layout($layout); - } @else { - $direction: direction-from-layout($default); - } - - @return $direction; -} - -@function direction-from-layout($layout) { - $direction: nil; - - @if $layout == LTR { - $direction: right; - } @else { - $direction: left; - } - - @return $direction; -} - -@function get-opposite-direction($direction) { - $opposite-direction: left; - - @if $direction == left { - $opposite-direction: right; - } - - @return $opposite-direction; -} diff --git a/assets/_sass/neat/grid/_fill-parent.scss b/assets/_sass/neat/grid/_fill-parent.scss deleted file mode 100644 index 859c977..0000000 --- a/assets/_sass/neat/grid/_fill-parent.scss +++ /dev/null @@ -1,7 +0,0 @@ -@mixin fill-parent() { - width: 100%; - - @if $border-box-sizing == false { - @include box-sizing(border-box); - } -} diff --git a/assets/_sass/neat/grid/_grid.scss b/assets/_sass/neat/grid/_grid.scss deleted file mode 100644 index e074b6c..0000000 --- a/assets/_sass/neat/grid/_grid.scss +++ /dev/null @@ -1,5 +0,0 @@ -@if $border-box-sizing == true { - * { - @include box-sizing(border-box); - } -} diff --git a/assets/_sass/neat/grid/_media.scss b/assets/_sass/neat/grid/_media.scss deleted file mode 100644 index bf27f70..0000000 --- a/assets/_sass/neat/grid/_media.scss +++ /dev/null @@ -1,38 +0,0 @@ -@mixin media($query:$feature $value $columns, $total-columns: $grid-columns) { - @if length($query) == 1 { - @media screen and ($default-feature: nth($query, 1)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns !global; - @content; - $grid-columns: $default-grid-columns !global; - } - } - - @else { - $loopTo: length($query); - $mediaQuery: 'screen and '; - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns !global; - - @if length($query) % 2 != 0 { - $grid-columns: nth($query, $loopTo) !global; - $loopTo: $loopTo - 1; - } - - $i: 1; - @while $i <= $loopTo { - $mediaQuery: $mediaQuery + '(' + nth($query, $i) + ': ' + nth($query, $i + 1) + ') '; - - @if ($i + 1) != $loopTo { - $mediaQuery: $mediaQuery + 'and '; - } - - $i: $i + 2; - } - - @media #{$mediaQuery} { - @content; - $grid-columns: $default-grid-columns !global; - } - } -} diff --git a/assets/_sass/neat/grid/_omega.scss b/assets/_sass/neat/grid/_omega.scss deleted file mode 100644 index c99ed6c..0000000 --- a/assets/_sass/neat/grid/_omega.scss +++ /dev/null @@ -1,61 +0,0 @@ -// Remove last element gutter -@mixin omega($query: block, $direction: default) { - $table: if(belongs-to(table, $query), true, false); - $auto: if(belongs-to(auto, $query), true, false); - - @if $direction != default { - @warn "The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead." - } @else { - $direction: get-direction($layout-direction, $default-layout-direction); - } - - @if $table { - @warn "The omega mixin no longer removes padding in table layouts." - } - - @if length($query) == 1 { - @if $auto { - &:last-child { - margin-#{$direction}: 0; - } - } - - @else if contains-display-value($query) and $table == false { - margin-#{$direction}: 0; - } - - @else { - @include nth-child($query, $direction); - } - } - - @else if length($query) == 2 { - @if $auto { - &:last-child { - margin-#{$direction}: 0; - } - } - - @else { - @include nth-child(nth($query, 1), $direction); - } - } - - @else { - @warn "Too many arguments passed to the omega() mixin." - } -} - -@mixin nth-child($query, $direction) { - $opposite-direction: get-opposite-direction($direction); - - &:nth-child(#{$query}) { - margin-#{$direction}: 0; - } - - @if type-of($query) == number { - &:nth-child(#{$query}+1) { - clear: $opposite-direction; - } - } -} diff --git a/assets/_sass/neat/grid/_outer-container.scss b/assets/_sass/neat/grid/_outer-container.scss deleted file mode 100644 index 22c541f..0000000 --- a/assets/_sass/neat/grid/_outer-container.scss +++ /dev/null @@ -1,8 +0,0 @@ -@mixin outer-container { - @include clearfix; - max-width: $max-width; - margin: { - left: auto; - right: auto; - } -} diff --git a/assets/_sass/neat/grid/_pad.scss b/assets/_sass/neat/grid/_pad.scss deleted file mode 100644 index 3ef5d80..0000000 --- a/assets/_sass/neat/grid/_pad.scss +++ /dev/null @@ -1,8 +0,0 @@ -@mixin pad($padding: flex-gutter()) { - $padding-list: null; - @each $value in $padding { - $value: if($value == 'default', flex-gutter(), $value); - $padding-list: join($padding-list, $value); - } - padding: $padding-list; -} diff --git a/assets/_sass/neat/grid/_private.scss b/assets/_sass/neat/grid/_private.scss deleted file mode 100644 index b195336..0000000 --- a/assets/_sass/neat/grid/_private.scss +++ /dev/null @@ -1,43 +0,0 @@ -$parent-columns: $grid-columns !default; -$fg-column: $column; -$fg-gutter: $gutter; -$fg-max-columns: $grid-columns; -$container-display-table: false !default; -$layout-direction: nil !default; - -@function flex-grid($columns, $container-columns: $fg-max-columns) { - $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($width / $container-width); -} - -@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { - $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; - @return percentage($gutter / $container-width); -} - -@function grid-width($n) { - @return $n * $gw-column + ($n - 1) * $gw-gutter; -} - -@function get-parent-columns($columns) { - @if $columns != $grid-columns { - $parent-columns: $columns !global; - } @else { - $parent-columns: $grid-columns !global; - } - - @return $parent-columns; -} - -@function is-display-table($container-is-display-table, $display) { - $display-table: false; - - @if $container-is-display-table == true { - $display-table: true; - } @else if $display == table { - $display-table: true; - } - - @return $display-table; -} diff --git a/assets/_sass/neat/grid/_reset.scss b/assets/_sass/neat/grid/_reset.scss deleted file mode 100644 index 496c4a7..0000000 --- a/assets/_sass/neat/grid/_reset.scss +++ /dev/null @@ -1,12 +0,0 @@ -@mixin reset-display { - $container-display-table: false !global; -} - -@mixin reset-layout-direction { - $layout-direction: $default-layout-direction !global; -} - -@mixin reset-all { - @include reset-display; - @include reset-layout-direction; -} diff --git a/assets/_sass/neat/grid/_row.scss b/assets/_sass/neat/grid/_row.scss deleted file mode 100644 index 81da6d3..0000000 --- a/assets/_sass/neat/grid/_row.scss +++ /dev/null @@ -1,17 +0,0 @@ -@mixin row($display: block, $direction: $default-layout-direction) { - @include clearfix; - $layout-direction: $direction !global; - - @if $display == table { - display: table; - @include fill-parent; - table-layout: fixed; - $container-display-table: true !global; - } - - @else { - display: block; - $container-display-table: false !global; - } -} - diff --git a/assets/_sass/neat/grid/_shift.scss b/assets/_sass/neat/grid/_shift.scss deleted file mode 100644 index 1d27b9b..0000000 --- a/assets/_sass/neat/grid/_shift.scss +++ /dev/null @@ -1,16 +0,0 @@ -@mixin shift($n-columns: 1) { - @include shift-in-context($n-columns); -} - -@mixin shift-in-context($shift: $columns of $container-columns) { - $n-columns: nth($shift, 1); - $parent-columns: container-shift($shift) !global; - - $direction: get-direction($layout-direction, $default-layout-direction); - $opposite-direction: get-opposite-direction($direction); - - margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns); - - // Reset nesting context - $parent-columns: $grid-columns !global; -} diff --git a/assets/_sass/neat/grid/_span-columns.scss b/assets/_sass/neat/grid/_span-columns.scss deleted file mode 100644 index c79193d..0000000 --- a/assets/_sass/neat/grid/_span-columns.scss +++ /dev/null @@ -1,43 +0,0 @@ -@mixin span-columns($span: $columns of $container-columns, $display: block) { - $columns: nth($span, 1); - $container-columns: container-span($span); - - // Set nesting context (used by shift()) - $parent-columns: get-parent-columns($container-columns) !global; - - $direction: get-direction($layout-direction, $default-layout-direction); - $opposite-direction: get-opposite-direction($direction); - - $display-table: is-display-table($container-display-table, $display); - - @if $display-table { - display: table-cell; - width: percentage($columns / $container-columns); - } @else { - float: #{$opposite-direction}; - - @if $display != no-display { - display: block; - } - - @if $display == collapse { - @warn "The 'collapse' argument will be deprecated. Use 'block-collapse' instead." - } - - @if $display == collapse or $display == block-collapse { - width: flex-grid($columns, $container-columns) + flex-gutter($container-columns); - - &:last-child { - width: flex-grid($columns, $container-columns); - } - - } @else { - margin-#{$direction}: flex-gutter($container-columns); - width: flex-grid($columns, $container-columns); - - &:last-child { - margin-#{$direction}: 0; - } - } - } -} diff --git a/assets/_sass/neat/grid/_to-deprecate.scss b/assets/_sass/neat/grid/_to-deprecate.scss deleted file mode 100644 index d0a681f..0000000 --- a/assets/_sass/neat/grid/_to-deprecate.scss +++ /dev/null @@ -1,57 +0,0 @@ -@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { - @warn "The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."; - - @if length($query) == 1 { - @media screen and ($default-feature: nth($query, 1)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } - - @else if length($query) == 2 { - @media screen and (nth($query, 1): nth($query, 2)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } - - @else if length($query) == 3 { - @media screen and (nth($query, 1): nth($query, 2)) { - $default-grid-columns: $grid-columns; - $grid-columns: nth($query, 3); - @content; - $grid-columns: $default-grid-columns; - } - } - - @else if length($query) == 4 { - @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { - $default-grid-columns: $grid-columns; - $grid-columns: $total-columns; - @content; - $grid-columns: $default-grid-columns; - } - } - - @else if length($query) == 5 { - @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { - $default-grid-columns: $grid-columns; - $grid-columns: nth($query, 5); - @content; - $grid-columns: $default-grid-columns; - } - } - - @else { - @warn "Wrong number of arguments for breakpoint(). Read the documentation for more details."; - } -} - -@mixin nth-omega($nth, $display: block, $direction: default) { - @warn "The nth-omega() mixin is deprecated. Please use omega() instead."; - @include omega($nth $display, $direction); -} diff --git a/assets/_sass/neat/grid/_visual-grid.scss b/assets/_sass/neat/grid/_visual-grid.scss deleted file mode 100644 index 1c822fd..0000000 --- a/assets/_sass/neat/grid/_visual-grid.scss +++ /dev/null @@ -1,41 +0,0 @@ -@mixin grid-column-gradient($values...) { - background-image: deprecated-webkit-gradient(linear, left top, left bottom, $values); - background-image: -webkit-linear-gradient(left, $values); - background-image: -moz-linear-gradient(left, $values); - background-image: -ms-linear-gradient(left, $values); - background-image: -o-linear-gradient(left, $values); - background-image: unquote("linear-gradient(left, #{$values})"); -} - -@if $visual-grid == true or $visual-grid == yes { - body:before { - content: ''; - display: inline-block; - @include grid-column-gradient(gradient-stops($grid-columns)); - height: 100%; - left: 0; - margin: 0 auto; - max-width: $max-width; - opacity: $visual-grid-opacity; - position: fixed; - right: 0; - width: 100%; - pointer-events: none; - - @if $visual-grid-index == back { - z-index: -1; - } - - @else if $visual-grid-index == front { - z-index: 9999; - } - - @each $breakpoint in $visual-grid-breakpoints { - @if $breakpoint != nil { - @include media($breakpoint) { - @include grid-column-gradient(gradient-stops($grid-columns)); - } - } - } - } -} diff --git a/assets/_sass/neat/settings/_grid.scss b/assets/_sass/neat/settings/_grid.scss deleted file mode 100644 index f1dcda4..0000000 --- a/assets/_sass/neat/settings/_grid.scss +++ /dev/null @@ -1,7 +0,0 @@ -$column: golden-ratio(1em, 3) !default; // Column width -$gutter: golden-ratio(1em, 1) !default; // Gutter between each two columns -$grid-columns: 12 !default; // Total number of columns in the grid -$max-width: em(1088) !default; // Max-width of the outer container -$border-box-sizing: true !default; // Makes all elements have a border-box layout -$default-feature: min-width; // Default @media feature for the breakpoint() mixin -$default-layout-direction: LTR !default; diff --git a/assets/_sass/neat/settings/_visual-grid.scss b/assets/_sass/neat/settings/_visual-grid.scss deleted file mode 100644 index 611c2b3..0000000 --- a/assets/_sass/neat/settings/_visual-grid.scss +++ /dev/null @@ -1,5 +0,0 @@ -$visual-grid: false !default; // Display the base grid -$visual-grid-color: #EEE !default; -$visual-grid-index: back !default; // Show grid behind content (back) or overlay it over the content (front) -$visual-grid-opacity: 0.4 !default; -$visual-grid-breakpoints: () !default; diff --git a/assets/_sass/styles.scss b/assets/_sass/styles.scss deleted file mode 100644 index e81f3de..0000000 --- a/assets/_sass/styles.scss +++ /dev/null @@ -1,328 +0,0 @@ -@import "bourbon/bourbon"; -@import "neat/neat"; - -// Colors -$header: #153E56; -$white: #ffffff; -$mid-gray: #75787b; -$border-gray: #babbbd; -$link: #0072ce; -$link-active: #002d72; -$link-hover: #7eb8dd; - -$header-height: 80px; -$header-height-mobile: 65px; - -// Fonts -$serif: "Merriweather", "Georgia", "Times New Roman", serif; -$sans-serif: "Open Sans", Arial, sans-serif; - -// Mobile Breakpoints -$mobile: new-breakpoint(min-width 0px max-width 640px 4); -$slimmer: new-breakpoint(min-width 641px max-width 980px 12); - -/** more normalize **/ - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html, body { - height: 100%; -} - -/* -Typography -================================== -*/ - -body { - font-family: $serif; - font-weight: 400; - font-style: normal; - line-height: 1.9em; -} - -header h1 { - font-family: $serif; - font-weight: normal; -} - -h1, h2, h3, h4, h5, h6 { - font-family: $sans-serif; -} - -h1 { - margin-top: 0.8em; - margin-bottom: 1em; - font-size: 24pt; - line-height: 1.3em; -} - -h2, h3, h4, h5, h6 { - margin-top: 2.0em; - line-height: 1.2em; -} - -h2:before, h3:before, h4:before, h5:before, h6:before { - content: ''; - display: block; position: relative; - width: 0; height: 4.6em; - margin-top: -4.6em; -} - -/** Overall structure, desktop and mobile */ - -header { - background-color: $header; - padding: 1.3em; - color: $white; - - position: fixed; - height: $header-height; - width: 100%; - - h1 { - margin: 0; - font-size: 26pt; - } - - h1 a, - h1 a:link, - h1 a:visited { - color: $white; - border-bottom: 0px; - } - - h1 a:hover { - border-bottom: 1px solid #fff; - } -} - -aside { - @include span-columns(3.25); - margin-top: $header-height; -} - -article { - @include shift(0.25); - @include span-columns(8); - margin-bottom: 20px; - margin-top: $header-height; -} - -@media screen and (max-width: 600px) { - - header { - padding: 20px 10px; - height: $header-height-mobile; - h1 { - font-size: 18pt; - } - } - - aside { - @include span-columns(12); - margin-top: $header-height-mobile; - } - - article { - @include span-columns(12); - padding-left: 5px; - padding-right: 10px; - margin-top: 0px; - } - -} - -@media screen and (max-width: 320px) { - header { - h1 { - font-size: 16pt; - } - } -} - -/* todo: errrr */ -img {width: 700px;} - - -/* Lists */ - -article ul { - padding-left: 1.1em; -} - -article li { - margin-bottom: 1em; -} - -li h3, -li h4 { - margin: 0; -} - -li p { - margin-top: 0; -} - -ul > li > ul { - margin-top: 10px; -} - - -/* Navigation */ - -aside { - - p { - padding-left: 15px; - } - - .sidebar-nav a { - display: block; - padding: 10px; - -webkit-transition: .4s; - transition: .4s; - } - .sidebar-nav a, - .sidebar-nav a:link, - .sidebar-nav a:visited { - border-bottom: none; - color: $mid-gray; - } - - .sidebar-nav li:hover, - .sidebar-nav .sidebar-nav-active { - color: $mid-gray; - border-left: 5px solid $header; - background-color: transparent; - border-bottom: 1px solid $border-gray; - padding-left: 0; - } - .sidebar-nav ul { - margin: 0; - padding: 0; - } - .sidebar-nav li { - list-style: none; - border-bottom: 1px solid $border-gray; - font-size: 1.125em; - padding-left: 5px; - } - .sidebar-nav li:last-child { - border-bottom: none; - } - -} - - - -p > code, li > code { - padding: 2px 4px; - background-color: #eaeaff; - border: 1px solid #d5d5d5; - font-size: 10pt; - font-family: monospace; -} - -pre { - max-width: 100%; - font-size: 0.875em; - overflow-y: scroll; - background-color: #f1f2f2; - padding: 10px; -} - - -/* Links */ - -/* for hover effects */ -a { - -webkit-transition: .2s; - -moz-transition: .2s; - transition: .2s; -} - -a, -a:link, -a:visited { - color: $link; - border-bottom: 1px dotted $link; - text-decoration: none; -} - -a:hover { - border-bottom: 1px solid $link-hover; - color: $link-hover; - text-decoration: none; -} - -a:active { - border-bottom: 1px solid $link; - color: $link-active; - text-decoration: none; -} - -a:focus { - border-bottom: 1px solid $link; - color: $link; - outline: thin dotted; - text-decoration: none; -} - -a.skip-link { - color: $link; - border-bottom: none; - padding: .25em; -} - -a.skip-link:hover, -a.skip-link:active, -a.skip-link:focus { - background-color: $link; - color: $white; - border-bottom: none; -} - - -/* Helpers */ - -/* Hide from both screenreaders and browsers: h5bp.com/u */ -.hidden { - display: none !important; - visibility: hidden; -} - -/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -/* Extends the .visuallyhidden class to allow the element to be focusable - * when navigated to via the keyboard: h5bp.com/p */ -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -/* Hide visually and from screenreaders, but maintain layout */ -.invisible { - visibility: hidden; -} diff --git a/assets/css/google-fonts.css b/assets/css/google-fonts.css deleted file mode 100644 index 2cc3e76..0000000 --- a/assets/css/google-fonts.css +++ /dev/null @@ -1,77 +0,0 @@ -@font-face { - font-family: 'Merriweather'; - font-style: normal; - font-weight: 300; - src: local("Merriweather Light"), - local("Merriweather-Light"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/merriweather-69bd3f15962cf91348a133d3d38571a5c67eca65.ttf") format("truetype"); -} - -@font-face { - font-family: 'Merriweather'; - font-style: normal; - font-weight: 400; - /* IE6-8 compat */ - src: url("../fonts/merriweather-006a72f9b37d353a87e0a853c811c2036304cd53.eot"); - src: local("Merriweather"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/merriweather-956aa75249c84b5fcee1c10527af21a83eb780b5.svg#Merriweather") format("svg"), - url("../fonts/merriweather-006a72f9b37d353a87e0a853c811c2036304cd53.eot") format("embedded-opentype"), - url("../fonts/merriweather-d392237948e74246a2fb0d0d886498776a185e54.ttf") format("truetype"); -} - -@font-face { - font-family: 'Merriweather'; - font-style: normal; - font-weight: 700; - src: local("Merriweather Bold"), - local("Merriweather-Bold"), - url("data:application/x-font-woff;base64,d09GRgABAAAAAEYQAA8AAAAAeawAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEA10dQT1MAAAFwAAAAdgAAAKDewuNKR1NVQgAAAegAAAAMAAAADAAVAApPUy8yAAAB9AAAAFYAAABgh2pSu2NtYXAAAAJMAAAAiAAAALyTm4m9Z2FzcAAAAtQAAAAIAAAACAAAABBnbHlmAAAC3AAAPLMAAG2snLDYvGhlYWQAAD+QAAAANgAAADYhEZjQaGhlYQAAP8gAAAAfAAAAJBF1CL9obXR4AAA/6AAAAjsAAANcMAZU92xvY2EAAEIkAAABsAAAAbCdXriwbWF4cAAAQ9QAAAAYAAAAIADfAIBuYW1lAABD7AAAAMsAAAGiIRo7p3Bvc3QAAES4AAABUAAAAeUSaeQycHJlcAAARggAAAAHAAAAB2gGjIUAAQAAAAwAAAAAAAAAAgABAAEA1gABAAB4AR2JtRkCURgEB5eIFK2ABmiABHd3SHAriDJoCCng8v/2e8HqEACSFCgSOK6eZ+KEAcwcCRx2d32gJYkFXcallBaEyDBlrR2iRJmx/qq9qNufhtS2Nx2pq6+nHEhD9ZFyrJxIU2kmzaWFFND7lQ/M8wFsDiymAAAAAQAAAAoACgAKAAB4AWNgZpVj2sPAysDAXcm1jIGByQdCs19kOMZszszAxMbKzMrCxszO0sDAsDyAAQGCQ5wVGBQYGH+zsDf8BUqyNzABSQZGkBxLPJsgkFJgYAYAmcgM9AAAeAFjYGBgAmJmIBYBkoxgmoVhBZBWY1AAstiALF6GOoY1DP8ZDRmDmY4x3WK6oyCiIKUgp6CkYKXgorBGSej/fwYQ4AXqWMCwDqguCKpOWEFCQQaozhKujvn/9/9P/x/5f/j/pP9F/xj+vv375sG2B5sfbHqw/sHMBxMeaN47AnQFUQAAUCovUAABAAH//wAPeAGUewdAU+f6d973nJywIWQcEkLITiCEhIQkQCDMsEGQvfcQRGUIKMhwgNrWqqh1a3dra6fde9feXm+3bW1t6+28o73/263k8L3nhCj1+v1Hm3BO1vM87zN+z3hfWZD14MICkcjeysJYwSwWT86VqwGwA6AFgAPAg+ytF0fBJpAMqo9Qh0D3HdTD1IljoJW6A30w8hfQSR0+AmpA9W3UHOi+lbqbeoXFQjSfXvgSJhE/IZokTRNTYvFOaDFLoYAfBJWKWPg0mBg+2KVKzFHGpEcLlIl5almKMYL46ZKC6ovKjo8QGxwKvStOLIhy0PT+ij2P+xK/IHocFgsgevQTfgRMrjvcr4A41x3EL/NvYLb5N9B3p1kstp1dwIpgydF3lVYLj35aMDl6WgRKzMIXor9KWiqA/oD6c99K/vGr/F0xCA3/RHz++4ivwU+RH4ipH+VnYWg49ZMEtD4Msh8EqdQL9PNB6klDjYE6inRwFApANvUkC7DmFnj4Q8THrDy0WgspxSxmJ7TGx0JtLGZFK7fbLRwpRnKV6LVSEYS0IIWklE0rg8NR2mMx7dxYiSSnpDwqtqkoztm5Obtg92BO0fjRMuIZtqO7PCV4Y5VfTFKmXFdbaLZU9Dvt/SvqXdq8zY+v9nnJJ3FlU2EYeOAzeRTJESXWZyY2lBZooupXb6tq3Nme5Pvc8+xgPt+XevMNP36wL89Y7EhoKM1WSFOyCmt6UpsPrc7gvP8RmysUBbHQf2xW58JhTjZxM2O7KFYKaxnSogUoMSIWMmuxeayoNdvoFXqXA5Z8xEFftaP3LFe+gt/9Z/e6NztLJqtNzq6t+bXT5dqU7llrZj6ptUoVNq1AFG2Hr3g+KtOhax791bPo3ciMAuY7dq2AuPm3S1gYSGrbnFe7vckMQEL7TGHNtsa4DZOr7PVpKoWz1m6pztBQ55Z8vL0hDtA/KaU/ufw9tLqphQvs84SAlcZazmpFdqMXEIvZnZjXT2mTkTa0BI1WLsWYd4SkgCC0Go2WIGgvBrbLC+QQSAeeNSMq6PMpS/WoS5ZmkQJQuO5waf3eFYn2xnGXuq2zRUn4Q4kfgOwAP06w1BC5ukHZYjN3JOU+2Td+/q5WmNBQFqLNiBMnmBQ4W2pJoX50tE25XAOGuOHRNTHOYrC+YG1Dniymvq0nsWV3q9lSN5abu2mwWWUaHulREtGVmrZhrl9ETHJUVE1NpbqQGAr2ZRORMkOcofUQbLLfNaIsStdzo7PjMwabiijJ8qE8RTA3av32G1L0q5APADreIJ+JNyZ6/+oNMfqz66n7MBFxnhVB6yzUidnJIDZaPU5yYnF4fWrLaH9T2Iggs6gkMxbHtVnV1cvE02EtQ2PtafDMYRB4/oHJosDKoLTuXc99v2tu4YN7p8pC64MyB++8AGQM783USYxLfMqSslikk223xeJauxQPFfBhEMbRHhRkFpdk0JRdVdUlokXKztaRAcTVfS2y1OcPH6Z+/Ox+mi1NfwX8HZ/lAJYSvbBz2Fq1HT3YpBZLgkKz2YJx7GqSzUEPtZbkKSE/dhn1+zTI6l9FPTYJ/EpixRyVyRan4ohtdQDOUXcMDYGqPdR8Wazsn7hrqPGDB06KhUeefb96A8gC1DMbOl599iax5OQ97zUMUado/veDIryNrWLxGP4Im5B7WwQcO8ImLSlQwgjf42fPHvf90G/uq6/m/D6Eiod83/c/de7cKf/3fR96n8Xo6B73B7AMmGh0tdulGIfWjNWJMZDz9G3p9Y5wANK7JlPTIp1mmSgmUdb0tqC0c42l7eaxCjIjOiAut96myrIrMUTrEfgeXood9NhaIH8EOzzfjh18leHz0sLX0AZctKz2qxD8pavBe8t/4DZgSam9WBiRysI8GAKTzru/PE+k/laJcHpg4Wv8W/wrRDsKcXZiNHqghTBxJVyETw0DLvgQ7Lj1nTU3vbPZAWDD0beG9nywLR1m5rY4RIqsduaKwig5H47u+vpYBQAtJ77ZvPOHe5r6HvueGoBpU89tWP3EbAEEqWMPrk7bONJdFEvLVs5iYXvwf7P4aG1qLq1B5G0kRgrkAygTZOXlyyNk1W0dFWkB3fil+fOjSkzD9vP3Z8/6ynWGKIUf99ITilFEp5vFwvfgP7A0iI6TfRkPtEuARI3oynuXH9s5VmMRJ9akJnZW54W7hA1bbm9cefvqhKrb/7EPKhpHMuczV5oHxqanJx36qpwYSYxF2CMtzDQ4Wicyu5978vEmx5SaepuW3YZi8J/4zyykZNKrK44Vcbddg7sHlXFtvGZ43bnbWwUp/fVPa6srlyWrgCIxR+2oL0gW5YQWr91fn7dzINteO5jcfKA3MXHl4Zf/sQXcIY5s2d9kbC5NIKJuJcLUlvRlJluBUcCPVIeu4iVaNaqSiTrHSPcyHrA0biwsvmnTirTgME2ux08LqK346/hFRsc2MbRbSMBR8+xcu0DJlfPkBXm33Xkss/wR94M54Lz/dy++SC34ujsHNgAxiALmfRPz/Y1R4LiOKuR+Sm0Fox6ao9TN2E/Ibhpm7Ti9do6WJ0cpVo7ZbAxQ40qFRmtfl7try0C5KWPyydEaF2ySrM+iuK7mhw5sqDE5enaffLFd5AwHb3NCYgu6potbtxdw5Cp4MuIidUQRqChcvaO05vi2VUXRhM/UIt+F71CO92HZmVyBe2HPm+qVCsKrdW+IjOZPnXz1/RXOmjvnxmrMALD5mtRaZ3xdpkaeUmlNzJPEBiSWdia27W03F+w4s3H85W25MGbL93+5d1M1b524avD6wyeqksZHe0uNxrqZyqyRmviw0GperE6cO3q0qu/1A/UNR9/1yDZNPYFPoVgKRAmc1jOb1ggJ1MBScvDA/mL3x2W3RGO3m9xvUt98eQCkgHxQ82jYWxwwZr3o24aicw2KxZsIEZPvSy/nQuuSkOd4FYuik47VJZkfPS/XO0HYGk3JaJmlLktbNnOiqvbWsdzYotb4jLGmpOj8jrWTqa3PH2yCzcpEnRAAVWqFSVuSrotb3kedM5T2Z+mrXDFp3VtcqnRzBFhrH1rVpFCXNvWlt8+1GGNrZ6rsa1eUCfW1Hf3pReMtOQZhTPN+OMRzZJdGp3Tk6sJtxZa46uVFFC9vvM4iSapJcbRWl+mFiZnFLDpOqRX4IfxrVgJ64ckr3hXQOZv0II93yYvZBhA1t1w3UGoAAOepUpDtapHtkiutceViQ4itqCPFY7s/bxp/aUu2a/S2Z9/uTqEuiNtnb33widqk8ZElphNxq8lYTVju6DHadHUNx95eu3WB9eWL+9p56+iaGWHtBWjDMxAeapGEf5AlCF5dP4OVNOQugeAzV8Mx/CvCYM1STHYfvRqhPXxRLlnL8NVfg68d2X1pdgF9shRThCrpMrNTt6U3JIXD9M7FbCPWJ8muwXv8/5eAGP89xvoz3s02sQjke0AA0OMYdtpdDu+dt2Mp4MefqWeot+fB3xh5HwFn8VJ8HdMLMBmL681a9BNf9yL115domn9ivYzvYWs9NIEV0fwTvMddgZ2et4MnQAYwzVPCGSqQodm08CV2H8fBMrIy0U9R/aZBAR7L1mqYmCalOMFhoh2S/2GIgyqnUQJA/prNw+UcoM9p7OgyuFaE+3Bi0/IUu9/bVaZmh7ATljfX5IQEBMujgr5RJWUj3ekFyqRFQ/nIymoqFKa8xNjoKOQfLbkmEYCB3E/8eIE+AC8ZO3Rkty3MEK2PiQuPqG2ui6TGrmnHR6kZjpt9L8pHE57KDKosZlwopMOWQ9DJ1GZHlvSU8bjdJkS1LSkUkvR7QouZRlImJHAB34NqnphQabwRjts93cuj1Qfe+gHgG18D2peaTeUDm27Mjk5UcSH085Uubx9wWnur7Mq0qhXDzvwtKT5ivqna7C8UhHIC+SHhaWmOWImldsOe2ytrHz0xtyrV1rLl2MONcQO91aRV2TW1q+g16rG/T8M7/UQGJZnqcjlifANNdivP2ZqpAtffCsL//thERud932xc//Y9m+rNGAyLyzaI+zJybujPhTC+fUd1+c03rquOh3h4OCljB0YGJ2y6YS5nZkpf0DW6xbXqxGS1LczcfMMj56e2vnt0VZY0SCAO6BPrpdye10EkkMe0ltntDetnr0v1R+q3tF7P6BZnsYgggssKZiohO5ADVCZY7Vo5B12BP8S3gd8BAb455N4/53K/mnPE/RP23O6yfw+p2OsuzqoHB7VffKYbgiQ4C6Ruf9peGKtu4Sd2IyFnqVBGyaepcrVWOQ2tSwCXIBjE1SqB0Hwl0aAPMSm2NPHU3XwERAZmNa9N3fjaTJY8qzu7aHtXStHtlPvRmKrqevMP4NnIJmt5X6pIVTBQHKQ3RAVggXFOl7x4qFiryB+uSBixDGnwc4JZiOMYgHFNs+Xpw605XJDYsa1k1f3rMzAcB1i/j7ViZUJSU5YGYAT7UgAnwIdtrhjMyFy9TA98UMwVLnzJziAiWXGeHEkHCokt6Xo9fmW3cBc9qzBt8Ogz764u2NBVruDdlsaPcRTbGu4Yzw23lfRsLHbWZeiDcraqq0ZvWf0A9d1LXfC96QtPzXVYQwQkh7rj6VAx17f00F931957YLohPlisEpyinoARCsnAacBn7NaCdHwRySNhxXg1jASgw4LuJwhcq2D0p1QL7R58UxIEp+XQTSDGWFNdazoN5E/XjL5PfXJSXVZRrik6WASeajpWe3QkK3P6mXUptbIhFX6eP4sTeO/L1D/ueoX60wdrGAUei/ZnV9/81e4T83cuB4H+DMZ1oNxsQD5EeiXhKbVqrhopw3NFJWLHkf24S3pbHpUKzDFzczHUGXBx6LjlUi/i86lglnrxNq77vM8BKu4w4b5fdDqSOoXoNqD68x1EV3CZLmcJXbZA3nDsGF4nvjGF4oNW29SNKuoQsLhDhmT4Bf4s9Rw8ynO/77eP0h0j3OdEmzx4nI/seBbpzcIgiU21xJBBmNeODDMBh4uKdMaY+ROfgOiTLQjhBbw9BURUTkd698nxbNKY17Gp1FBXnBz8BVzea5k9cn/tcerS4x3wwgsg/oOBIB6foF446UMKgkDtLX/dXnv/4c1NthBpTDjIJLdtE1IRmEQtW3sGhHlkK0WxeB1abzhar1cE+eKViUr0Cl3L7r4HDt4Fj9wJV9/9sHv8IXfbQ+4tHh+f5bs/gwoeul5SagYH1TDC/aV6iKZdhJzmc0Tb30PbS7Po8cfg1geedPcNqfFP0O+FlzQa+vsLh6gR+JhHFhI50OIv6Ohl+gnsTDDfDz8My2/CfbmBkev33ZbnjG9c5oyPaV49VYQh/c8K5u8qPbpjRN9wQ4uNqA41OYtoOXKRr3yK6GqXyAFQAa9FN0DKJpFMCtQXM8LlnjoFN9wL5o8CAO0PUKm61s7OuvywG6ntovSCsvIyzbYXGcHPCWdnSfde2CdQZCpmScpHO3P09u1Nvuqh6u13Hd8sP0i1IyUAVhvyp88Q78ArvDHGO9sO7IU9pwA4tWcs89JrQ0r8L7z9+/mXNIrvLdR+j21cCz9w3kC/VdC/5aHfAtIOEAEeYxgM4wAlnV0xDL123Vv2LMwDKo0BCGD4U723ue+8LZNQU1Nd1DFCLFcFE5qn3H9Cgr8hODDf8dTT2MED/EtWZC8tlgPG917S4v7BJZ2rjdSZ+TXaIQ//GuQbFUtjAfC8HgIwWlk1tx4GT8KRNfdBuI867T45+pr7/SEt/gZ//6X3qEv4prB9+wQXD2JvAMGlZ6OGGAzJRXOiLwm5pz7i2VA02G0IPzgEJFBepdOjB4hxL8YV4GNvAM7O4wB/pBnDB56n3Ptup355sgV+2DXXFMOPTqtandl9oCNOGJNVOwj/61lgeHsNhENvUxfufpZ6591+AEfeAZGUovokdXvBgR3jDdbaey/dnHPTjdPNCUieHOQbKhSboiWYZvOWJHTFQq8TCIV/yBc5j9wNUtIe6R7+y4GaplvOjmbUyhbcJvB2dLsupb8q3lQzURQaHa0NQgHyp/BdQbruB7eNP7cxAwAAqEz1EPyegysqd68pWVukggjuGL1QWxm9RLHSr9YLwZHiNrsNVdWeOZkWQez/rKmKudeHuQmZea4UobFE4BOxucu5fmVFGNuf/b9V363UT2/OSKJs8iA2BnCh34Oy+Iji2d7/VqEeGyOdfoh0qmM5FnVq8eqU4HjjjeB4VCuFtsVswUErzT117L86X6sae+tA5b23G5bnZ6UmR4xSe4TGOKs9Od2l3v6qewV4O9RiixfY2otiZYUTDZrScKTntwW7gqKbDw+e+DpRUDsw3lcSqBhKbBwZH6m3Q0hxlENYJIYDADEl+knK6jIjAJgf8vGdqFe7H8nquuasmcm515w0M4bYeY05sz6/vX8suXjncHnoNcfMZXvOjOfu3dIXec0Zs2uwLtMgDBaK/f8/E+auW/odwSIZl45PHdKzg6mjWGo7l83h8OQYylaMWnP+Sb3m2hGGX4JDGdSZf7kJlPT+FvYyAfqpPYHvhF0iaYhGNNQLXxKRiIaayU32RchdbMSxxZfQ43gvAHAUrjgZYc2rarWUb641wvsgsa/+2Pujd/94OA9OPw6mnhIiPHfDnqMDBXpu2tZ35+BfwmZnw9zmV6kfb88tv/MSzdNv4Qf2fYhnCOLJcEC4tnijnBmHrSdAYEbKz8eg3zrK8Al7hDc7I5w/8OvPWA9/ZoZ3cZSR23/he5+diEbkZRpCIU2FueddpifHMOX2SZi/FwT4CwNiXzPeCGvv/C7K+MNxGLGXqqN+p353s4d5W2f587bY+tiHMc2J0K0ojRgfeQV7kbd1K/fiMLZpfsKDh3yk7ze9uRIADwfvhcFk5sJ/ANxGVR2Cm44BFuDuhMYTVD149jb3upupr6kfn3XfNKiBLXBMMDsjoBLB63TmdD/r7tQODqjBh5ReO4h4MbOHzYhXGGNbcEVN8RrmljHy0OdU1BqYtAGQKu1PtwDI2UwN/uwOGNKCQ1g6Uhvf/V7nSqgg6RSlmP+cqqBBGNC+znZ6/MYOvNMNNElCWcmFhV/nnhnYosXrNfPfj8PpuycbLs2uxUcOqb4XgU3jl66b0wO2nGqn6Xy3oMe4xA+0PnhMIyck+QTqINl8oWBxAPCdNLUtq2DOBah3gQFKsgtL1K7WNCn70+W9KWE6Mtwa/vsuTGINDxCG+JEZw02sq+acPAtQSj+D4Z4xJ/rs7IIeLiCeIrQGrhwpw+ZBFq43Ju2Qg3i5dhdktaVKpamtLnVJYY4EiyZWI2akLiyld/nF8abhDNIvRBiwkuH3CLTgH7MvsfzQCzlA6AqAQqOEqUAItqRNp1FfUB8nrE5gX5pPBPA5dzqga5V/UGPsQwuMjGxkefahi6UvvPyyx0++ZCfBrzkRLB9P92sHHHgkfsP6lYq3gDmPncRJruqy3E915dNYmY/wZwJfzzKzMui5LdvyHyNPzOJVptUThmq+kM4G8TYrai+r/YvXbN06ZVKkVtvMjcszhDZRw/qdRXVHhzLAtDAhxSnhxZsUln29Kw82RALNUJ8+JwKoypYXJClBb2pLblxEoGZZeyKfGxYRMCnQK4XKmpvWuqdqgvgBbA5p0PhactJWXh/dW+uDa8nq+6p9+AqzC8kdvvAl/hxRh+pvHROBapK7aAmvIdSepGm3eZqqe3eB8TjzjS01d28qqTz62daCvevK/YEkqKk4vqPEgmHxFSttqdXh7OuNa/WoLldaHRvf2rfhq/u7uSKJ/7TMbOw7tXnNzV2miCBGx5UL3+BCfJKZdmtoLh6c1mi820dXeu5YWAXqjp0dN7bXFQh2ZkqXK5La8mMgltgykR5dUZjCNyib1kxmTry02QV5Oy4cq2IDIpAfSH15Cz/I3LKrceqRIZt/aFjQKqlJzi3f8yaT4yoWLuBuop7FVPVs2jqLEcBldGER0LbSoAmenTEWl5YLp+WCstLbNpW13PXFtKww+mPwTOJ1yu11jiJ/fmJJJ9+gN2ULnEOi1IzUOBmAWleDOH37B/tmPr+lju0LSNPaWNFFYwNPprUER4aFHOUQmDAIU1uD1CmNG6tW37U2a1G2r/ByfIql9nQci9oREhw5Ckwp5tUMSmrAZtNovEqrWH7go9ne470JOPRjuy2ASGxY71KXlRbKYhWdo1sypk9vz4FfYDBQqRAkqBw1TjUBpVPnb20CwNF3qCm1SYuxYdfOumifkLCQlRFxilAASna/DQL1DZW5ZFCIrXEyl7EdkhLbQTzEUjLVgdJq92RaISlYTLMCuYDpOqoffu01ZUpl52BycqvYR5eQpVAlagXAQL37D7drIBxT1uc0pU8ONOdog/w/xYKDAwL0lfkP3z9/TjSAWLAa3f/E38O3oMgqZ/WgnuLKHNau0TAXm5BEUWYRKIUet9UShIAvJIXCpZ7sqbM03gIAWzKhVWqRjQmiUWZOlkTFCnGByhRe0Vy141RD+4lUP5kxTd91WlK46cGOnnIfTqbLOFq89WSretmBC7tXPDZbBChbnoG3skebmyAXxle+Elu6MjVvoDgqML6z+pChUMYN+1tcmSs+NDjKFC8WOlKTScP+VSv2tRohjDaGSPj+b2RVdNzUYRGKzLykBAiBsXI4u3JupTMypx9zaTLqrBs3Cy1lKck9JUZ3c2qdQ8I3FiZos20ygOHiAsYWZch7i5EfqxcrNTWJcTzAQ5dnatT/LQ5FGHvsvglssIEgQ3tHk3bFpvwwsMP91CE/XVmercc04j43IMIp5KN8KmqL1qYIztry6jQlFw2AfjE42rivOyFc6fanTcOCdJ8Nb0X74jyW9D/npMAjCZPj6uVONCF15KkMadF8NCGlzu3bDGoy97ufZGcKoxzqqGxLhFjvkOuz48IvGcXwxf6SXnJeG0azYcGFr9zfwyDiJOITe415LMPFC1jWxeoPZMidRjSURSzTGZZbxkBZRnzz9sowm0mJ+0Yq5b7Rtkh/9jLEX6Nbwt+9MFTQF3ZpfO3jU5mEjx92B4ZjQFu2sd6TF9KRrmVI15LLuuZy/lA+YBxSgG6q5u4Gu+J9wejd0P4I9SUYHXZ/1v23ad9p99sD4fjfEobtovnp3eA63txcKPWd+wvB4KAYjG2fHgwb8Pb08AHEx+8KH0S18obdYNz8oPsOr5UuZok930ex4SPFJ1h5l78v8EzOSM9FsDgJWKzRhcKlb6DWnCuBBJ9PSz648TqQnSKrbu+NtzWXpvIVFa0rE1tmK7UH3Gc2CMyVaXHdBo7PnPv53aKE2jSeyWIWgOvcZwfC4PvVrS38XZFJsREQC1SmxEps0WIAHCOPjLp/EA0MiMB3zZMFEQAqIxQNOe6P0Fti8GPzeK4Yh/6h4SHU9/zM5fW1ZTLkXt41sbvxMZbm6jVdLfui1C6nuqVvwN44WSTb635md4ix3MWzJCSEzbg/GSDhB4x0iuQYJFPi4MlB97kwWoCLFcN5kQD4otGZW0xzhqzyhW/xR/DpP+zDCq69D1sJW479Zc2mN7bngPrDZwb2vbvZAc2F7UlkWGJLblGHU+Qv1iUWwqRdH+/Mg6B477ub5y4cLGm67Sx1N8ifuLup/JapZQBkjxytjl/T25yn92A/BfCvUF6UsuIRf+/Cr8CZRsu4mBUs5gHvFifvc6SD5IDEyv6sqps35Nce/3SjYXmE3xn3TnCLr8aSIo9tKbEAYF3eYVImxSr9AbUDf5vWyhjXbFQkbnrv8MQXd7cFcd45Ih4chGWhEXz/6I7bx6ZPdOhCxRH+1MyibL+hvBTJMnkrRuRjdnLRInZGTTgwo3R5JY9XNNz57XWSzEyncKNxi/vAq37B8QVtTkNPT2thLEzO6ogQlltKR5bpIKbI6YXqiU9ubSQCeYEGwUUtOTREAtfWYJ1SxDWUTj1C/U0jhl/LFEmrjrV33zaUwvLsN2Pb8fXemPSqS0h6RaCF674eKSclOL+2SaNIDIhoMkenmZUBC+7qRcflPRSVa41ks6mfeKisDPVx26QDiPa6hW+xb9F6Uxd7S1JoW2wt7U42E18CumLR0okFrRR943LxNL3ZGqozOVTtA7EFaMNvfaMdgKismtbOWNuKpmXhWy3hxTZmX0+VstyQPrPSVTzzcIexo61BCxIGufJwHmSXFCvtJkNYZE7tQH5CjStOFgKAXygZ8NuI1ACCIo1yTYolRih1lvUva9hSEeUvkJM0RiGZC9k9LC2SWWlF/oseFi6dj/l/rKmsH+1X2PXKoIDwcJHfdlBGPeobHqsR2uMNgXqypK3PmtfulGAvtXACuWH8YFtGvor6+TBVNbF/uZjjH+zTJYqWcrWlE1WIZ/HCF/hnyAbR3krSy8pbS9EcNVbrIuMHWkGuIViXbVdkOYyBE2CFfm2ILSNXbs9RVjXU61ZdtywCm7N2Foa6C/L7cpXBpCQQ3mEbKOTO+zb68YJ8jNZEVYKW7xi4o9eDFdjCj/hZvMnbjy7tH5XdHZDofiov9fZx8MZqasN57NGwXbvFVOA/vgW/hc3tls5neWn8m/ge0RAvpWFZ2ohqOZhyTR+gBnfrZc/+6wm9dnoKnN5C/ZP69ZFoze0Udipsbk7s/vfjd8I33fH33wOV4rndEfMZsO/JJ91zHh4sFv4h4iFf0n+SpN2+NIUgd9JyOOgWOwpSqXu2wJT+nlrZHTOAOkG9Adqm3X/qM6ZjbeJjx90XBiTgenCInJsjD47bvubOzYmoXVSueGAgPLOcPWP7W8QiluKojnoab2LsIxTaacsowR8VRdAbvOjBHOey7xGmqCLyC3PFcdRgI+RPvq/Wn9oFzq3IWbnMphb6RFe0DudHm4R6X0B9xPYDgvT1HdgjJOLvfmD/flgumJvjPUddePvGpkT+qnvXuQg2hATxibd2xOM8trIzzauSyzSvdgsmz2oCX5RT3Wk3Yjt07p/6wcPOfdz5wvrdcG8j70VQ1uMW7Yi4h3rckyMXxFgO8V8sG3qBYpLZkeV6IYnpYvmEJ9mRdL6TX2lpgULtKNDoCpJUkck1SVFlJQUyQL0nFUuXm8wVkWQ4iAGynMKSqKT6dAVMEOpkJHGKExquFkFpfnMiGRgq8JXYwt2bNTaBSCXgR0sEdqV7RmKX+ApCA4RJnSW0fKB3IRtOMmc+WUDOlYNewKf+Qfz023Ik+wdI9j97ZGdz45nRIFPFW5mGeBHt6SAikcxXOmPUMEJMQkor44xlEeJI6j0gKygpi0I7+5FKR4FOU+BQK9Prk6JQvywDDrheaRdIovkClUhg08DxcBstYCCZ2JzvviBSh4dyThGkTCd0f1vSmSQMoFdll3j8ZQ4+gY/gCXR9z2OkwZcAB86g6lxgRkO/IzojIc5skyvT7IaQqoD0uv6U6DR7nCVRqUxF72B18qIMAynXyUlBpDJ4lbI4I4ZUaBWkQKoMZs7FUmXQxT6Gci35n7Udx8KTg7Gr9vVXHVxFbcTTBbrF/fSYZLTraxKfv/gvpmZY0OLR7OV0pcimd629R02v1VgSBH3WFMK2m7qsABRve2ZV4K0Bmvy0eO41O8z0N9f53RYQFNq84/EVKFe2hJx7H/oGhvj9Z5OZkE688CePHnULH7K7CBmr0nNejD49aVVaLd5uibOkW/KesPSWGHb6ntmpRk8CXaBOt2yoMDTwrrvkaQ2juysq9qdvImJymxI0SVo+kFBfBUQY5OrMvOXx2Z2Z8hCxNGitoThJBaGf3NE0W18w3lmelSjSjZWILbqwTInDGAGiBwt+eaCocN/sYLkpyv6vIGeaSddyx8TKB2KrZ3prDZhQROI+YkuWMkyvivD7a4CtuNkqL6uuyDJgGFeqlIZipkwI/EgNbcvHWTew2fhHyGfsaOl0e2aza+1oyfRK7SRddKKAJDlaT1/N0S49KEOrAUzIFErZKxtOG3scKWtM70++HyGTR7w+edq0KsXRYzw9CYrlCYXR+vwEmSwhXx9dmCAHb5v6U1P7Ta9PvimJVEjfmXrH2JucvMr4xsRpqUwqeX0C3KEvdiiVjmK9voi+FnnsIkX+MURw6QpPbbfK0f9a9MeLiBY6HhdBXyDnMNahG5neT6hxsDmQ2gbE1NNjMHXsrI2famox74PsHdRZEEuNATBDrf+7O3xI+5e9zwj2wWD+7AyP6puYaXy9Fe2TqSiwD761989oiAcRPuQs4gPHgxCCyyjhQYr5Hafnd3jm8UeoX/FbiH+wltG7UeorQ27C2wovGXRrvH0uwbgUUrsXPrg8VLOSzBldHFkBRJWFpeYUqU0NeYb0ntkdsz3pAk18pC0zpqhr7Ybk7HVt+eTaLn5Ljrw01+Ts3LRtU6czRBotTsiq2vNiT9FNk83CL/QFbWtGEgJD9XmtfUN2btgjryvQRJwXkxPvqMtPzyxoHivRVZcXhJvWFbuGGrKNYYF8cSD18SkyUmSvdiaUZyWn5jdPlMdUl+ZITGuLh440RQWHSQLBKnjYkJtis1giInMijMWZSXZ7pLyM0UU/uwx7hFhz7XNB8qv7Q5Y0IUYss6TLox0artSc4f42MiFaFEm/kawNjYzPYJdxFXEyeUIUyVeaJKpEHUoVJpkiEb1WmSRK9BpZ6BHWOc5KzhQrHPl2C7IAAsFFlePMUcKrTovYPVJ4Z1reCnFJ/YVzxz5/7mAf8vMjz30yMnzuuSNrnE50f26k+eFDk3Vmc93koYebWx46NFmL7qcOPdgxcN9aR+n2x7v0FYVO/tHkkHiTMcdIxhZ1JIgcjgShmixs6DyXvOrgMx+PjJx75uCqZEffwWc+GR06+8zhNc7rzfXTRx9ta3vs6HS9mb5/rK3tUfr+Qs7E/d0rn7l+OQTsAEEI9euOgAAQUzqcVzpZZWAHhAZ1RZhVAkbvU/AT7HMigWVlZVzWO371sBO/MuxkJmc0BNA75EKwMbq+IM5c3jc8bJFYcvTq3FRzcGxoXtvaFFNdSYZJDCtCrY7kcIFKwsND413VGnWdBQBNS5XDBs9LnfWpybXpUSJfgdkR6esbLPBfHyQVhfgIozIa06nlDeygQF+Cp4oIkYmC9xAhfOiGQYrkWEu2J37+wVrPCcZrWQQ9lQeABIAD1J4LHgifyqHk4LMct2v+syv38CMwPUBNUDeOgd6frtx68OMR0IEPYwdYbOZfiKAC5hHshd/dCdgB95tgMwv/g780sVb9zx4DmD02oWcAyWQCtkVA51qt8g/blxp6kPN/dh7q4fLyl0QJ6cVxTz6HiZPb8o3pJrUuTvm9wqCUGdLiRCVUDagioxUSqy6stpEr5v7fPQk0KeCdohEAADY6ZWwpSyQC7Nn5Tt2AubChyhVM/SZcAX0JyI9K0VW7cLZHj9+we7AgwuI9a/0N1Lo/IiynGZulYQfhd0TSteNcy2hjyaHLPdljDTZbw1h2DtrOtDaM52jSTeESU7pam2EUh6OC+aCtbr3Ltb7eaqtfn+VaX2c7IInL1GkyLRESc6ZOm2mWIJ6nWIF4F3MWnbz2aXQ2khIqfI6dPXvM56zv3JdfzvmepfZjR+bbrjqXPvYKvb4b4Fv4BuJFlorZGUA4cO2j0Deo122/flU6we6qiq0rzw1fRtahHYA1R9tiG2+/sAn8a+U25/xmrI7nqu7q6THmFkUYHdJubVWu0VjSlVC77/rZgvRdemrx7Ou9sB37mXiSlYx4SjE6ldno09DMjQ11rl4R7Dbvdq53rvCOKC0jTTyz2wcEqDLjP4Q3HBAREAKF2S6U5RcXylNENStHEzturI1uGkiqTNGSPsnrHl3feTwBC/cJ8mMDdnO+yGHV+8btVNY7g1WhYqXQN4BUCHrJWI0IYobcal35tBGTmZLsxsCsiZakSAELABM7CYvjSJgsCOjTd8AE4t6S96ybtLE3g/33xzeWOHm0Lqnr2FGox9T+Dz0mXV5oufJfe0BZbJgp3yJPt0X5oR4zZijYjnpMW272rSVOK/UdtiO+pzjUnZLfmRoeyBP6wnv/0GFa8nKDqH30/jKqFQ4SapaU2ce74oc4afGchsFQ/IOdZzpOjGUlb/rzbrK8e6C3PuKlp09Rq+ATVMFwFLhoXX1ibftd67IwjM3GwPXGS3lRw+yei/toez0Jj8NYjGLxrjFFbb/qcCk8LohK0kTlWFDh6znu6LF5g/ufMA+hmw7JSPAXxxAcwjsStS0Ov5V0TgKtOJZRYyM1WY2JhrwkfUiAUin10SdazQSXGwh8A7m+hKg4EtclpoWbC6wSDOK+/vgUxsahzKjSAQDDMl2pAobvC/AMdo54it5X5f3x3wycAb7i1Iz0iAh5bVt7hTMgC/wy/yOWroRpuJ9/AHsjR6LSaWR+wfOPKQY9GN0LzyNaSSzSe+52ccTCCWJ7o91z2ApCQdOR/hQIdBlVrV1x3besTgRAl1XT3qPWZxpIUWyqRpFujpSYUuF5e98tPcVjjVl6PgApg7e0F401ZEbzR8PSB+oK15cbQHjW2tqikdIoxP87lCMCruQIOxAArdxzZX9LKXLgU25Xzvxn4DylyIZPu7NgHxgYo/b+TE0NgGnvLQsDOHW37x2cRoRpYXR9CUigBX/UDbAw/a5dYCeVXCVPriXyHpr/+wPuc1fpzIV09m/iofZxSlYEOn0+/gZ8+6M/BSycRsevM0689prKBL2b3a82KT4VfSH8f61dBVwby9af2Y3glgAJRCAkWLCQEMXdvRTqQt176fX6da1ypUL7PX+v7bPKc3/X3d29cl3aJttvd3Yz2UKWbOi7WuQ38z9nzhyZOf/J6wxDbyPgML0rH0KYqoJjqpQLuqfJ4EneSe9bsGLRzFqjRLZkQMB7VXlvlg/Zvr/JKZkXFLPvz/FFnob2bvrAazLnRgIvo1skRzXo4eQIz8cJ6f7MRN8nJUP5vhsWHXLKRteMXx9OVvdUnSI8PGEJAQEWUkPk76S/BApQF8RTVEqRCqxc1cgk+il29o5QYocvjauiqY1MC/ZgU0JsfGZ+3F/8Lds3b+iXF4zr2H5xR79RKmkb38DufVNVaM4vLNFoh+bP1Gf0D6KO7eI8umP7unnNFqZjOwl3bD94YBfq8WX7hum8SA5SmZ4DKJXTVTqc2D9M6OFgj2715o0F1C6BVmL5lrP9pIquV84fFmoqDswXCdQMPw+aGJJKsPnuh8NHdJ0Dg901Sl+6wIyy3WePJpv0aYoY4kJZ6DllIAWkMXNaaeqcNMikcBRGvQgjFlHfUKepWKFJt/u8Vbt2XSgWmDAwnx4UM7fFkM3DeRwOtBmCzb8isaF/0JjlLM7NyUl1DmS0JNX1Dphs7VVug6qkKC+B6hEC9Y/cJqsuQa1VJxTqpufWlaQbzcbYlPT485eE9CLBOJl8zgE8E21YOu7rIJBJr85Fl3M2rpyz1vje1DvN/nJOobfV+T4Uwjw/CdV5+aiuMzKEm6RMC13o5acmM4WeOzflgjI4+oCOdaAE2NC5JXv97G+JuwzmZalpigJ1w79lrzG3LvJ4FreZ6+3wST44aXqxQak0FKdrirMULV+xXfKF+sX1jhlVhqzqIXvDYv2FF/ygZIqkzIL0tEKDQpFZmG6v90qwitm+fPk6WSLQcifMqPdZwfU+KxyMM8cw6Y0n2UbYyUuZ97soySFoN2zbZqTO//Gz5beVeDceavKNDR7xXSDf/10W9e6GDOmN1L/hwSTfV3K63XpHtO//1P/Jph4aMZ0+bdxAmIi+n/lkAIIW31lplUwPhkL1uyOSxeR5ShFBtNSsH/sL1w6f9JNqRUF5oB1+e2fFrBqmHT6zY/jmQYIgguU0dgvKaWRRsfIx369ni+qXV+m0UrUjdZL8J9nudqXGXP8QjGB0jvrYkU/Tc91CUijQz054kU87Agd9aqHWdlkV8mpHz55/V7DJHfDnjQSZ2LMJzbsaLjxKu7chxr39THBmvn8TN7cM6LCHE5ocroSRLzFu7mvazT0gODn2c8ITk3hexodUhfYgQpDI53Qu/qlQje8Nxo1kBE6FqLWCQMX4EWEhiEtepqce2YuCZy+4tx7+xm8jFG6z59kEv+GeYPrzyVI8lglVT/yxDPS6F2zdvl5HvY7HoldZb8tWkRfKLh8rgx5LjtY0CQAFu6Ykb7AMvIxnbHgw/6rxhwLkpdP0fzzcOllDrxN/GuKWgIs3JemsaG3y+S5+Fp5dzFLwkSHbbeI4MBnAxnUvWcXxYJgT2vn7TpwQzYaBUdR3I0bCcgL+IIIUQ5EnGHyIz9GO4rlDOJpPaOZPSEILfjxUSJ/2owPwz8Q1a44ScC/T8H8dpDv+J4nnfi6AT7IVcwFSqc99b1BfIj4AyfIBkA2mAyvO6UTwAggnTvL+EQ5FAGd+Xl14XIEA1kigBWXYa4rB+ls6QdR2sQliSzhoeV7V+7up4pWBNFCKPa0YwPDXvOTSExZgdk97j4QHlm8LqKeyTdB6ReG/KZQlbw5LKCEL994YnpgSLCPj2zygL7R3EyOuJDlUYkspwpI3tGv07gx3gSE4BWskt0q1IBpxiB3cSTo8BedTY6OwF/aOUmNw/l7qGHUMvgH7YO9+6kG4eD/99dF9cDH1IGsjFun7sv1ADwqZKsBURDpYBaFbQh3JKom9IcR3WURqaoDBkwPfW/DAMjvJKsSzympf5Rq8a24JwWrFtqCwcyVRmNVbzKgjOb+6YG5GUy6jJPp23ZBhvvfPb29kRYcJ8ftyDhXeffKVa1n5o2Mey5FFqdIYsRv23L25pCNRwSij7vbtG0oAAQw010KDfJ3Z7+lIHueCCMa5IIb9bu48AceI5cdqVt7dwXAv4DFCirkX2KldPBYgYYw9si4vOAWDhyUSFGJPFhLLm7w6d8ckcPheqzY0ID4eGcjHniokIPg6z01tmwwQ55XKRYAhMRZmj7aF3qEhYUpqhLanwZ8wDk0CXsxuzBS17IBgekKlW9G6G/C6C/FLiKsCiT917F0qNwjX5LK0PxfeT9YJ8U4I4KLnzpMlAg0oDLAhkwO0AeamM1nKp9uhftPOY/8mDvzVeaP7hkd3dA4deHlz7UI9lPgs8HHjTHPdyABzS9VhrUnn6Kgpv5XHFi8+uOaGv26phpAkfmUagU9LybyBm2e1rWrOJIgIptZ0XPpMukKWAboQElRtIhAS9uobtwTz78oluDBPzHTsL+5ff8uedufG5Q1Ge7XdmFvdN72vOte97ifLtR0d9cokuuXNZKJ7rU2VnT2dlSaDzWMzKHIrzbXzKnVUyzX5xENbHtu3ujEjvXZ1b/lgo9tTa85zF2bnlNTOqBy4c76NlMdE/jlGq0pU5NWW5DvzM2hj6S8vam9s6Bhy5rc6Mkqv+ssd3iFAshwSuRbIgRu0+jknMHwuCfEPP0vF1zV1WkmA4HLx4ykTTADAcmmwXOz9TvhywT/B0qfpK6FNdmraFciFr5O8lv+BXDSHSQZc6I07aIVMtRS+YA/BhHdh/DXU99TpV69AsA3weurWyk8+9dr+F3LdCvTcG3BIBn7TKCvbFAT9aVJD36DJ1lbhMqRbCrITmHRuOpvOqS2FuQmjVyD9f3ObbHpjgTFepY2bnttk15sKTMyfL/qmrg0Jpwu2z2QGWB6612QKdk1adS5z4CDCWjOhPYX6buqKCd3a4lVdib1IsN/COgp1Tz8Vn+Z0DbeZzW3DLteitoKCtkUujcWoVBotGm0J8/8SquIKVKTMa5pjt89tystvmltmn9OUt5keUZteYkqmIzOa4eIrV7qnPpS9J9lC+4kBsJhlCJYT2WVFJF8HdFcWpngF+F1MOGU1w9G85Iz7DEYehGR2Zb+VJ7xzycx2Tcs/Nqw4tJxlgxVLPXNubDJNm9adUZS1dONttTc/2qDrXbqphVGK9AaSSHW7HJXZ9fYsmW81raKO1HEkQyndAyepn1acyOhgG6ODWJ3VVNWMuWMr9szOj0xUx69GxDGip83gzlfRWoG3W1bObYiOV0Zbeta1UIdpJZGZSTOPz/QrCYIB3xnEBezCfZtCdECZLNTBMRG7/EdrXDAEYbDyr+uDnBnrI/LRPXhCHJRHxSli5+z46+rJ+IRl1RFqj4qccFQsJTK5o2JXuRuQLJ8PxfdC4MHxXTSvj/DSYX2F4Wk6rCeET/ELhHPvg+GS/TB2DcaOYrh47PA7WPqMAYXulPCx80L2B1PFjuJ0AXAz2FGcDgM8CePfg3HXUD9Qn1GfTAE+Dswfh40eAAmLn4tBHWBm6BgkXjRy7fgz8I/HnbNSp8IXWETIeTxsTRDASf/nMNo/SXj38BiGX6Ksl94elBFRC0d9fwkY/YVziFK4OtVrVK3neItn5Bp2LAWyZjIw1md+a30Jj4RN8KKTNxLiJn5P/+c7ZF+JAJCsdfEGi2SyO2Q9p6X+4bBJXPTwRyMvvUiPoOLWujT0SvOmIYZxFuFmlhJnEdX+6tSOZw+5Phf1lwlJgG6aJ/5zusfHApp5nC96DeQ5DpopkpKCYpcjFZEtAo7ZhLu7s7n7v+5Z9z+0rHCgs0YVW9o4YPnZ4rH116VNG2tLq0jT61eka1SetFkPrq6ov/vl3dc+fG8XzMlrGXY75zflQrk8r262p3m4QgO/u+vp2+uS9GZV7fVrFubv7t3ZpN2uqDCnOlQazUyVOrk0tfF3L/9w1+i3x2gb67jrP9v7R9fUeEZ+uUZRoTdMay21L94LCJZbiPLcRgCgQJYLQ7EO4XSBpLbSbUgrKcxNpF6YnJconLlKxDMWASBZziLaH+nAgnfIpNxFUo5jikwUjZEXRk6KJjRibBqMDe24ybEREMeMGHHY8B71gbCxof2bBkpwfJgcHIzDu/oz6i1R8PCe95Hi0WF8yE6toGWyemwywOfQSbqtrdJp0FjMrJUOBEqvxLdFySBoq94nwpFJwsnE+jkP6Ant6ULY8Q2BOMZ3fqWBOHZUnIChQ9fH4djWCfB3yQ7pEdRLbJ4oJdNJDMc9nkn8JKO8iJ6qIaugOk9pcDb7TpOve02wJcvV6P+WKYOmVkt6UB9og1WjNrsNBTQB6tRD1B3o6wI3fgaTyX+ckpNSDUgHuaCMPWunlVmK6DhJ6HFpdMqek40P2a1+9cJ9gzd2ZUGkuipP2QLbgZ9ApL56p2cR3GIsZhQXlWJQT8suYHQZodSnRmes3X1sDlJS5E+0h13UmccYPUX9SSt5IIFA+rEsWzzL1KVAWrMuntOXycRRlj+K/Fcp9l4ieKTE1/i4ayQ0pTTgwKh4seRSjE3DYMPeSwQ2eBb7sOtFYMMOjBoKFxvyX5bAKZQIcOdhAp3WomOn46HBYfdFzRKNjeSwsfu8N/QuFwObXByKzfNhaGlC73OqWjz3mGC5tcg+AtFNDMcWfo/PNPvFsm0DZnJ+TDTtlsZopKDkcdlMxNsP8tZPdg7H4KevDsY9+vOHnfCGUt6jP+b+3OinfNv2QqiJm8M8/GMjSdvAiuAP/8ikA9S36pGR9OXPr9h0+QNAJKs31j5ERQExOiXXhjxP+1asrkPbyflbxK8BRHXHYcnGcW96zPZn5uvH1RbMPXOEQ6YHBmDzvydIc4OCdDPJZNyVMvfoAv8pwbwOE3lOt7uFaoXW7FtvzaaehN+O3FN68emi+Vbu9vjHc0q29E94QFAWgdqXXoscpSwHZL7jqH0pNs5/Q7xeklXXzbscRrnKh/JPJNuAFdSA6ShXYd9UFihH8dGWiV+VBn9h4/DHte1n9nGVqMxnm1CJHny/LmfRyNY6JrTLruYqUpNnqMIk810j9CAHcfXqJdcSgoUosX65vdehpYP8h7xq1Pef4AEfgp1SB7mT8cXYE+8MHO5jF8r6DK1USTTItSK5TRbXMHPwOezy/1/DHnxqtJYspTLLIuIQk8Y3KG0l70K5pGAeOTh5ppggmAMC7nMzzvM+N0NSf/Ev6HMz0M9ejDjB+1kE+AGQD/4X/ew/ZCOxS/YCUNFfsPkJIr0j8rsc/rFhjksNYfPqW2q6MuvsBnW+XXecbEyZufqqoiW/umW2ussYU9E/v8TY6DKR1e8BCB4hu4lR2Zvok5b8r7SXcR8K8khmncOgNjt0xxvm0sMSTWtuqSbHsmIq+xawI1S9lzJzFTcyM5bvW2IUrgv6uSJneGNw0By6e99DyBb/dPOguisrxtk5ix0XELScDZLnZc8DNbBwkkp5kkrHi05eaJjrVhPQ4GzrH8rvyaxnJ/BF07OqGIXcWo0VQjakzFp9VWH9DctmNNkSu/jyvI9+wmqK/33WDh8hOyXvyV6n5SumMY3Xlmn8N8gkAzNjnkP3+0Ysu2+RH9vvG+Z6VJxS9zPLQk/WgJYFL5eqU+D7HB7fx5KH4AiLxzRe4xO+QWroNXBzU/YY6u2ZjDZ8z55AOiKaVjPf5VZmF7cynCY4m8kmqwS+j2xzP3yZeFUS5edmcR+GRGOAR+nLiFypxNq9lL6WaM2VSEu7l8KXizoXuzyL283m9sUez5KOAgAgwz0lzyFeEVCw/TJngrNMAWQ4SORp9ncdLPXoU8w3OhNgGSFsMdQvyGcRFwbxYEg9w2NhqSfo5xn0m9U3yvTo1Ia+c3HQfY4sfAeJj9XpvShTJiuVqfQfWN+M6oMUK/2INffSesafYn7+aOY1Rz/a1bllxVB24uYqx45ZvddPs8fCLylAQPgZZYgpm3XHgrxae1FKcjr94qmx2ah3VbXOvqb9jnd+tjLlEeJ42mD//Wv/cXe3SptMUkeO52aXzrtj8H6NS5ecrxydc2BtlTwhNUFpdXk0kDpFRivVqfE9e5/fCsBkn8fz//1anqQAAAEAAAABAMSR5yQUXw889SAJCAAAAAAAyli/2QAAAADNqY42/2j9gAqJB4AAAQAIAAIAAAAAAAB4AWNgZGBgb/jbwMDA9e9/5v9Mrk6gCCq4DgCiWAdJAHgBbZEDkCA9FAZ7J3mz/m0bZ9u2bdu2bdu2bdu2bVsvZ6WqK9bX/gWm817xflOesshe5qTMo7lEomfgAsr4UWjm3eWkGUwnpZW9Rnn5gqneJSaKz2zvPitNHH6RgtQy68hlD1HOpieOWDLa/NSTH6hnd9Dc3qeafEW55+sDWSkxGer2a73Rfk7RoPHM8b/AynAKylgy+WkoLqUoLT6F/Z/I4O8iu4lIZu/O04GymXT2HiUDz5Ha70t+PxIZJT5pn9drde4J3aQo//mJ+Fv/EhI0kFDZy1fSnXApRGpzifPuzVrvla7Mlg5PL5lanLJjySdf8aNNS16JQ247hdymJan0T0WkHTm9bRT2Bj89LRFI7m0le1AWKsggJYQ8koDc8qmun6n/j0kD05zk8gdZ7EGMfx1jDyiTsbaonpdS/3IyoKL9nT0SSk+XvfE0+15UlCP8JwuZJyv4xa2RJAy2/1A96Hdm23g0C3zIJYnIbNc3pzlrIpBMvmGWPUJnW4tJpk5ANDlIZ9lPN+8cC7x2FLY5Wa5/qqx7z4c0CbDPOcIjzb20y/xjBPZ47iK9c/A2JuLTR86D8pu2L/opNfdOZHfZv48kY+7zdhz+eBvpSIj+K75mGtdl/jECE2utHpyDt1EH8Z572Pb0rrJbDNleO3ifVMx2tfPwNs6D/MZfrnZnBVUiY1BC8th/6e4V52dzinwyhdnBFTTjAqxW1jlkIKtljNbttV+b4er0knLeHCbM/4nfxGf2M9ElwMYAAAAAKgAqACoAKgAqACoAUgBoAKIBCAF8AgoCGAJIAngCuALaAwADDgMuAzwDfAOgA9oELgRYBJQE4gUCBXQFxAYABkIGWAZsBoIG5AeSB7wIJghuCLQI4AkKCVgJhgmeCcoKCAomCmYKkArYCxwLggvYDDYMWAySDLQM7g0kDVINdg2iDbAN2g30DgIOGA50DrQO9A9CD5IPxhBYEJQQyBEOEUIRWhHEEgASQBKOEtgTBhNgE5oT2hP8FC4UahSwFNQVJBUyFYIVthW2Fd4WJhacFvIXNBdKF9AYChiMGOoZEhkiGbYZxBn+GiYaYBq4GswbCBs4G1oblhu8G/wcIBxqHM4dTB2uHeYeIB5YHqwfCh9eH54gGCBUIJIgziEwIVYhfCGiIfAiQCKYIu4jRiOeJBAkjiSwJQ4lVCWcJeImUCaOJtQnOiemKBIofikEKZYqKCq6KyoriCvmLEYsyizwLRYtPC2ILfIuWi6oLvYvRi+wMCQwZjC6MQgxVjGkMhgyajK0MywzRDOcNBw0MjRsNJw0qjS4NOA1BjUsNXY1vjYGNig2PjZUNmQ2yDbWeAFjYGRgYLjOUM/AzgAEQB4aAAAkBQFgeAGFj4NOhWEch5/s5oUhNx2fKbsh27ZtXELX0bV0VT37lrkX/x8/AFlMk0ZKeg4pFMMLTiVbFmDvXspfcDqV7L7gDEp5eMGZ6o8vuJB7nuhjjWPXFheiJU7ZDJR2DthllRHnMTv6+4xyxaFuh1qEesp/bZe/9U2RIEbc9X96POAnbMn31eNEiLmSv3bDr135qeuQeqKuE1YwLT8VRzgR7zr9GzaI6u6pfc1FnUv6a0REm54WbOqtseBcpYn9ly+sfeEDdNP7DGmwQN4AeAFswYOBwwAAAMBL8rb9tW0bm3eHjtMu0DshcJjbOWWPQBiEQSRy5tyFS1eu3bh1596DR0+evXj15t2HT1++/fj1519MXEJSSlpGVk5eQVFJWUVVTV1DU0tbR1dP38DQyNjE1MzcwtLK2sb22FI8ZIcBAGAQ/urr9BC1bdu2+2q73dSKbdt+Mdexk238Y8YSSy2z3AorrbLaGmuts94GG22y2RZbbbPdDjvtstsee+2zX6g/HnokzWftHnvthW+C/PVckwc+GDTklS+eytFmwHfBRgwb9VuYIgXCHXDQW4eUOKxQsQqlypTrcES1SlUiHNXvnTo1ah3TpcczJxx30mmnnPHTWeedc8FFl11yxVWdrrnhuptuuyXRL3fdcc993XolqxcpSoNWjaLFiJcgV6w4eZ5IlyF11lx9Cy6fOb5wIjNeNHfx5QtnxwGaeWYvuAH/hbAEjQA=") format("woff"), - url("../fonts/merriweather-e6d0ffb2d0348d9e22de97e57214b7db795e9513.ttf") format("truetype"); -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 300; - src: local("Open Sans Light"), - local("OpenSans-Light"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/opensans-23a898729b3a62cb5f7e5a8367d375a1784700ca.ttf") format("truetype"); -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - /* IE6-8 compat */ - src: url("../fonts/opensans-f0cc9c782f41b44a31392230103f5b4e101a944a.eot"); - src: local("Open Sans"), - local("OpenSans"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg#OpenSans") format("svg"), - url("../fonts/opensans-f0cc9c782f41b44a31392230103f5b4e101a944a.eot") format("embedded-opentype"), - url("../fonts/opensans-3e193feab52524db86cd1508693f2e5086102669.ttf") format("truetype"); -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 600; - src: local("Open Sans Semibold"), - local("OpenSans-Semibold"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/opensans-dd44beeac9a044f2c478b70838e447f0af077825.ttf") format("truetype"); -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 700; - src: local("Open Sans Bold"), - local("OpenSans-Bold"), - url("data:application/x-font-woff;base64,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") format("woff"), - url("../fonts/opensans-3954f1cc512d376e366c33802aecc5e80c1a1f33.ttf") format("truetype"); -} - diff --git a/assets/css/normalize.css b/assets/css/normalize.css deleted file mode 100644 index 562891a..0000000 --- a/assets/css/normalize.css +++ /dev/null @@ -1,406 +0,0 @@ -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ - -/* ========================================================================== - HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined in IE 8/9. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -/** - * Correct `inline-block` display not defined in IE 8/9. - */ - -audio, -canvas, -video { - display: inline-block; -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9. - * Hide the `template` element in IE, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* ========================================================================== - Base - ========================================================================== */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* ========================================================================== - Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background: transparent; -} - -/** - * Address `outline` inconsistency between Chrome and other browsers. - */ - -a:focus { - outline: thin dotted; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* ========================================================================== - Typography - ========================================================================== */ - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari 5, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9, Safari 5, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari 5 and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -/** - * Improve readability of pre-formatted text in all browsers. - */ - -pre { - white-space: pre-wrap; -} - -/** - * Set consistent quote types. - */ - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* ========================================================================== - Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9. - */ - -img { - border: 0; -} - -/** - * Correct overflow displayed oddly in IE 9. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* ========================================================================== - Figures - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari 5. - */ - -figure { - margin: 0; -} - -/* ========================================================================== - Forms - ========================================================================== */ - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. - */ - -button, -input, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -button, -input { - line-height: normal; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. - */ - -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ -} - -/* ========================================================================== - Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file diff --git a/assets/css/styles.css b/assets/css/styles.css deleted file mode 100644 index 7d0d63f..0000000 --- a/assets/css/styles.css +++ /dev/null @@ -1,260 +0,0 @@ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -/** more normalize **/ -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html, body { - height: 100%; } - -/* -Typography -================================== -*/ -body { - font-family: "Merriweather", "Georgia", "Times New Roman", serif; - font-weight: 400; - font-style: normal; - line-height: 1.9em; } - -header h1 { - font-family: "Merriweather", "Georgia", "Times New Roman", serif; - font-weight: normal; } - -h1, h2, h3, h4, h5, h6 { - font-family: "Open Sans", Arial, sans-serif; } - -h1 { - margin-top: 0.8em; - margin-bottom: 1em; - font-size: 24pt; - line-height: 1.3em; } - -h2, h3, h4, h5, h6 { - margin-top: 2.0em; - line-height: 1.2em; } - -h2:before, h3:before, h4:before, h5:before, h6:before { - content: ''; - display: block; - position: relative; - width: 0; - height: 4.6em; - margin-top: -4.6em; } - -/** Overall structure, desktop and mobile */ -header { - background-color: #153E56; - padding: 1.3em; - color: #ffffff; - position: fixed; - height: 80px; - width: 100%; } - header h1 { - margin: 0; - font-size: 26pt; } - header h1 a, - header h1 a:link, - header h1 a:visited { - color: #ffffff; - border-bottom: 0px; } - header h1 a:hover { - border-bottom: 1px solid #fff; } - -aside { - float: left; - display: block; - margin-right: 2.35765%; - width: 25.36421%; - margin-top: 80px; } - aside:last-child { - margin-right: 0; } - -article { - margin-left: 2.13245%; - float: left; - display: block; - margin-right: 2.35765%; - width: 65.88078%; - margin-bottom: 20px; - margin-top: 80px; } - article:last-child { - margin-right: 0; } - -@media screen and (max-width: 600px) { - header { - padding: 20px 10px; - height: 65px; } - header h1 { - font-size: 18pt; } - - aside { - float: left; - display: block; - margin-right: 2.35765%; - width: 100%; - margin-top: 65px; } - aside:last-child { - margin-right: 0; } - - article { - float: left; - display: block; - margin-right: 2.35765%; - width: 100%; - padding-left: 5px; - padding-right: 10px; - margin-top: 0px; } - article:last-child { - margin-right: 0; } } -@media screen and (max-width: 320px) { - header h1 { - font-size: 16pt; } } -/* todo: errrr */ -img { - width: 700px; } - -/* Lists */ -article ul { - padding-left: 1.1em; } - -article li { - margin-bottom: 1em; } - -li h3, -li h4 { - margin: 0; } - -li p { - margin-top: 0; } - -ul > li > ul { - margin-top: 10px; } - -/* Navigation */ -aside p { - padding-left: 15px; } -aside .sidebar-nav a { - display: block; - padding: 10px; - -webkit-transition: .4s; - transition: .4s; } -aside .sidebar-nav a, -aside .sidebar-nav a:link, -aside .sidebar-nav a:visited { - border-bottom: none; - color: #75787b; } -aside .sidebar-nav li:hover, -aside .sidebar-nav .sidebar-nav-active { - color: #75787b; - border-left: 5px solid #153E56; - background-color: transparent; - border-bottom: 1px solid #babbbd; - padding-left: 0; } -aside .sidebar-nav ul { - margin: 0; - padding: 0; } -aside .sidebar-nav li { - list-style: none; - border-bottom: 1px solid #babbbd; - font-size: 1.125em; - padding-left: 5px; } -aside .sidebar-nav li:last-child { - border-bottom: none; } - -p > code, li > code { - padding: 2px 4px; - background-color: #eaeaff; - border: 1px solid #d5d5d5; - font-size: 10pt; - font-family: monospace; } - -pre { - max-width: 100%; - font-size: 0.875em; - overflow-y: scroll; - background-color: #f1f2f2; - padding: 10px; } - -/* Links */ -/* for hover effects */ -a { - -webkit-transition: .2s; - -moz-transition: .2s; - transition: .2s; } - -a, -a:link, -a:visited { - color: #0072ce; - border-bottom: 1px dotted #0072ce; - text-decoration: none; } - -a:hover { - border-bottom: 1px solid #7eb8dd; - color: #7eb8dd; - text-decoration: none; } - -a:active { - border-bottom: 1px solid #0072ce; - color: #002d72; - text-decoration: none; } - -a:focus { - border-bottom: 1px solid #0072ce; - color: #0072ce; - outline: thin dotted; - text-decoration: none; } - -a.skip-link { - color: #0072ce; - border-bottom: none; - padding: .25em; } - -a.skip-link:hover, -a.skip-link:active, -a.skip-link:focus { - background-color: #0072ce; - color: #ffffff; - border-bottom: none; } - -/* Helpers */ -/* Hide from both screenreaders and browsers: h5bp.com/u */ -.hidden { - display: none !important; - visibility: hidden; } - -/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; } - -/* Extends the .visuallyhidden class to allow the element to be focusable - * when navigated to via the keyboard: h5bp.com/p */ -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } - -/* Hide visually and from screenreaders, but maintain layout */ -.invisible { - visibility: hidden; } - -/*# sourceMappingURL=styles.css.map */ diff --git a/assets/css/styles.css.map b/assets/css/styles.css.map deleted file mode 100644 index 346c2d0..0000000 --- a/assets/css/styles.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AACE,CAAE;ECQI,kBAAoB,EDPJ,UAAU;ECY1B,eAAiB,EDZD,UAAU;EC2B1B,UAAY,ED3BI,UAAU;;AEqBlC,sBAAsB;AAEtB;;OAEQ;EACJ,kBAAkB,EAAE,UAAU;EAC3B,eAAe,EAAE,UAAU;EACtB,UAAU,EAAE,UAAU;;AAGlC,UAAW;EACP,MAAM,EAAE,IAAI;;AAGhB;;;EAGE;AAEF,IAAK;EACD,WAAW,EA3BO,mDAAmD;EA4BrE,WAAW,EAAE,GAAG;EAChB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,KAAK;;AAGtB,SAAU;EACN,WAAW,EAlCO,mDAAmD;EAmCrE,WAAW,EAAE,MAAM;;AAGvB,sBAAuB;EACnB,WAAW,EAtCO,8BAA8B;;AAyCpD,EAAG;EACC,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,KAAK;;AAGtB,kBAAmB;EACf,UAAU,EAAE,KAAK;EACjB,WAAW,EAAE,KAAK;;AAGtB,qDAAsD;EACpD,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EAAE,QAAQ,EAAE,QAAQ;EAClC,KAAK,EAAE,CAAC;EAAE,MAAM,EAAE,KAAK;EACvB,UAAU,EAAE,MAAM;;AAGpB,4CAA4C;AAE5C,MAAO;EACH,gBAAgB,EA5EE,OAAO;EA6EzB,OAAO,EAAE,KAAK;EACd,KAAK,EA7Ea,OAAO;EA+EzB,QAAQ,EAAE,KAAK;EACf,MAAM,EAzEa,IAAI;EA0EvB,KAAK,EAAE,IAAI;EAEX,SAAG;IACC,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,IAAI;EAGnB;;qBAEa;IACX,KAAK,EA3FW,OAAO;IA4FvB,aAAa,EAAE,GAAG;EAGpB,iBAAW;IACT,aAAa,EAAE,cAAc;;AAInC,KAAM;ECzFF,KAAK,EAAE,IAAsB;EAG3B,OAAO,EAAE,KAAK;EAed,YAAoB,EAAE,QAA+B;EACrD,KAAK,EAAE,SAAuC;EDwElD,UAAU,EA/FW,IAAI;ECyBrB,gBAAa;IACX,YAAoB,EAAE,CAAC;;ADwE/B,OAAQ;EEnGN,WAA6B,EAAE,QAAsF;EDKnH,KAAK,EAAE,IAAsB;EAG3B,OAAO,EAAE,KAAK;EAed,YAAoB,EAAE,QAA+B;EACrD,KAAK,EAAE,SAAuC;ED8ElD,aAAa,EAAE,IAAI;EACnB,UAAU,EAtGW,IAAI;ECyBrB,kBAAa;IACX,YAAoB,EAAE,CAAC;;AD+E/B,oCAAqC;EAEjC,MAAO;IACL,OAAO,EAAE,SAAS;IAClB,MAAM,EA5GW,IAAI;IA6GrB,SAAG;MACD,SAAS,EAAE,IAAI;;EAInB,KAAM;IC/GN,KAAK,EAAE,IAAsB;IAG3B,OAAO,EAAE,KAAK;IAed,YAAoB,EAAE,QAA+B;IACrD,KAAK,EAAE,IAAuC;ID8F5C,UAAU,EApHK,IAAI;ICwBrB,gBAAa;MACX,YAAoB,EAAE,CAAC;;ED8F3B,OAAQ;ICpHR,KAAK,EAAE,IAAsB;IAG3B,OAAO,EAAE,KAAK;IAed,YAAoB,EAAE,QAA+B;IACrD,KAAK,EAAE,IAAuC;IDmG5C,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,GAAG;ICnGjB,kBAAa;MACX,YAAoB,EAAE,CAAC;ADuG/B,oCAAqC;EAE/B,SAAG;IACD,SAAS,EAAE,IAAI;AAKvB,iBAAiB;AACjB,GAAI;EAAC,KAAK,EAAE,KAAK;;AAGjB,WAAW;AAEX,UAAW;EACP,YAAY,EAAE,KAAK;;AAGvB,UAAW;EACP,aAAa,EAAE,GAAG;;AAGtB;KACM;EACF,MAAM,EAAE,CAAC;;AAGb,IAAK;EACD,UAAU,EAAE,CAAC;;AAGjB,YAAa;EACX,UAAU,EAAE,IAAI;;AAIlB,gBAAgB;AAId,OAAE;EACA,YAAY,EAAE,IAAI;AAGpB,oBAAe;EACb,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,IAAI;EACb,kBAAkB,EAAE,GAAG;EACvB,UAAU,EAAE,GAAG;AAEjB;;4BAEuB;EACrB,aAAa,EAAE,IAAI;EACnB,KAAK,EA7La,OAAO;AAgM3B;sCACiC;EAC/B,KAAK,EAlMa,OAAO;EAmMzB,WAAW,EAAE,iBAAiB;EAC9B,gBAAgB,EAAE,WAAW;EAC7B,aAAa,EAAE,iBAAsB;EACrC,YAAY,EAAE,CAAC;AAEjB,qBAAgB;EACd,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;AAEZ,qBAAgB;EACd,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,iBAAsB;EACrC,SAAS,EAAE,OAAO;EAClB,YAAY,EAAE,GAAG;AAEnB,gCAA2B;EACzB,aAAa,EAAE,IAAI;;AAOvB,mBAAoB;EAClB,OAAO,EAAE,OAAO;EAChB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,iBAAiB;EACzB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,SAAS;;AAGxB,GAAI;EACF,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,OAAO;EAClB,UAAU,EAAE,MAAM;EAClB,gBAAgB,EAAE,OAAO;EACzB,OAAO,EAAE,IAAI;;AAIf,WAAW;AAEX,uBAAuB;AACvB,CAAE;EACE,kBAAkB,EAAE,GAAG;EACpB,eAAe,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;;AAG3B;;SAEU;EACN,KAAK,EArPa,OAAO;EAsPzB,aAAa,EAAE,kBAAgB;EAC/B,eAAe,EAAE,IAAI;;AAGzB,OAAQ;EACJ,aAAa,EAAE,iBAAqB;EACpC,KAAK,EA1Pa,OAAO;EA2PzB,eAAe,EAAE,IAAI;;AAGzB,QAAS;EACL,aAAa,EAAE,iBAAe;EAC9B,KAAK,EAjQa,OAAO;EAkQzB,eAAe,EAAE,IAAI;;AAGzB,OAAQ;EACJ,aAAa,EAAE,iBAAe;EAC9B,KAAK,EAxQa,OAAO;EAyQzB,OAAO,EAAE,WAAW;EACpB,eAAe,EAAE,IAAI;;AAGzB,WAAY;EACR,KAAK,EA9Qa,OAAO;EA+QzB,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,KAAK;;AAGlB;;iBAEkB;EACd,gBAAgB,EAtRE,OAAO;EAuRzB,KAAK,EA1Ra,OAAO;EA2RzB,aAAa,EAAE,IAAI;;AAIvB,aAAa;AAEb,2DAA2D;AAC3D,OAAQ;EACJ,OAAO,EAAE,eAAe;EACxB,UAAU,EAAE,MAAM;;AAGtB,6EAA6E;AAC7E,eAAgB;EACZ,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;;AAGd;oDACoD;AACpD;+BACgC;EAC5B,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,IAAI;;AAGf,+DAA+D;AAC/D,UAAW;EACP,UAAU,EAAE,MAAM", -"sources": ["../_sass/neat/grid/_grid.scss","../_sass/bourbon/addons/_prefixer.scss","../_sass/styles.scss","../_sass/neat/grid/_span-columns.scss","../_sass/neat/grid/_shift.scss"], -"names": [], -"file": "styles.css" -} \ No newline at end of file diff --git a/assets/css/syntax.css b/assets/css/syntax.css deleted file mode 100644 index 2774b76..0000000 --- a/assets/css/syntax.css +++ /dev/null @@ -1,60 +0,0 @@ -.highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ diff --git a/assets/favicon.ico b/assets/favicon.ico deleted file mode 100644 index 4333e86b7d85098cdb9e6a48098289f161cb5f3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmd5=Z%kWN6u+q1;#_2jiHUv?{4$Mf7_-Fb=AWsX8zw57PMtcpPsW%S6OD<92^1pG zrnJx%MsapPFabN+V9FdYumMR-lgYn88*$J|2DK3AvdM-zj^}qvmpAqv?*Z?FFZuP} zchB$q&O7(@-Fw~>B1POLHf#{wri%~m5MrYcB0W8EUeDuB9($O_xXX;hI5$G@_&s+e zAkULOm0Q+{vd7YdD|3@5-IS>b*ueu|c^uh#_f|*t`R$Iqq=&~Hul_2SuXJa<)Tc{c zBk$N*vX6YH3E05{f3g3wNA{C7e1bk1_G$ul@YMXDD}R$5M?BJ>S@A~Q;@?2`8f|*85zz*Im{yd+%y$8uV>!;!?XEXsjcq;S1F01Mg zwf{3jr~mHJ1nl5({G0E;Z~yIkY7Td2)f^^0fG3!L)BRgG$;->5P$)!bm3FOhB?o=* zg2ABl_xXG`VkpNK`zX(uH#jSV6Q40JQ#%GoM#eL=l1_lObbaYf|zz@KA ze}6yvfyF+`bGGkwxm@$mh{a+QkH=+;bBx2Tyn})DNFKcKsID^!YvPxfZpm09$}`r>|1+NH)dE`3gtp!R zUPb1;qBQd%;oiJibIn_7JyhDDQTFIYsR?bpgRk|$lAZ5wE6$$UUd-#J33$T(N(`EE zPW9sRTtDf^j(I{2WV_%q1)k7J+UCffyk&h-yB3cBlye_hFPxwc2P;egw4iA;KK2rO zxPd+jRhj~5sqRl2`9D+oIu%Dw(#O9YGX>CsrqTSd7nY1Q(x<;4HwDmA-Cs5G-{F3P zTo=Em&qixZ0koiLG=J>n?ulmJ@4qnx&{C}rH1dD`=v#C&c9y=lSZ4~L1x=&*qZaW@ zwNg&hX9}RDTHk2ozq9gfIyTczd6NyM09w#Anm=kO@1>vU%jr|509vZ`nMVG*zJ8ag zF8j$EKWz%21x=&*qZX{0?IhdfA4~zXWPOQ!T<>7cp5yOP?bV;j{@0JD09w#Alt1sk zsAa#M`-RG`wwVHG$@&;|h~B|9!tUxr(e|11vhGH0y=t%)G-VB>7oTgS7po4w%=P+& zUd_G?`vf!%)nAJ1L!H{!*GHY5ow8n5n3n7&{osrKlH?_f@I`&T()bIt{i@=l#_#It zT2>y({NcOG{O5*-hN!!{n+ggFsHv&x{w1bMn)rQUJ;$8w?d>J_a(_!JeKT z3Iqb=cDt#%x;jUTn;hr(`-+N+;_$;YKqF~eZp&IFEiElHI5>#h$!4?7@fbdzs2;F! zyve${I+=TGYb!xRm26-zKR-XiZnys%4u|D)P+MC|g@uK4Jf6e%`WWNbS1?bw z@9=>yG?KiPw0!;L$Y*?fT+Tytb2B-ePGVj8-{P3E2h3z2Fj=F_g_ e-au+RcOF<9&Ye%O$|t= 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 kX-Qy_acYg(ib%7 diff --git a/assets/fonts/merriweather-69bd3f15962cf91348a133d3d38571a5c67eca65.ttf b/assets/fonts/merriweather-69bd3f15962cf91348a133d3d38571a5c67eca65.ttf deleted file mode 100644 index 5665aea4df82356aaf91323eea591642b9a10c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31304 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 diff --git a/assets/fonts/merriweather-956aa75249c84b5fcee1c10527af21a83eb780b5.svg b/assets/fonts/merriweather-956aa75249c84b5fcee1c10527af21a83eb780b5.svg deleted file mode 100644 index 6fa055a..0000000 --- a/assets/fonts/merriweather-956aa75249c84b5fcee1c10527af21a83eb780b5.svg +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/fonts/merriweather-d392237948e74246a2fb0d0d886498776a185e54.ttf b/assets/fonts/merriweather-d392237948e74246a2fb0d0d886498776a185e54.ttf deleted file mode 100644 index d89a2ffa7febf99f877cee8c37f9424c12ee09fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30972 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 diff --git a/assets/fonts/opensans-3954f1cc512d376e366c33802aecc5e80c1a1f33.ttf b/assets/fonts/opensans-3954f1cc512d376e366c33802aecc5e80c1a1f33.ttf deleted file mode 100644 index 1460061a18a1e36da88e9dd69764d174ff97b39f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24384 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 diff --git a/assets/fonts/opensans-3e193feab52524db86cd1508693f2e5086102669.ttf b/assets/fonts/opensans-3e193feab52524db86cd1508693f2e5086102669.ttf deleted file mode 100644 index c122ce468be9a36bd2e4970bbfd8efc7b6078ba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24140 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 diff --git a/assets/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg b/assets/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg deleted file mode 100644 index 052c59f..0000000 --- a/assets/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg +++ /dev/null @@ -1,1637 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/fonts/opensans-dd44beeac9a044f2c478b70838e447f0af077825.ttf b/assets/fonts/opensans-dd44beeac9a044f2c478b70838e447f0af077825.ttf deleted file mode 100644 index 47d538abeb4b562c2c2e42c7f7667fe58b21e12f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24324 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 Se7*!6!af5I0tLR+`hNh2KQ5jC diff --git a/assets/fonts/opensans-f0cc9c782f41b44a31392230103f5b4e101a944a.eot b/assets/fonts/opensans-f0cc9c782f41b44a31392230103f5b4e101a944a.eot deleted file mode 100644 index 1d98e6eab00e5a998373fa7a28468406072d6d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18233 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 VjUyFw_tG>yE$3x9SE1bvTd0);} -function _cleanDimensionValue(_paramValue){try{pattern=/^dimension([1-9]|[1-9][0-9]|1([0-9][0-9])|200)$/;if(pattern.test(_paramValue)) -return _paramValue;var _tmpValue='dimension'+_paramValue.match(/\d+$/g)[0];if(pattern.test(_tmpValue)) -return _tmpValue;return'';}catch(err){}} -function _updateConfig(){var _JSElement=document.getElementById('_fed_an_ua_tag').getAttribute('src');_JSElement=_JSElement.replace(/\?/g,'&');var _paramList=_JSElement.split('&');for(var i=1;i<_paramList.length;i++){_keyValuePair=_paramList[i].toLowerCase();_key=_keyValuePair.split('=')[0];_value=_keyValuePair.split('=')[1];switch(_key){case'pua':var _UAList=_value.split(',');for(var j=0;j<_UAList.length;j++) -if(_isValidUANum(_UAList[j])) -oCONFIG.GWT_UAID.push(_UAList[j].toUpperCase());break;case'agency':oCONFIG.AGENCY=_value.toUpperCase();break;case'subagency':oCONFIG.SUB_AGENCY=_value.toUpperCase();break;case'maincd':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.USE_MAIN_CUSTOM_DIMENSIONS=_value;break;case'fedagencydim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.MAIN_AGENCY_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'fedsubagencydim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.MAIN_SUBAGENCY_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'fedversiondim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.MAIN_CODEVERSION_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'parallelcd':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.USE_PARALLEL_CUSTOM_DIMENSIONS=_value;break;case'palagencydim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.PARALLEL_AGENCY_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'palsubagencydim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.PARALLEL_SUBAGENCY_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'palversiondim':_value=_cleanDimensionValue(_value);if(''!=_value) -oCONFIG.PARALLEL_CODEVERSION_CUSTOM_DIMENSION_SLOT=_value.toLowerCase();break;case'cto':oCONFIG.COOKIE_TIMEOUT=parseInt(_value)*2628000;break;case'sp':oCONFIG.SEARCH_PARAMS+='|'+_value.replace(/,/g,'|');break;case'exts':oCONFIG.EXTS+='|'+_value.replace(/,/g,'|');break;case'yt':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.YOUTUBE=_value;break;case'autotracker':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.AUTOTRACKER=_value;break;case'sdor':oCONFIG.SUBDOMAIN_BASED=_cleanBooleanParam(_value);break;case'dclink':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.DOUNBLECLICK_LINK=_value;break;case'enhlink':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.ENHANCED_LINK=_value;break;case'optout':_value=_cleanBooleanParam(_value);if('true'==_value||'false'==_value) -oCONFIG.OPTOUT_PAGE=_value;break;default:break;}}} -function _sendCustomDimensions(_slotNums,_val) -{if(_slotNums.length>0&&_val!=''&&_val!=undefined) -{if(tObjectCheck!=window['GoogleAnalyticsObject']) -{createTracker(false);} -for(var i=0;i0&&_val!=''&&_val!=undefined) -{if(tObjectCheck!=window['GoogleAnalyticsObject']) -{createTracker(false);} -for(var i=0;i0) -{_sendCustomDimensions(cdsArr,((_param1!=undefined)?_param1:''));}} -catch(err) -{}} -else if(_hitType.toLowerCase().indexOf('metric')!=-1) -{try -{var mtrcsTmpArr=_hitType.toLowerCase().split(',');var mtrcsArr=[];mtrcsPattern=/^metric([1-9]|[1-9][0-9]|1([0-9][0-9])|200)$/;for(var ixx=0;ixx0) -{_sendCustomMetrics(mtrcsArr,((_param1!=''||_param1!=undefined||!isNaN(_param1))?parseFloat(_param1):1));}} -catch(err) -{}}}} -function _URIHandler(pageName){var re=new RegExp('([?&])('+oCONFIG.SEARCH_PARAMS+')(=[^&]*)','i');if(re.test(pageName)){pageName=pageName.replace(re,'$1query$3');} -return pageName;} -var tObjectCheck;if(typeof window['GoogleAnalyticsObject']=='undefined') -{(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');tObjectCheck=window['GoogleAnalyticsObject'];} -else -{tObjectCheck=window['GoogleAnalyticsObject'];} -createTracker(true);function createTracker(sendPv) -{for(var dpv=0;dpv0){window[window['GoogleAnalyticsObject']](oCONFIG.PUA_NAME+dpv+'.set',oCONFIG.PARALLEL_AGENCY_CUSTOM_DIMENSION_SLOT,oCONFIG.AGENCY);window[window['GoogleAnalyticsObject']](oCONFIG.PUA_NAME+dpv+'.set',oCONFIG.PARALLEL_SUBAGENCY_CUSTOM_DIMENSION_SLOT,oCONFIG.SUB_AGENCY);window[window['GoogleAnalyticsObject']](oCONFIG.PUA_NAME+dpv+'.set',oCONFIG.PARALLEL_CODEVERSION_CUSTOM_DIMENSION_SLOT,oCONFIG.VERSION);} -if(document.title.search(/404|not found/i)!==-1) -{var vpv404='/vpv404/'+_adjPageUri;_adjPageUri=vpv404.replace(/\/\//g,'/')+'/'+document.referrer;} -if(sendPv) -{window[window['GoogleAnalyticsObject']](oCONFIG.PUA_NAME+dpv+'.send','pageview',_adjPageUri);}}} -function _initAutoTracker() -{var mainDomain=oCONFIG.COOKIE_DOMAIN;var extDoc=oCONFIG.EXTS.split("|");var arr=document.getElementsByTagName("a");for(i=0;i0&&precentage<=33&&_f33==false){_sendEvent('YouTube Video','33%',videoURL,0);}else if(precentage>0&&precentage<=66&&_f66==false){_sendEvent('YouTube Video','66%',videoURL,0);}else if(precentage>0&&precentage<=90&&_f90==false){_sendEvent('YouTube Video','90%',videoURL,0);}}}}} -function _initIdAssigner(){var _allDocLinks=document.getElementsByTagName('a');for(var sid=0;sid<_allDocLinks.length;sid++){var currentId=_allDocLinks[sid].getAttribute('id');if(currentId==null||currentId==''||currentId==undefined){_allDocLinks[sid].setAttribute('id','anch_'+sid);}}} -function _tagClicks(evObj,evCat,evAct,evLbl,evVal) -{if(evObj.addEventListener) -{evObj.addEventListener('mousedown',function(){_sendEvent(evCat,evAct,evLbl,evVal);});} -else if(evObj.attachEvent) -{evObj.attachEvent('onmousedown',function(){_sendEvent(evCat,evAct,evLbl,evVal);});}} -if(document.addEventListener) -{document.addEventListener('DOMContentLoaded',function(){if(tObjectCheck!=window["GoogleAnalyticsObject"]) -{createTracker(false);} -oCONFIG.ENHANCED_LINK.toString()=='true'?_initIdAssigner():'';oCONFIG.AUTOTRACKER.toString()=='true'?_initAutoTracker():'';oCONFIG.YOUTUBE.toString()=='true'?_initYouTubeTracker():'';});} -else if(document.attachEvent) -{document.attachEvent('onreadystatechange',function(){if(document.readyState==="complete") -{if(tObjectCheck!=window["GoogleAnalyticsObject"]) -{createTracker(false);} -oCONFIG.ENHANCED_LINK.toString()=='true'?_initIdAssigner():'';oCONFIG.AUTOTRACKER.toString()=='true'?_initAutoTracker():'';oCONFIG.YOUTUBE.toString()=='true'?_initYouTubeTracker():'';}});} diff --git a/assets/js/html5.js b/assets/js/html5.js deleted file mode 100644 index 448cebd..0000000 --- a/assets/js/html5.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); -a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; -c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| -"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); -if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d #mq-test-1 { width: 42px; }',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document); - -/*! Respond.js v1.3.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ -(function(a){"use strict";function x(){u(!0)}var b={};if(a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!b.mediaQueriesSupported){var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var b=m.shift();v(b.href,function(c){p(c,b.href,b.media),h[b.href]=!0,a.setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(b){var h="clientWidth",k=d[h],m="CSS1Compat"===c.compatMode&&k||c.body[h]||k,n={},o=l[l.length-1],p=(new Date).getTime();if(b&&q&&i>p-q)return a.clearTimeout(r),r=a.setTimeout(u,i),void 0;q=p;for(var v in e)if(e.hasOwnProperty(v)){var w=e[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?t||s():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?t||s():1)),w.hasquery&&(z&&A||!(z||m>=x)||!(A||y>=m))||(n[w.media]||(n[w.media]=[]),n[w.media].push(f[w.rules]))}for(var C in g)g.hasOwnProperty(C)&&g[C]&&g[C].parentNode===j&&j.removeChild(g[C]);for(var D in n)if(n.hasOwnProperty(D)){var E=c.createElement("style"),F=n[D].join("\n");E.type="text/css",E.media=D,j.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(c.createTextNode(F)),g.push(E)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)}})(this); diff --git a/assets/sass/main.scss b/assets/sass/main.scss new file mode 100644 index 0000000..caf3b03 --- /dev/null +++ b/assets/sass/main.scss @@ -0,0 +1,317 @@ +// USWDS SASS variable overrides go here, before we import USWDS itself. + +$font-path: '../vendor/uswds/fonts'; +$image-path: '../vendor/uswds/img'; + +@import 'uswds'; + +/*************************************** + Begin site customizations. +****************************************/ + +.usa-footer-return-to-top { + padding-left: 0; +} + +.site-header-navbar { + border-bottom: none; + + @include media($nav-width) { + height: 8rem; + width: 100%; + display: block; + } + + // Firefox fix so that navbar buttons to align right + @-moz-document url-prefix() { + @include media($nav-width) { + padding-top: 1px; + } + } +} + +.site-header { + + background-color: #153E56; + + @include media($nav-width) { + border-bottom: none; + } + + .site-logo { + margin-left: $site-margins-mobile; + + @include media($nav-width) { + margin-left: $site-margins; + } + } + + .usa-banner { + padding-bottom: 0; + } + + @media screen and (max-width: 480px) { + .usa-banner-header { + padding-top: 0; + padding-bottom: 0; + + p { + padding-top: 5px; + } + } + } + + @media screen and (min-width: 481px) { + .usa-banner-header { + p { + margin-top: 1px; + } + } + } + + .usa-banner-inner { + max-width: 100%; + padding-top: 3px; + padding-bottom: 3px; + } + + .usa-banner-content { + margin-left: 0; + } + + .usa-button-list { + float: right; + display: none; + margin-top: -5px; + + @include media($nav-width) { + line-height: 8rem; + margin-top: 0; + display: block; + padding-right: $site-margins; + } + + li { + display: inline; + font-family: $font-sans; + + &:last-child .usa-button { + margin-right: 0; + } + } + } +} + +.site-logo { + @include media($nav-width) { + margin-top: 0; + } + + a { + color: $color-white; + } + + em { + font-family: $font-serif; + font-size: 1.4rem; + line-height: 4rem; + + @media screen and (min-width: 951px) { + font-size: 2.6rem !important; + } + + @include media($nav-width) { + font-size: $h2-font-size; + line-height: 8rem; + } + } +} + +// Header -------------- // +.sticky { + position: -webkit-sticky; + position: sticky; + top: 0; + + &:before, + &:after { + content: ''; + display: table; + } +} + + +// Sidebar Nav --------- // + +.sidenav { + display: none; + clear: both; + + @include media($nav-width) { + display: block; + float: left; + height: 100vh; + margin-bottom: 525px; + margin-top: 0px; + padding-right: 1rem; + padding-left: 3rem; + overflow: auto; + top: 0rem; + width: $width-nav-sidebar; + } + + .lt-ie9 & { + width: 25%; + } + + .usa-navigation-submenu { + &[aria-hidden="false"] { + display: block; + } + } +} + +// Main Content --------- // + +.main-content { + font-family: $font-serif; + + position: absolute; + right: 0; + bottom: 0; + display: inline-block; // starting: not scrolled + position: relative; + width: 100%; + top: 3rem; // height of disclaimer + navbar on mobile + + padding-top: 0; + margin-top: 0; + + padding-right: 3rem; + padding-left: 3rem; + + font-size: 1.5rem; + + p, li { + line-height: 1.7; + } + + p, h1, h2, h3, h4, h5, h6, ul, ol { + max-width: 66ch !important; + } + + @include media($nav-width) { + width: calc(100% - #{$width-nav-sidebar}); + top: 0; + } + + .lt-ie9 & { + width: 75%; + } + + @media screen and (max-width: 481px) { + h1 {font-size: 3rem;} + h2 {font-size: 2.2rem;} + h3 {font-size: 1.7rem;} + } + + h1 { + display: inline-block; + margin-top: 0; + margin-bottom: 0.2em; + padding-bottom: 0px; + } + + h2 { + margin-top: 1.5em; + margin-bottom: 0.5em + } + + h2 { + color: $color-primary-darker; + } +} + +@mixin outline-inverse-button { + // TODO: Fix this with button mixin + .usa-button.usa-button-outline-inverse { + box-shadow: inset 0 0 0 2px $color-primary; + color: $color-primary; + + &:hover { + box-shadow: inset 0 0 0 2px $color-primary-darker; + color: $color-primary-darker; + } + } +} + +.sidenav-mobile { + clear: both; + + @include outline-inverse-button; + + @include media($nav-width) { + display: none; + } + + .usa-sidenav-sub_list { + &[aria-hidden=true] { + display: none; + } + } + + li > button { + @include button-unstyled; + font-weight: $font-normal; + padding: 1.4rem 1.5rem 1rem 1.8rem; + + &:hover { + background-color: $color-gray-lightest; + color: $color-primary; + } + + &[aria-expanded=false] { + background-image: url('#{$image-path}/plus-alt.png'); + background-image: url('#{$image-path}/plus-alt.svg'); + background-repeat: no-repeat; + background-position: right 0 center; + background-size: 1rem; + } + + &[aria-expanded=true] { + background-image: url('#{$image-path}/minus-alt.png'); + background-image: url('#{$image-path}/minus-alt.svg'); + background-repeat: no-repeat; + background-position: right 0 center; + background-size: 1rem; + } + } + + .usa-button-list { + margin-top: 4rem; + } +} + +pre { + max-width: 80%; + font-size: 0.875em; + overflow-y: scroll; + background-color: #f1f2f2; + padding: 10px; + + white-space: pre-wrap; + line-height: 14pt; +} + +p > code, li > code { + padding: 2px 4px; + background-color: #eaeaff; + border: 1px solid #d5d5d5; + font-size: 10pt; + font-family: monospace; +} + +a.usa-sidenav-edit { + color: #0072ce; + text-decoration: underline; +} diff --git a/deploy/fabfile.py b/deploy/fabfile.py deleted file mode 100644 index adea85a..0000000 --- a/deploy/fabfile.py +++ /dev/null @@ -1,44 +0,0 @@ -import time -from fabric.api import run, execute, env, cd - -""" -Manage auto-deploy webhooks remotely. - -Production hook: - - forever start -l $HOME/hookshot.log -a deploy/hookshot.js -p 4000 -b production -c "cd $HOME/production/current && git pull && bundle exec jekyll build >> $HOME/hookshot.log" - forever restart deploy/hookshot.js -p 4000 -b production -c "cd $HOME/production/current && git pull && bundle exec jekyll build >> $HOME/hookshot.log" - forever stop deploy/hookshot.js -p 4000 -b production -c "cd $HOME/production/current && git pull && bundle exec jekyll build >> $HOME/hookshot.log" -""" - -environment = "production" -branch = "master" -port = 4000 - -env.hosts = ["site@https"] -env.use_ssh_config = True - -home = "/home/site" -log = "%s/hookshot.log" % home -current = "%s/%s/current" % (home, environment) - -# principal command to run upon update -command = "cd %s && git pull && bundle exec jekyll build >> %s" % (current, log) - -def start(): - run( - "cd %s && forever start -l %s -a deploy/hookshot.js -p %i -b %s -c \"%s\"" - % (current, log, port, branch, command) - ) - -def stop(): - run( - "cd %s && forever stop deploy/hookshot.js -p %i -b %s -c \"%s\"" - % (current, port, branch, command) - ) - -def restart(): - run( - "cd %s && forever restart deploy/hookshot.js -p %i -b %s -c \"%s\"" - % (current, port, branch, command) - ) diff --git a/deploy/hookshot.js b/deploy/hookshot.js deleted file mode 100755 index 2542332..0000000 --- a/deploy/hookshot.js +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env node - -var hookshot = require("hookshot"); -var spawn = require("child_process").spawn; -var options = require('minimist')(process.argv.slice(2)); - -var branch = options.b || options.branch; -var command = options.c || options.command; -var port = options.p || options.port; - -if (!branch || !command || !port) { - console.error("--branch, --command, and --port are all required.") - process.exit(1); -} - -hookshot('refs/heads/' + branch, command).listen(port); - -console.log("Huzzah! Listening on port " + port + " for push events on " + branch + ".") diff --git a/deploy/site.conf b/deploy/site.conf deleted file mode 100644 index 028a60b..0000000 --- a/deploy/site.conf +++ /dev/null @@ -1,45 +0,0 @@ -server { - server_name https.cio.gov; - listen 443 ssl http2 default_server; - - ssl_certificate /etc/letsencrypt/live/pulse.cio.gov/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/pulse.cio.gov/privkey.pem; - - include ssl/ssl.rules; - include headers.rules; - - error_page 404 /404/index.html; - error_page 500 /500/index.html; - - location / { - root /home/site/production/current/_site; - default_type text/html; - } - - # production hook runs on port 4000 - location /deploy { - proxy_pass http://localhost:4000/; - proxy_http_version 1.1; - proxy_redirect off; - - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto https; - proxy_max_temp_file_size 0; - - proxy_connect_timeout 10; - proxy_send_timeout 30; - proxy_read_timeout 30; - } - - access_log /home/site/production/nginx_access.log main; - error_log /home/site/production/nginx_error.log; -} - -# redirect for those clients not preloaded with https.cio.gov -server { - listen 80; - server_name https.cio.gov; - return 301 https://https.cio.gov$request_uri; -} diff --git a/favicon.ico b/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..c8c9f1c097e1d289f1d6361b73ab3c78a5547654 GIT binary patch literal 67646 zcmeI5F>hQ&5XUc6d;)}obG|Zlk^)B%=L=BKIFwY7G)AH(;#q-15kd>dm6ZZW z%Gg0fpwK}}sI15CT~0b#ng6VA?%liR{arHL<%Zce`=9;Ku6Oo5k46{LpQah5*JO0* z^$Vjn(x*#Fnj}e;{!a3z^m=Xf#(zNo1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;29Lm-Z$FuAz4PQoUouJ8_M|W0@^wAmvVO?^ zjjx|H+t+_L2kZ{%ZWs zbO!hH_%7m?ZC^Hib&RC{MgH0Cm-%P+Z&f_E+KKuH|Lxf4aTUeaircEbkNQXaiNDOB z)3uSvZ$Vu>{j}r6 zpZM2}K;6BE|HQv;1nTZR{I5IyN5B5tJbe73Me4+0w*S}N{$!^4>TpYpFah9cwJYdh;j`{aM} zzZxG=9sGy?-WcdKKZ@K}G`55J)$N;;pIsk={_XAmnd<)?)~`$I)AKsI_1>j_UfY&W zi{Gm@7XLr%v$FSeR-238i#FK*t9$>C_!IxS5vaTO@SphCjX>SKhyTRCZUpM?{og+y zHUIqbu&q^29zCo2?8E)bTg`(j7h7A#N#{x5_RITsYv;3AeI~g7=I-xB_b(lL;!pf- z?q^J_^;y<`%>UjP81Vf6!+Y1- zqmTAX$$B+^tjB)&{Qt%K2jS-zgr0vOYV)0*%XoR+`n2WfoiE|CAp|K$Ir=`(mk_z(XT{~tA< z%CiAkzsdIA`tPTMud1&9Ke#$>JdD)-j*5M`&fcH*+VFhOdez45ojdL`p5^mpSMhw@ z(Eee*zta=@9!KI&{5=lA|K<7R)|Nc(XT7W+c)n?S_z(Z#zkWtZWPXMJdi^z9o3Z|r zib zzhL^i4Q&6S>%ZfBcjX>v{CvRO#C>~y@UEZhdn!lNUjHNhb?^TYf8ww5<81x3eEuc> z%jvOqCH#l~@V|E&_T~WmhyRNI-u~Qr&Ij1*5AXVq)A4M9AfoX;&1QGt|KqNe|`Sni@`j{t9P%B zKJ~<(_`A<1@38(#{wM#3#sKR-^K3xLyh8rh`M;z-ujc*|dljdsy=pt_^8NpQ{ok&i z-<;Ohy&Al-59&(J6o~T!-p_y0`)|9p_v-t3Y^pKf`PbXV?3yl2{OjKTCH}-ek{{#s z{n+zk$p5j40{+8)_#flYkgefA{8#+<>g#>q|L@iJy`TSnJoq}@|NoyOFV5{V0=(xx ztG%7MPK}>3oqfI|YCreUdcS?`^LBFM4_kJBckaJcwc)G_)`x@pyWZY1@hAT3{u+xn zi{F=VRPDpTf0L*1U+&+|#-2TX7RTwUK9m3T^WR^E+1c;lzghz@|NG;^=C5y?=M~%j z>{vbfZ}<=Y>t6rA_2G9{whnE%m~>rB^!m%&-`crzxV`&K$kW5^caH;dl59N@?e8XA zPXhjpc!2;2fB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p s2!H?xfB*=900;~Yfg#_!ya~P!F5ox}0w4ea14W=Y { + return gulp.src(`${USWDS_DIST}/@(js|fonts|img)/**/**`) + .pipe(gulp.dest('./assets/vendor/uswds')); +}); + +gulp.task('sass', () => { + return gulp.src('./assets/sass/**/*.scss') + .pipe(sourcemaps.init()) + .pipe(sass({ + includePaths: [ + path.join(USWDS_DIST_DIR, 'scss'), + ] + }).on('error', sass.logError)) + .pipe(sourcemaps.write()) + .pipe(gulp.dest('./assets/css')); +}); + +gulp.task('watch', ['default'], () => { + gulp.watch('./assets/sass/**/*.scss', ['sass']); +}); + +gulp.task('default', ['sass', 'copy-uswds-assets']); diff --git a/package.json b/package.json new file mode 100644 index 0000000..9e11c47 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "scripts": { + "build": "gulp", + "federalist": "npm run build" + }, + "dependencies": { + "gulp": "^3.9.1", + "gulp-sass": "^3.1.0", + "gulp-sourcemaps": "^2.6.0", + "gulp-util": "^3.0.8", + "uswds": "^1.3.0" + } +} diff --git a/pages/apis.md b/pages/apis.md index ee5c605..2c66da4 100644 --- a/pages/apis.md +++ b/pages/apis.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Migrating APIs to HTTPS permalink: /apis/ description: "An outline of the process for migrating a web API from HTTP to HTTPS." diff --git a/pages/certificates.md b/pages/certificates.md index de40e24..4efb246 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Certificates permalink: /certificates/ description: "FAQ on certificates and certificate authorities for agencies migrating to HTTPS." diff --git a/pages/everything.md b/pages/everything.md index 6324e99..d942b7a 100644 --- a/pages/everything.md +++ b/pages/everything.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Why HTTPS for Everything? permalink: /everything/ description: "Today, there is no such thing as non-sensitive web traffic. By simply always using HTTPS, both people and browsers can make safer assumptions about secure connections." diff --git a/pages/faq.md b/pages/faq.md index 3fc3240..50db5f7 100644 --- a/pages/faq.md +++ b/pages/faq.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Introduction to HTTPS permalink: /faq/ description: "An introduction to HTTPS, and frequently asked questions." diff --git a/pages/guide.md b/pages/guide.md index 2353aa6..7b278af 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Compliance Guide permalink: /guide/ description: "Guide for agencies on implementing the HTTPS transition." diff --git a/pages/hsts.md b/pages/hsts.md index a9c0ef7..f8ef8d1 100644 --- a/pages/hsts.md +++ b/pages/hsts.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: HTTP Strict Transport Security permalink: /hsts/ description: "An overview of HTTP Strict Transport Security (HSTS), a lightweight standard that prevents privacy leaks and downgrade attacks." diff --git a/pages/index.md b/pages/index.md index bb1eda4..91c6070 100644 --- a/pages/index.md +++ b/pages/index.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: The HTTPS-Only Standard permalink: / description: "The American people expect government websites to be secure and their interactions with those websites to be private. All browsing activity should be considered private and sensitive. This proposed initiative would require the use of HTTPS on all publicly accessible Federal websites and web services." diff --git a/pages/mixed-content.md b/pages/mixed-content.md index 3135861..2a3cfd4 100644 --- a/pages/mixed-content.md +++ b/pages/mixed-content.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Mixed Content permalink: /mixed-content/ description: "Strategies for dealing with mixed content when upgrading a website from HTTP to HTTPS." diff --git a/pages/resources.md b/pages/resources.md index 798a137..74e993b 100644 --- a/pages/resources.md +++ b/pages/resources.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Resources permalink: /resources/ description: "Articles, news, and tools about HTTPS." diff --git a/pages/sni.md b/pages/sni.md index 8303054..34cef6c 100644 --- a/pages/sni.md +++ b/pages/sni.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Server Name Indication permalink: /sni/ description: "An overview of Server Name Indication (SNI), a TLS extension to allow multiple secure hostnames to be served from a single IP address." diff --git a/pages/technical.md b/pages/technical.md index 61085d9..546424f 100644 --- a/pages/technical.md +++ b/pages/technical.md @@ -1,5 +1,6 @@ --- -layout: page +layout: base + title: Technical Guidelines permalink: /technical-guidelines/ description: "Technical guidelines relating to HTTPS strength and quality." From 89d42d197d00c8d539387fcb8414cd477ce5608b Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Sun, 19 Nov 2017 19:44:55 -0500 Subject: [PATCH 05/33] remove HPKP, given Chrome's deprecation of it (#239) --- pages/certificates.md | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index 4efb246..813d790 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -15,9 +15,6 @@ Frequently asked questions and answers about HTTPS certificates and certificate * [Are there federal restrictions on acceptable certificate authorities to use?](#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use%3f) * [Then how can I limit which CAs can issue certificates for a domain?](#then-how-can-i-limit-which-cas-can-issue-certificates-for-a-domain%3f) - * [Certificate Transparency](#certificate-transparency) - * [HTTP Public Key Pinning](#http-public-key-pinning) - ## What are certificates and certificate authorities? Websites use **certificates** to create an HTTPS connection. When signed by a trusted **certificate authority** (CA), certificates give confidence to browsers that they are visiting the "real" website. @@ -87,9 +84,7 @@ In practice, federal agencies use a wide variety of publicly trusted commercial There is no simple and 100% effective way to force all browsers to only trust certificates for your domain that have been issued from a certain CA. In general, the strength of HTTPS on today's internet depends on the overall standards, competence, and accountability of the entire CA system. -However, domain owners have some options to reduce the risk or impact of misissued or fraudulent certificates: - -### Certificate Transparency +However, domain owners can use **Certificate Transparency** to reduce the risk or impact of misissued or fraudulent certificates. **[Certificate Transparency](https://en.wikipedia.org/wiki/Certificate_Transparency)** (CT) allows domain owners to **detect missuance of certificates after the fact**. @@ -105,29 +100,3 @@ The strength of Certificate Transparency increases as more CAs publish more cert * [RFC 6962](https://tools.ietf.org/html/rfc6962), the experimental standard for CT * [Wikipedia entry](https://en.wikipedia.org/wiki/Certificate_Transparency) for CT -### HTTP Public Key Pinning - -**[HTTP Public Key Pinning](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning)** (HPKP) allows domain owners to **tell browsers which certain keys, certs or CAs are trusted for their domain**. - -Domain owners can use HPKP in one of two ways: - -* The `Public-Key-Pins` header contains a list of SHA-256 hashes of public key information corresponding to client, intermediate, or root certificates. [Supporting browsers](http://caniuse.com/#search=hpkp) **will hard-fail** on certificates whose validated chain does not contain at least one of the listed keys. The domain owner can list a URI that browsers can POST to with error information when a hard-fail occurs. - -* The `Public-Key-Pins-Report-Only` HTTP header contains the same information, but **will not fail or show users an error** if a pinning violation is detected. Browsers will report detected violations to a given URI. - -Using `Public-Key-Pins` is **powerful but potentially dangerous**, as mistakes can lead to a site being rendered entirely inaccessible for weeks or months. - -Using `Public-Key-Pins-Report-Only` is very safe, and can provide useful information to detect potential certificate misissuance or attacks on users. - -Like [HSTS](/hsts/), HPKP only takes effect once the browser has visited the site once and received the HPKP header over a secure connection. HPKP preloading is possible, but as of 2016 this requires special manual coordination with browsers to do. - -**Note:** As currently implemented in [Chrome](https://www.chromium.org/Home/chromium-security/security-faq#TOC-How-does-key-pinning-interact-with-local-proxies-and-filters-) and [Firefox](https://wiki.mozilla.org/SecurityEngineering/Public_Key_Pinning#How_to_use_pinning), pinning rules can be overridden by locally installed root certificates. This allows device owners -- and attackers who are able to install a local root -- to intercept or modify traffic even when a web service uses HPKP. - -#### HPKP Resources - -* [Guide to rolling out HPKP reporting](https://developers.google.com/web/updates/2015/09/HPKP-reporting-with-chrome-46?hl=en) by the Chrome team -* [RFC 7469](https://tools.ietf.org/html/rfc7469), the official standard -* [Discussion on GitHub](https://github.com/SSLMate/sslmate/issues/10) about HPKP strategy -* [Wikipedia entry](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning) for HPKP -* [Browser support](http://caniuse.com/#search=hpkp) for HPKP -* [Mozilla documentation](https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning) for HPKP From c50edf9d77ded0e5bda96c5ded048b8491b23305 Mon Sep 17 00:00:00 2001 From: Brian Andrzejewski Date: Sun, 19 Nov 2017 19:46:28 -0500 Subject: [PATCH 06/33] IIS 7.0+ example HSTS fix (#238) * HSTS fix for IIS * Fixed IIS statement --- pages/hsts.md | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/pages/hsts.md b/pages/hsts.md index f8ef8d1..e1550c5 100644 --- a/pages/hsts.md +++ b/pages/hsts.md @@ -127,14 +127,38 @@ On **Apache**, you would apply a `Header` directive to always set the HSTS heade Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" ``` -On **Microsoft systems running IIS** (Internet Information Services), there are no ".htaccess" files to implement custom headers. IIS applications use a central "web.config" file for configuration. For IIS 7.0 and up, the code is as follows: - -``` - - - - - +On **Microsoft systems running IIS** (Internet Information Services), there are no ".htaccess" files to implement custom headers. IIS applications use a central `web.config` file for configuration. + +For IIS 7.0 and up, the example `web.config` file configuration below will handle secure HTTP to HTTPS redirection with HSTS enabled for HTTPS: + +``` + + + + + + + + + + + + + + + + + + + + + + + + + ``` Generally, you want to set a custom HTTP header for `Strict-Transport-Security` with the value `max-age=31536000; includeSubDomains; preload` (or some variant). From 6f03a165798bb3f4e3c5e21be212eff0d337b902 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Thu, 28 Dec 2017 20:13:11 -0500 Subject: [PATCH 07/33] clarify that these mean HTTP or HTTPS requests (#240) --- pages/guide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/guide.md b/pages/guide.md index 7b278af..2d2e808 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -102,11 +102,11 @@ HSTS mitigates the security impact of connections over port 80, while allowing a ### What about network services that don't actually serve web content? -M-15-13 covers any publicly accessible network service that responds to HTTP requests. This includes network services that don't serve content, but only return HTTP headers, or blank or insubstantial content. +M-15-13 covers any publicly accessible network service that responds to HTTPS or HTTP requests. This includes network services that don't serve content, but only return HTTP headers, or blank or insubstantial content. -This also includes services that respond to HTTP requests on non-standard ports (ports other than 80 or 443), whether or not those services are included in external scans provided to agencies. +This also includes services that respond to HTTPS or HTTP requests on non-standard ports (ports other than 80 or 443), whether or not those services are included in external scans provided to agencies. -Network services which do not respond to HTTP requests are not included in the scope of M-15-13. +Network services which do not respond to HTTPS or HTTP requests are not included in the scope of M-15-13. ### What does "all Federal agency domains or subdomains" include? From 5b4b5cf8ae11e1897fbbdde7b8e0e51e06361863 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Thu, 28 Dec 2017 20:19:35 -0500 Subject: [PATCH 08/33] update dependencies (#241) --- Gemfile.lock | 96 +++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 58 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 971b0aa..111f80e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,68 +1,48 @@ GEM remote: https://rubygems.org/ specs: - blankslate (2.1.2.4) - celluloid (0.16.0) - timers (~> 4.0.0) - classifier-reborn (2.0.3) - fast-stemmer (~> 1.0) - coffee-script (2.3.0) - coffee-script-source - execjs - coffee-script-source (1.9.1) - colorator (0.1) - execjs (2.4.0) - fast-stemmer (1.0.2) - ffi (1.9.8) - hitimes (1.2.2) - jekyll (2.5.3) - classifier-reborn (~> 2.0) - colorator (~> 0.1) - jekyll-coffeescript (~> 1.0) - jekyll-gist (~> 1.0) - jekyll-paginate (~> 1.0) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + colorator (1.1.0) + ffi (1.9.18) + forwardable-extended (2.6.0) + jekyll (3.6.2) + addressable (~> 2.4) + colorator (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 2.6.1) + kramdown (~> 1.14) + liquid (~> 4.0) mercenary (~> 0.3.3) - pygments.rb (~> 0.6.0) - redcarpet (~> 3.1) + pathutil (~> 0.9) + rouge (>= 1.7, < 3) safe_yaml (~> 1.0) - toml (~> 0.1.0) - jekyll-coffeescript (1.0.1) - coffee-script (~> 2.2) - jekyll-gist (1.1.0) - jekyll-paginate (1.1.0) - jekyll-sass-converter (1.3.0) - sass (~> 3.2) - jekyll-watch (1.2.1) - listen (~> 2.7) - kramdown (1.6.0) - liquid (2.6.2) - listen (2.9.0) - celluloid (>= 0.15.2) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - mercenary (0.3.5) - parslet (1.5.0) - blankslate (~> 2.0) - posix-spawn (0.3.10) - pygments.rb (0.6.2) - posix-spawn (~> 0.3.6) - yajl-ruby (~> 1.2.0) - rb-fsevent (0.9.4) - rb-inotify (0.9.5) - ffi (>= 0.5.0) - redcarpet (3.1.2) - rouge (1.8.0) + jekyll-sass-converter (1.5.1) + sass (~> 3.4) + jekyll-watch (1.5.1) + listen (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + pathutil (0.16.1) + forwardable-extended (~> 2.6) + public_suffix (3.0.1) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + redcarpet (3.4.0) + rouge (2.2.1) + ruby_dep (1.5.0) safe_yaml (1.0.4) - sass (3.4.13) - timers (4.0.1) - hitimes - toml (0.1.2) - parslet (~> 1.5.0) - yajl-ruby (1.2.1) + sass (3.5.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) PLATFORMS ruby @@ -73,4 +53,4 @@ DEPENDENCIES rouge BUNDLED WITH - 1.14.6 + 1.15.4 From 28f2274592b54bc40be60bc4ae8ea7cf49985842 Mon Sep 17 00:00:00 2001 From: Cameron Dixon Date: Fri, 29 Dec 2017 22:01:00 -0500 Subject: [PATCH 09/33] Fix internal links with question marks (#242) * Fix links to /guide * fix the other pages with #3fs * i blame dnssec --- pages/certificates.md | 13 ++++++------- pages/faq.md | 20 ++++++++++---------- pages/guide.md | 24 ++++++++++++------------ pages/resources.md | 2 +- 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index 813d790..f0195d5 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -8,12 +8,12 @@ description: "FAQ on certificates and certificate authorities for agencies migra Frequently asked questions and answers about HTTPS certificates and certificate authorities. -* [What are certificates and certificate authorities?](#what-are-certificates-and-certificate-authorities%3f) -* [What kind of certificate should I get for my domain?](#what-kind-of-certificate-should-i-get-for-my-domain%3f) -* [What rules and oversight are certificate authorities subject to?](#what-rules-and-oversight-are-certificate-authorities-subject-to%3f) -* [Does the US government operate a publicly trusted certificate authority?](#does-the-us-government-operate-a-publicly-trusted-certificate-authority%3f) -* [Are there federal restrictions on acceptable certificate authorities to use?](#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use%3f) -* [Then how can I limit which CAs can issue certificates for a domain?](#then-how-can-i-limit-which-cas-can-issue-certificates-for-a-domain%3f) +* [What are certificates and certificate authorities?](#what-are-certificates-and-certificate-authorities) +* [What kind of certificate should I get for my domain?](#what-kind-of-certificate-should-i-get-for-my-domain) +* [What rules and oversight are certificate authorities subject to?](#what-rules-and-oversight-are-certificate-authorities-subject-to) +* [Does the US government operate a publicly trusted certificate authority?](#does-the-us-government-operate-a-publicly-trusted-certificate-authority) +* [Are there federal restrictions on acceptable certificate authorities to use?](#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use) +* [Then how can I limit which CAs can issue certificates for a domain?](#then-how-can-i-limit-which-cas-can-issue-certificates-for-a-domain) ## What are certificates and certificate authorities? @@ -99,4 +99,3 @@ The strength of Certificate Transparency increases as more CAs publish more cert * [Google CT FAQ](https://www.certificate-transparency.org/faq) * [RFC 6962](https://tools.ietf.org/html/rfc6962), the experimental standard for CT * [Wikipedia entry](https://en.wikipedia.org/wiki/Certificate_Transparency) for CT - diff --git a/pages/faq.md b/pages/faq.md index 50db5f7..49c2e71 100644 --- a/pages/faq.md +++ b/pages/faq.md @@ -10,16 +10,16 @@ Below are some frequently asked questions and answers about HTTPS. For an in-depth introduction (no technical background required), check out the DigitalGov University presentation, **["An Introduction to HTTPS"](https://www.youtube.com/watch?v=d2GmcPYWm5k)**, to learn what HTTPS is and how it protects web services and users. -* [What does HTTPS do?](#what-does-https-do%3f) -* [What information does HTTPS protect?](#what-information-does-https-protect%3f) -* [What information does HTTPS _not_ protect?](#what-information-does-https-not-protect%3f) -* [How does HTTPS relate to HTTP/2?](#how-does-https-relate-to-http/2%3f) -* [How does migrating to HTTPS affect search engine optimization (SEO)?](#how-does-migrating-to-https-affect-search-engine-optimization-(seo)%3f) -* [How can an HTTPS site keep sending referrer information to linked HTTP sites?](#how-can-an-https-site-keep-sending-referrer-information-to-linked-http-sites%3f) -* [How difficult is it to attack an HTTPS connection?](#how-difficult-is-it-to-attack-an-https-connection%3f) -* [Why are domain names unencrypted over HTTPS today?](#why-are-domain-names-unencrypted-over-https-today%3f) -* [Why isn't DNSSEC good enough?](#why-isn't-dnssec-good-enough%3f) -* [How does HTTPS protect against DNS spoofing?](#how-does-https-protect-against-dns-spoofing%3f) +* [What does HTTPS do?](#what-does-https-do) +* [What information does HTTPS protect?](#what-information-does-https-protect) +* [What information does HTTPS _not_ protect?](#what-information-does-https-not-protect) +* [How does HTTPS relate to HTTP/2?](#how-does-https-relate-to-http-2) +* [How does migrating to HTTPS affect search engine optimization (SEO)?](#how-does-migrating-to-https-affect-search-engine-optimization-seo) +* [How can an HTTPS site keep sending referrer information to linked HTTP sites?](#how-can-an-https-site-keep-sending-referrer-information-to-linked-http-sites) +* [How difficult is it to attack an HTTPS connection?](#how-difficult-is-it-to-attack-an-https-connection) +* [Why are domain names unencrypted over HTTPS today?](#why-are-domain-names-unencrypted-over-https-today) +* [Why isn't DNSSEC good enough?](#why-isnt-dnssec-good-enough) +* [How does HTTPS protect against DNS spoofing?](#how-does-https-protect-against-dns-spoofing) ### What does HTTPS do? diff --git a/pages/guide.md b/pages/guide.md index 2d2e808..29f48ed 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -15,17 +15,17 @@ This page provides implementation guidance for agencies by the White House Offic * [Compliance and best practice checklist](#compliance-and-best-practice-checklist) * [Options for HSTS compliance](#options-for-hsts-compliance) * [Compliance FAQ](#compliance-faq) - * [What protocols are covered by M-15-13?](#what-protocols-are-covered-by-m-15-13%3f) - * [Do I need to shut off port 80?](#do-i-need-to-shut-off-port-80%3f) - * [What about network services that don't actually serve web content?](#what-about-network-services-that-don't-actually-serve-web-content%3f) - * [What does "all Federal agency domains or subdomains" include?](#what-does-"all-federal-agency-domains-or-subdomains"-include%3f) - * [What about domains that are only used to redirect visitors to other websites?](#what-about-domains-that-are-only-used-to-redirect-visitors-to-other-websites%3f) - * [Do domains that redirect to other external domains need to redirect internally to HTTPS before redirecting externally?](#do-domains-that-redirect-to-other-external-domains-need-to-redirect-internally-to-https-before-redirecting-externally%3f) - * [What about domains that are technically public, but in practice are only used internally?](#what-about-domains-that-are-technically-public,-but-in-practice-are-only-used-internally%3f) - * [What happens to visitors using browsers that don’t support HSTS, like older versions of Internet Explorer?](#what-happens-to-visitors-using-browsers-that-don't-support-hsts,-like-older-versions-of-internet-explorer%3f) - * [This site redirects users to HTTPS -- why is Pulse saying it doesn't enforce HTTPS?](#this-site-redirects-users-to-https----why-is-pulse-saying-it-doesn't-enforce-https%3f) - * [Are federally operated certificate revocation services (CRL, OCSP) also required to move to HTTPS?](#are-federally-operated-certificate-revocation-services-(crl,-ocsp)-also-required-to-move-to-https%3f) - * [What if I'm using a federally issued certificate -- such as from the Federal PKI or Department of Defense -- for my web service?](#what-if-i'm-using-a-federally-issued-certificate----such-as-from-the-federal-pki-or-department-of-defense----for-my-web-service%3f) + * [What protocols are covered by M-15-13?](#what-protocols-are-covered-by-m-15-13) + * [Do I need to shut off port 80?](#do-i-need-to-shut-off-port-80) + * [What about network services that don't actually serve web content?](#what-about-network-services-that-dont-actually-serve-web-content) + * [What does "all Federal agency domains or subdomains" include?](#what-does-all-federal-agency-domains-or-subdomains-include) + * [What about domains that are only used to redirect visitors to other websites?](#what-about-domains-that-are-only-used-to-redirect-visitors-to-other-websites) + * [Do domains that redirect to other external domains need to redirect internally to HTTPS before redirecting externally?](#do-domains-that-redirect-to-other-external-domains-need-to-redirect-internally-to-https-before-redirecting-externally) + * [What about domains that are technically public, but in practice are only used internally?](#what-about-domains-that-are-technically-public-but-in-practice-are-only-used-internally) + * [What happens to visitors using browsers that don’t support HSTS, like older versions of Internet Explorer?](#what-happens-to-visitors-using-browsers-that-dont-support-hsts-like-older-versions-of-internet-explorer) + * [This site redirects users to HTTPS -- why is Pulse saying it doesn't enforce HTTPS?](#this-site-redirects-users-to-https-why-is-pulse-saying-it-doesnt-enforce-https) + * [Are federally operated certificate revocation services (CRL, OCSP) also required to move to HTTPS?](#are-federally-operated-certificate-revocation-services-crl-ocsp-also-required-to-move-to-https) + * [What if I'm using a federally issued certificate -- such as from the Federal PKI or Department of Defense -- for my web service?](#what-if-im-using-a-federally-issued-certificate-such-as-from-the-federal-pki-or-department-of-defense-for-my-web-service) ## Compliance and best practice checklist @@ -167,7 +167,7 @@ Agencies are encouraged to operate OCSP and CRL services via hostnames specifica ### What if I'm using a federally issued certificate -- such as from the Federal PKI or Department of Defense -- for my web service? -There are [no restrictions on acceptable certificate authorities](/certificates/#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use%3f) agencies might use to meet the requirements of M-15-13. +There are [no restrictions on acceptable certificate authorities](/certificates/#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use) agencies might use to meet the requirements of M-15-13. However, M-15-13 requires agencies to do more than just redirect HTTP traffic to HTTPS. It also requires agencies to enable **[HTTP Strict Transport Security](/hsts/)** (HSTS), as [described above](#options-for-hsts-compliance). HSTS ensures that HTTPS is always used, and protects users from several common vulnerabilities. diff --git a/pages/resources.md b/pages/resources.md index 74e993b..d3acf60 100644 --- a/pages/resources.md +++ b/pages/resources.md @@ -18,7 +18,7 @@ The DigitalGov University has several presentations on HTTPS from the General Se * **[Implementing HTTPS](https://www.youtube.com/watch?v=rnM2qAfEG-M)** (July 2015), by Eric Mill and Gray Brooks. A more detailed explanation of how HTTPS works, how to migrate a website to HTTPS, the [technical concepts](/technical-guidelines/) you should be aware of when implementing HTTPS, and new and upcoming advances in HTTPS. -* **[Migrating to HTTPS](https://www.youtube.com/watch?v=X5H8JRULDOo)** (July 2016), by Eric Mill and Timothy Badaczewski. This presentation covers common issues common to federal HTTPS migrations, including: [HTTP Strict Transport Security](/hsts/) (HSTS), [getting certificates](/certificates/), [mixed content](/mixed-content/), and [search engine optimization](/faq/#how-does-migrating-to-https-affect-search-engine-optimization-(seo)%3f) (SEO). +* **[Migrating to HTTPS](https://www.youtube.com/watch?v=X5H8JRULDOo)** (July 2016), by Eric Mill and Timothy Badaczewski. This presentation covers common issues common to federal HTTPS migrations, including: [HTTP Strict Transport Security](/hsts/) (HSTS), [getting certificates](/certificates/), [mixed content](/mixed-content/), and [search engine optimization](/faq/#how-does-migrating-to-https-affect-search-engine-optimization-seo) (SEO). ### Tools From 79fc5b10566324960232084e4d135cda1566bb35 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Fri, 13 Apr 2018 11:59:50 -0400 Subject: [PATCH 10/33] update hsts example to use a site that uses 1 year (#244) --- pages/hsts.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pages/hsts.md b/pages/hsts.md index e1550c5..393c671 100644 --- a/pages/hsts.md +++ b/pages/hsts.md @@ -40,17 +40,17 @@ Strict Transport Security was [proposed in 2009](https://lists.w3.org/Archives/P The basic problem that HSTS solves is that even after a website turns on HTTPS, visitors may still end up trying to connect over plain HTTP. For example: -* When a user types "dccode.gov" into the URL bar, browsers default to using `http://`. +* When a user types "gsa.gov" into the URL bar, browsers default to using `http://`. * A user may click on an old link that mistakenly uses an `http://` URL. * A user's network may be hostile and actively rewrite `https://` links to `http://`. Websites that prefer HTTPS will generally still listen for connections over HTTP in order to redirect the user to the HTTPS URL. For example: ``` -$ curl --head http://www.facebook.com +$ curl --head http://github.com HTTP/1.1 301 Moved Permanently -Location: https://www.facebook.com/ +Location: https://github.com/ ``` **This redirect is insecure** and is an opportunity for an attacker to capture information about the visitor (such as cookies from a previous secure session), or to maliciously redirect the user to a phishing site. @@ -58,15 +58,15 @@ Location: https://www.facebook.com/ This can be addressed by returning a `Strict-Transport-Security` header whenever the user connects securely. For example: ``` -$ curl --head https://www.facebook.com +$ curl --head https://github.com HTTP/1.1 200 OK -Strict-Transport-Security: max-age=15552000; preload +Strict-Transport-Security: max-age=31536000; includeSubdomains; preload ``` -This enables HSTS for `www.facebook.com`. While HSTS is in effect, clicking any links to `http://www.facebook.com` will cause the browser to issue a request directly for `https://www.facebook.com`. +This enables HSTS for `github.com`. While HSTS is in effect, clicking any links to `http://github.com` will cause the browser to issue a request directly for `https://github.com`. -In the above example, the browser will remember the HSTS policy for 180 days. The policy is refreshed every time browser sees the header again, so if a user visits `https://www.facebook.com` at least once every 180 days, they'll be indefinitely protected by HSTS. +In the above example, the browser will remember the HSTS policy for 1 year. The policy is refreshed every time browser sees the header again, so if a user visits `https://github.com` at least once every year, they'll be indefinitely protected by HSTS. ## HSTS Preloading @@ -127,7 +127,7 @@ On **Apache**, you would apply a `Header` directive to always set the HSTS heade Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" ``` -On **Microsoft systems running IIS** (Internet Information Services), there are no ".htaccess" files to implement custom headers. IIS applications use a central `web.config` file for configuration. +On **Microsoft systems running IIS** (Internet Information Services), there are no ".htaccess" files to implement custom headers. IIS applications use a central `web.config` file for configuration. For IIS 7.0 and up, the example `web.config` file configuration below will handle secure HTTP to HTTPS redirection with HSTS enabled for HTTPS: From c1e2ecb0e1974ea861de84d84cb7b9ca5f0b9456 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Fri, 13 Apr 2018 12:14:55 -0400 Subject: [PATCH 11/33] Tighten up build/push ignore files (#245) * stop building node_modules, and stop pushing a bunch of things * don't ignore quite that much * another too-broad ignore --- .cfignore | 11 +++++++++++ _config.yml | 1 + 2 files changed, 12 insertions(+) create mode 100644 .cfignore diff --git a/.cfignore b/.cfignore new file mode 100644 index 0000000..f2ec2af --- /dev/null +++ b/.cfignore @@ -0,0 +1,11 @@ +compliance +resources +".ruby-version" +".jekyll-metadata" +".gitignore" +node_modules +todo.txt +README.md +CONTRIBUTING.md +LICENSE.md +.nvmrc diff --git a/_config.yml b/_config.yml index c373c6a..94253fe 100644 --- a/_config.yml +++ b/_config.yml @@ -25,6 +25,7 @@ exclude: - ".ruby-version" - ".jekyll-metadata" - ".gitignore" +- node_modules - todo.txt - Staticfile - Gemfile From 55c447c18a8dfa50e8197cbb78b929545f542bcb Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 23 Apr 2018 08:41:39 -0400 Subject: [PATCH 12/33] only ignore top-level resources, not sub-dirs --- .cfignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cfignore b/.cfignore index f2ec2af..75d021d 100644 --- a/.cfignore +++ b/.cfignore @@ -1,5 +1,5 @@ compliance -resources +/resources ".ruby-version" ".jekyll-metadata" ".gitignore" From f820a5df8a65c5c611767752fecf353c17ab31df Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 23 Apr 2018 08:42:00 -0400 Subject: [PATCH 13/33] same for compliance/ dir --- .cfignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cfignore b/.cfignore index 75d021d..d46fdcb 100644 --- a/.cfignore +++ b/.cfignore @@ -1,4 +1,4 @@ -compliance +/compliance /resources ".ruby-version" ".jekyll-metadata" From 69f747b5ccf4748aa80466ebbbecfc692a2b69fe Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Wed, 20 Jun 2018 13:47:14 -0400 Subject: [PATCH 14/33] BOD 18-01 (web) analysis (#247) * making a sub-dir of compliance for m-15-13 analysis work * starting bod-18-01 analysis directory with copies of m-15-13 code * remove scratch space for m-15-13 * handle base domain detection better, header row detection better * update CFO Act agency names as represented in new .gov data * first pass at calculating compliance stats for a single scan event * remove unneeded files from a scan event * ignore libreoffice lock files * proper boolean parsing, ignore unperformed sslyze scans * use parent's preload status regardless of pshtt status for parent * downloading script for pre-bod and post-bod scans * moving data out of version control * finalize download script * removing data from version control, see Releases for this repo * generating first new CSVs for modern reports * some more reports, tweak the column headers some more --- .gitignore | 4 + compliance/bod-18-01/compliance.py | 212 ++++++ compliance/bod-18-01/download.py | 75 +++ compliance/bod-18-01/scratch.py | 116 ++++ compliance/bod-18-01/utils.py | 610 ++++++++++++++++++ compliance/{ => m-15-13}/compliance.py | 0 .../all-domains-30-days-2017-01-01.csv | 0 .../{ => m-15-13}/data/censys-2016-08-04.csv | 0 .../{ => m-15-13}/data/censys-2016-12-05.csv | 0 .../{ => m-15-13}/data/censys-2016-12-31.csv | 0 .../{ => m-15-13}/data/dap-2016-07-12.csv | 0 .../{ => m-15-13}/data/dap-2016-12-05.csv | 0 .../{ => m-15-13}/data/dap-2016-12-31.csv | 0 compliance/{ => m-15-13}/data/eot-2012.csv | 0 compliance/{ => m-15-13}/data/eot-2016.csv | 0 .../data/eot-seeds/eot-2012-seeds.csv | 0 .../data/eot-seeds/eot-2016-seeds.csv | 0 .../{ => m-15-13}/data/parents-2015-06-13.csv | 0 .../{ => m-15-13}/data/parents-2015-06-19.csv | 0 .../{ => m-15-13}/data/parents-2015-06-26.csv | 0 .../{ => m-15-13}/data/parents-2015-07-03.csv | 0 .../{ => m-15-13}/data/parents-2015-07-10.csv | 0 .../{ => m-15-13}/data/parents-2015-07-17.csv | 0 .../{ => m-15-13}/data/parents-2015-07-24.csv | 0 .../{ => m-15-13}/data/parents-2015-07-31.csv | 0 .../{ => m-15-13}/data/parents-2015-08-07.csv | 0 .../{ => m-15-13}/data/parents-2015-08-14.csv | 0 .../{ => m-15-13}/data/parents-2015-08-21.csv | 0 .../{ => m-15-13}/data/parents-2015-08-28.csv | 0 .../{ => m-15-13}/data/parents-2015-09-04.csv | 0 .../{ => m-15-13}/data/parents-2015-09-11.csv | 0 .../{ => m-15-13}/data/parents-2015-09-18.csv | 0 .../{ => m-15-13}/data/parents-2015-09-25.csv | 0 .../{ => m-15-13}/data/parents-2015-10-09.csv | 0 .../{ => m-15-13}/data/parents-2015-10-16.csv | 0 .../{ => m-15-13}/data/parents-2015-10-22.csv | 0 .../{ => m-15-13}/data/parents-2015-10-30.csv | 0 .../{ => m-15-13}/data/parents-2015-11-06.csv | 0 .../{ => m-15-13}/data/parents-2015-11-13.csv | 0 .../{ => m-15-13}/data/parents-2015-11-21.csv | 0 .../{ => m-15-13}/data/parents-2015-11-28.csv | 0 .../{ => m-15-13}/data/parents-2015-12-04.csv | 0 .../{ => m-15-13}/data/parents-2015-12-10.csv | 0 .../{ => m-15-13}/data/parents-2015-12-18.csv | 0 .../{ => m-15-13}/data/parents-2015-12-26.csv | 0 .../{ => m-15-13}/data/parents-2016-01-02.csv | 0 .../{ => m-15-13}/data/parents-2016-01-08.csv | 0 .../{ => m-15-13}/data/parents-2016-01-15.csv | 0 .../{ => m-15-13}/data/parents-2016-01-23.csv | 0 .../{ => m-15-13}/data/parents-2016-01-29.csv | 0 .../{ => m-15-13}/data/parents-2016-02-04.csv | 0 .../{ => m-15-13}/data/parents-2016-02-08.csv | 0 .../{ => m-15-13}/data/parents-2016-02-17.csv | 0 .../{ => m-15-13}/data/parents-2016-02-26.csv | 0 .../{ => m-15-13}/data/parents-2016-03-03.csv | 0 .../{ => m-15-13}/data/parents-2016-03-13.csv | 0 .../{ => m-15-13}/data/parents-2016-03-18.csv | 0 .../{ => m-15-13}/data/parents-2016-03-25.csv | 0 .../{ => m-15-13}/data/parents-2016-04-01.csv | 0 .../{ => m-15-13}/data/parents-2016-04-08.csv | 0 .../{ => m-15-13}/data/parents-2016-04-15.csv | 0 .../{ => m-15-13}/data/parents-2016-04-22.csv | 0 .../{ => m-15-13}/data/parents-2016-04-29.csv | 0 .../{ => m-15-13}/data/parents-2016-05-06.csv | 0 .../{ => m-15-13}/data/parents-2016-05-13.csv | 0 .../{ => m-15-13}/data/parents-2016-05-20.csv | 0 .../{ => m-15-13}/data/parents-2016-05-27.csv | 0 .../{ => m-15-13}/data/parents-2016-06-03.csv | 0 .../{ => m-15-13}/data/parents-2016-07-05.csv | 0 .../{ => m-15-13}/data/parents-2016-07-08.csv | 0 .../{ => m-15-13}/data/parents-2016-07-15.csv | 0 .../{ => m-15-13}/data/parents-2016-07-22.csv | 0 .../{ => m-15-13}/data/parents-2016-07-29.csv | 0 .../{ => m-15-13}/data/parents-2016-08-05.csv | 0 .../{ => m-15-13}/data/parents-2016-08-12.csv | 0 .../{ => m-15-13}/data/parents-2016-08-19.csv | 0 .../{ => m-15-13}/data/parents-2016-08-26.csv | 0 .../{ => m-15-13}/data/parents-2016-09-02.csv | 0 .../{ => m-15-13}/data/parents-2016-09-09.csv | 0 .../{ => m-15-13}/data/parents-2016-09-16.csv | 0 .../{ => m-15-13}/data/parents-2016-09-23.csv | 0 .../{ => m-15-13}/data/parents-2016-10-03.csv | 0 .../{ => m-15-13}/data/parents-2016-10-07.csv | 0 .../{ => m-15-13}/data/parents-2016-10-14.csv | 0 .../{ => m-15-13}/data/parents-2016-10-21.csv | 0 .../{ => m-15-13}/data/parents-2016-10-28.csv | 0 .../{ => m-15-13}/data/parents-2016-11-04.csv | 0 .../{ => m-15-13}/data/parents-2016-11-11.csv | 0 .../{ => m-15-13}/data/parents-2016-11-18.csv | 0 .../{ => m-15-13}/data/parents-2016-11-25.csv | 0 .../{ => m-15-13}/data/parents-2016-12-02.csv | 0 .../{ => m-15-13}/data/parents-2016-12-05.csv | 0 .../{ => m-15-13}/data/parents-2016-12-08.csv | 0 .../{ => m-15-13}/data/parents-2016-12-17.csv | 0 .../{ => m-15-13}/data/parents-2016-12-21.csv | 0 .../{ => m-15-13}/data/parents-2016-12-24.csv | 0 .../{ => m-15-13}/data/parents-2016-12-26.csv | 0 .../{ => m-15-13}/data/parents-2016-12-28.csv | 0 .../{ => m-15-13}/data/parents-2016-12-31.csv | 0 compliance/{ => m-15-13}/reports.py | 12 +- compliance/{ => m-15-13}/utils.py | 0 101 files changed, 1023 insertions(+), 6 deletions(-) create mode 100755 compliance/bod-18-01/compliance.py create mode 100644 compliance/bod-18-01/download.py create mode 100644 compliance/bod-18-01/scratch.py create mode 100644 compliance/bod-18-01/utils.py rename compliance/{ => m-15-13}/compliance.py (100%) rename compliance/{ => m-15-13}/data/analytics-domains/all-domains-30-days-2017-01-01.csv (100%) rename compliance/{ => m-15-13}/data/censys-2016-08-04.csv (100%) rename compliance/{ => m-15-13}/data/censys-2016-12-05.csv (100%) rename compliance/{ => m-15-13}/data/censys-2016-12-31.csv (100%) rename compliance/{ => m-15-13}/data/dap-2016-07-12.csv (100%) rename compliance/{ => m-15-13}/data/dap-2016-12-05.csv (100%) rename compliance/{ => m-15-13}/data/dap-2016-12-31.csv (100%) rename compliance/{ => m-15-13}/data/eot-2012.csv (100%) rename compliance/{ => m-15-13}/data/eot-2016.csv (100%) rename compliance/{ => m-15-13}/data/eot-seeds/eot-2012-seeds.csv (100%) rename compliance/{ => m-15-13}/data/eot-seeds/eot-2016-seeds.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-06-13.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-06-19.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-06-26.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-07-03.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-07-10.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-07-17.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-07-24.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-07-31.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-08-07.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-08-14.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-08-21.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-08-28.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-09-04.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-09-11.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-09-18.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-09-25.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-10-09.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-10-16.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-10-22.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-10-30.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-11-06.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-11-13.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-11-21.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-11-28.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-12-04.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-12-10.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-12-18.csv (100%) rename compliance/{ => m-15-13}/data/parents-2015-12-26.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-01-02.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-01-08.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-01-15.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-01-23.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-01-29.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-02-04.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-02-08.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-02-17.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-02-26.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-03-03.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-03-13.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-03-18.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-03-25.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-04-01.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-04-08.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-04-15.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-04-22.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-04-29.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-05-06.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-05-13.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-05-20.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-05-27.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-06-03.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-07-05.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-07-08.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-07-15.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-07-22.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-07-29.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-08-05.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-08-12.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-08-19.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-08-26.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-09-02.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-09-09.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-09-16.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-09-23.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-10-03.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-10-07.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-10-14.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-10-21.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-10-28.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-11-04.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-11-11.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-11-18.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-11-25.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-02.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-05.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-08.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-17.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-21.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-24.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-26.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-28.csv (100%) rename compliance/{ => m-15-13}/data/parents-2016-12-31.csv (100%) rename compliance/{ => m-15-13}/reports.py (95%) rename compliance/{ => m-15-13}/utils.py (100%) diff --git a/.gitignore b/.gitignore index 319f7a8..1a98119 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.~lock* .sass-cache _site .DS_Store @@ -10,3 +11,6 @@ node_modules /assets/vendor /assets/css /vendor +/compliance/*/cache +/compliance/*/data +/compliance/*/*.gz diff --git a/compliance/bod-18-01/compliance.py b/compliance/bod-18-01/compliance.py new file mode 100755 index 0000000..b7a3bee --- /dev/null +++ b/compliance/bod-18-01/compliance.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python + +import utils +import glob + +## Todo for DHS: +# * compare data across all dates + +## Todo for me: +# * pre-bod path and post-bod path +# * parents-only data going back to 2015? +# * cross-reference with DAP? + +# get mapping of domains to agency +base_domains = utils.domains_to_agencies() + +# get current and pending preloaded domains +# Downloads live from remote sources. (clear cache/ to re-download) +preloaded = set(utils.fetch_preloaded()) & set(base_domains) + +# See download.py for which dates are downloaded for each phase. + +# pre-BOD measurements (no 3DES checking, old dir structure) +pre_bod = [x.split("/")[-1] for x in glob.glob("data/pulse/pre-bod/*")] +pre_bod.sort() + +# post-BOD measurements (bod_crypto measured, new dir structure) +post_bod = [x.split("/")[-1] for x in glob.glob("data/pulse/post-bod/*")] +post_bod.sort() + + +# post-bod paths +def pshtts_and_sslyzes_for(date): + pshtts = [] + sslyzes = [] + + if date in post_bod: + pshtts.append("data/pulse/post-bod/%s/parents/results/pshtt.csv" % date) + pshtts.append("data/pulse/post-bod/%s/subdomains/scan/results/pshtt.csv" % date) + sslyzes.append("data/pulse/post-bod/%s/parents/results/sslyze.csv" % date) + sslyzes.append("data/pulse/post-bod/%s/subdomains/scan/results/sslyze.csv" % date) + elif date in pre_bod: + pshtts.append("data/pulse/pre-bod/%s/scan/pshtt.csv" % date) + pshtts.append("data/pulse/pre-bod/%s/subdomains/scan/censys/results/pshtt.csv" % date) + pshtts.append("data/pulse/pre-bod/%s/subdomains/scan/url/results/pshtt.csv" % date) + sslyzes.append("data/pulse/pre-bod/%s/scan/sslyze.csv" % date) + sslyzes.append("data/pulse/pre-bod/%s/subdomains/scan/censys/results/sslyze.csv" % date) + sslyzes.append("data/pulse/pre-bod/%s/subdomains/scan/url/results/sslyze.csv" % date) + + return pshtts, sslyzes + +def pct(num, denom): + return round((num / denom) * 100) + +def compliance_stats(name, date, filter): + pshtts, sslyzes = pshtts_and_sslyzes_for(date) + data = utils.load_pshtt_sslyze(pshtts, sslyzes, base_domains, preloaded, filter=filter) + totals = utils.compliance_totals(data) + + count = len(data.keys()) + + if count == 0: + print("No rows returned, no data to display.") + return + + print() + print("=====================================================") + print(" [%s] %s" % (date, name)) + print("=====================================================") + print() + print("Total domains: %i" % count) + print() + print("== Direct enforcement ==") + print("Enforces HTTPS: %i (%i%%)" % (totals['enforces'], pct(totals['enforces'], count))) + print("Strong HSTS: %i (%i%%)" % (totals['hsts'], pct(totals['hsts'], count))) + print("RC4 support: %i (%i%%)" % (totals['rc4'], pct(totals['rc4'], count))) + + if date in post_bod: + print("3DES support: %i (%i%%)" % (totals['3des'], pct(totals['3des'], count))) + print("Free of Known-weak Crypto: %i (%i%%)" % (totals['bod_crypto'], pct(totals['bod_crypto'], count))) + print("Compliant with BOD 18-01: %i (%i%%)" % (totals['compliant'], pct(totals['compliant'], count))) + + elif date in pre_bod: + print("Compliant with M-15-13: %i (%i%%)" % (totals['m1513'], pct(totals['m1513'], count))) + + print() + +def compliance_csv(dates, when, filter, path): + if when == "pre": + header = [ + "Date", "Total Hostnames", + "Enforces HTTPS", "HSTS", + "M-15-13", + "RC4", + "Enforces HTTPS (%)", "HSTS (%)", + "M-15-13 (%)", + "RC4 (%)", + ] + elif when == "post": + header = [ + "Date", "Total Hostnames", + "Enforces HTTPS", "HSTS", + "M-15-13", + "RC4", "3DES", "Free of SSLv2/SSLv3/RC4/3DES", + "BOD 18-01", + "Enforces HTTPS (%)", "HSTS (%)", + "M-15-13 (%)", + "RC4 (%)", "3DES (%)", "Free of SSLv2/SSLv3/RC4/3DES (%)", + "BOD 18-01 (%)", + ] + + rows = [] + for date in dates: + rows.append(compliance_csv_row(date, filter)) + + utils.save_csv(header, rows, path) + +def compliance_csv_row(date, filter): + print("[%s] Running report for row..." % date) + pshtts, sslyzes = pshtts_and_sslyzes_for(date) + data = utils.load_pshtt_sslyze(pshtts, sslyzes, base_domains, preloaded, filter=filter) + totals = utils.compliance_totals(data) + + count = len(data.keys()) + + if date in pre_bod: + return [ + date, + count, + totals['enforces'], + totals['hsts'], + totals['m1513'], + totals['rc4'], + pct(totals['enforces'], count), + pct(totals['hsts'], count), + pct(totals['m1513'], count), + pct(totals['rc4'], count), + ] + elif date in post_bod: + return [ + date, + count, + totals['enforces'], + totals['hsts'], + totals['m1513'], + totals['rc4'], + totals['3des'], + totals['bod_crypto'], + totals['compliant'], + pct(totals['enforces'], count), + pct(totals['hsts'], count), + pct(totals['m1513'], count), + pct(totals['rc4'], count), + pct(totals['3des'], count), + pct(totals['bod_crypto'], count), + pct(totals['compliant'], count), + ] + + +# # All executive hostnames pre-BOD. +# compliance_csv(pre_bod, "pre", +# utils.executive_only, +# "cache/pre-bod-executive.csv" +# ) +# # All executive hostnames post-BOD. +# compliance_csv(post_bod, "post", +# utils.executive_only, +# "cache/post-bod-executive.csv" +# ) + + +# CFO Act +compliance_csv(pre_bod, "pre", + utils.cfo_act_only, + "cache/pre-bod-cfo.csv" +) +compliance_csv(post_bod, "post", + utils.cfo_act_only, + "cache/post-bod-cfo.csv" +) + +# Non-CFO Act +compliance_csv(pre_bod, "pre", + utils.executive_non_cfo_act, + "cache/pre-bod-non-cfo.csv" +) +compliance_csv(post_bod, "post", + utils.executive_non_cfo_act, + "cache/post-bod-non-cfo.csv" +) + +# # CFO Act (minus DoD) +# compliance_csv(pre_bod, "pre", +# utils.cfo_act_only_sans_dod, +# "cache/pre-bod-cfo-no-dod.csv" +# ) +# compliance_csv(post_bod, "post", +# utils.cfo_act_only_sans_dod, +# "cache/post-bod-cfo-no-dod.csv" +# ) + +# # DoD only +# compliance_csv(pre_bod, "pre", +# utils.for_agencies(["Department of Defense"]), +# "cache/pre-bod-dod.csv" +# ) +# compliance_csv(post_bod, "post", +# utils.for_agencies(["Department of Defense"]), +# "cache/post-bod-dod.csv" +# ) + + diff --git a/compliance/bod-18-01/download.py b/compliance/bod-18-01/download.py new file mode 100644 index 0000000..3996f93 --- /dev/null +++ b/compliance/bod-18-01/download.py @@ -0,0 +1,75 @@ +## +# Download data from the Pulse S3 bucket to measure scans over time. +# Must be run from a machine where "aws s3 cp" has credentials for the bucket. + +import os +import subprocess + +AWS_REGION = "us-gov-west-1" +BUCKET_NAME = "cg-4adefb86-dadb-4ecf-be3e-f1c7b4f6d084" +DATA_DIR = "data/pulse" + +# Before BOD 18-01 was issued and before Pulse data was restructured +pre_bod = ["2017-02-10", "2017-02-12", "2017-02-15", "2017-02-17", "2017-02-20", "2017-02-22", "2017-02-24", "2017-02-27", "2017-03-01", "2017-03-03", "2017-03-06", "2017-03-08", "2017-03-10", "2017-03-13", "2017-03-15", "2017-03-17", "2017-03-20", "2017-03-22", "2017-03-24", "2017-03-27", "2017-03-30", "2017-03-31", "2017-04-04", "2017-04-06", "2017-04-08", "2017-04-11", "2017-04-13", "2017-04-20", "2017-04-22", "2017-04-25", "2017-04-27", "2017-04-29", "2017-05-02", "2017-05-04", "2017-05-06", "2017-05-09", "2017-05-11", "2017-05-13", "2017-05-16", "2017-05-18", "2017-05-20", "2017-05-23", "2017-05-25", "2017-05-27", "2017-05-30", "2017-06-01", "2017-06-03", "2017-06-05", "2017-07-02", "2017-07-03", "2017-07-05", "2017-07-07", "2017-07-10", "2017-07-12", "2017-07-14", "2017-07-17", "2017-07-19", "2017-07-21", "2017-07-25", "2017-07-26", "2017-07-28", "2017-07-31", "2017-08-02", "2017-08-07", "2017-08-09", "2017-08-11", "2017-08-14", "2017-08-16", "2017-08-18", "2017-08-21", "2017-08-23", "2017-08-25", "2017-09-28"] + +# After BOD 18-01 was issued and after Pulse data was restructured +# Exceptions: +# 2018-01-02: no subdomains/scan/results +post_bod = ["2017-11-20", "2017-11-25", "2017-12-11", "2017-12-13", "2017-12-15", "2017-12-16", "2017-12-17", "2017-12-18", "2017-12-19", "2017-12-20", "2017-12-21", "2017-12-22", "2017-12-23", "2017-12-24", "2017-12-25", "2017-12-26", "2017-12-27", "2017-12-28", "2017-12-29", "2017-12-30", "2017-12-31", "2018-01-01", "2018-01-03", "2018-01-04", "2018-01-05", "2018-01-06", "2018-01-07", "2018-01-08", "2018-01-09", "2018-01-10", "2018-01-11", "2018-01-12", "2018-01-13", "2018-01-14", "2018-01-15", "2018-01-16", "2018-01-17", "2018-01-18", "2018-01-19", "2018-01-20", "2018-01-21", "2018-01-22", "2018-01-23", "2018-01-24", "2018-01-25", "2018-01-26", "2018-01-27", "2018-01-28", "2018-01-29", "2018-01-30", "2018-01-31", "2018-02-01", "2018-02-02", "2018-02-03", "2018-02-04", "2018-02-05", "2018-02-06", "2018-02-07", "2018-02-08", "2018-02-09", "2018-02-10", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14", "2018-02-15", "2018-02-16", "2018-02-17", "2018-02-18", "2018-02-19", "2018-02-20", "2018-02-21", "2018-02-22", "2018-02-23", "2018-02-24", "2018-02-25", "2018-02-26", "2018-02-27", "2018-02-28", "2018-03-01", "2018-03-02", "2018-03-03", "2018-03-04", "2018-03-05", "2018-03-06", "2018-03-07", "2018-03-08", "2018-03-09", "2018-03-10", "2018-03-11", "2018-03-15", "2018-03-16", "2018-03-17", "2018-03-18", "2018-03-19", "2018-03-20", "2018-03-21", "2018-03-23", "2018-03-24", "2018-03-25", "2018-03-26", "2018-03-27", "2018-03-28", "2018-03-29", "2018-03-30", "2018-03-31", "2018-04-01", "2018-04-02", "2018-04-03", "2018-04-09", "2018-04-10", "2018-04-11", "2018-04-12", "2018-04-13", "2018-04-14", "2018-04-15", "2018-04-16", "2018-04-25", "2018-04-26", "2018-04-27", "2018-04-28"] + +def shell_out(command, env=None): + response = subprocess.check_output(command, shell=False, env=env) + output = str(response, encoding='UTF-8') + return output + +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST: + pass + else: + raise + + +# when = "pre" or "post" +def download_date(date, when="post"): + + def download(date, file): + url = "s3://%s/archive/%s/%s" % (BUCKET_NAME, date, file) + + # local destinations are relative to data/ + path = os.path.join(DATA_DIR, "%s-bod" % when, date, file) + + shell_out(["aws", "s3", "cp", url, path]) + + try: + # Newer streamlined directory structure + if when == "post": + download(date, "parents/results/pshtt.csv") + download(date, "parents/results/sslyze.csv") + download(date, "parents/results/meta.json") + download(date, "subdomains/scan/results/pshtt.csv") + download(date, "subdomains/scan/results/sslyze.csv") + download(date, "subdomains/scan/results/meta.json") + + # Older, more laborious directory structure + elif when == "pre": + download(date, "scan/pshtt.csv") + download(date, "scan/sslyze.csv") + download(date, "scan/meta.json") + download(date, "subdomains/scan/url/results/pshtt.csv") + download(date, "subdomains/scan/url/results/sslyze.csv") + download(date, "subdomains/scan/url/results/meta.json") + download(date, "subdomains/scan/censys/results/pshtt.csv") + download(date, "subdomains/scan/censys/results/sslyze.csv") + download(date, "subdomains/scan/censys/results/meta.json") + except subprocess.CalledProcessError: + print("[%s] MISSING SOMETHING" % date) + + +# for date in post_bod: +# download_date(date, "post") + +# for date in pre_bod: +# download_date(date, "pre") diff --git a/compliance/bod-18-01/scratch.py b/compliance/bod-18-01/scratch.py new file mode 100644 index 0000000..b9ca86f --- /dev/null +++ b/compliance/bod-18-01/scratch.py @@ -0,0 +1,116 @@ + +######################################################### +# +# Just scratch space, this won't execute or import properly. +# +######################################################### + +name = "Pre-BOD (all executive)" +compliance_stats(name, pre_bod[-1], utils.executive_only) + +name = "Most recent (all executive)" +compliance_stats(name, post_bod[-1], utils.executive_only) + +name = "Most recent (all legislative)" +compliance_stats(name, post_bod[-1], utils.legislative_only) + +name = "Most recent (all judicial)" +compliance_stats(name, post_bod[-1], utils.judicial_only) + +name = "Most recent (CFO Act only)" +compliance_stats(name, post_bod[-1], utils.cfo_act_only) + +name = "Most recent (CFO Act only, minus DoD)" +compliance_stats(name, post_bod[-1], utils.cfo_act_only_sans_dod) + +name = "Most recent (DoD only)" +compliance_stats(name, post_bod[-1], utils.for_agencies(["Department of Defense"])) + +name = "Most recent (non-CFO Act)" +compliance_stats(name, post_bod[-1], utils.executive_non_cfo_act) + + +# All executive hostnames pre-BOD. +compliance_csv(pre_bod, "pre", + utils.executive_only, + "cache/pre-bod-executive.csv" +) +# All executive hostnames post-BOD. +compliance_csv(post_bod, "post", + utils.executive_only, + "cache/post-bod-executive.csv" +) + +# CFO Act +compliance_csv(pre_bod, "pre", + utils.cfo_act_only, + "cache/pre-bod-cfo.csv" +) +compliance_csv(post_bod, "post", + utils.cfo_act_only, + "cache/post-bod-cfo.csv" +) + +# Non-CFO Act +compliance_csv(pre_bod, "pre", + utils.executive_non_cfo_act, + "cache/pre-bod-non-cfo.csv" +) +compliance_csv(post_bod, "post", + utils.executive_non_cfo_act, + "cache/post-bod-non-cfo.csv" +) + +# CFO Act (minus DoD) +compliance_csv(pre_bod, "pre", + utils.cfo_act_only_sans_dod, + "cache/pre-bod-cfo-no-dod.csv" +) +compliance_csv(post_bod, "post", + utils.cfo_act_only_sans_dod, + "cache/post-bod-cfo-no-dod.csv" +) + +# DoD only +compliance_csv(pre_bod, "pre", + utils.for_agencies(["Department of Defense"]), + "cache/pre-bod-dod.csv" +) +compliance_csv(post_bod, "post", + utils.for_agencies(["Department of Defense"]), + "cache/post-bod-dod.csv" +) + + +cfo_act_groups = [ + "U.S. Department of Agriculture", + "Department of Commerce", + "Department of Defense", + "Department of Education", + "Department of Energy", + "Department of Health and Human Services", + "Department of Homeland Security", + "Department of Housing and Urban Development", + "Department of the Interior", + [ + "Department of Justice", + "Terrorist Screening Center", # (DOJ/FBI) as seen in .gov data + ], + "Department of Labor", + [ + "Department of State", + "Department of State, Office of Inspector General", # seen in .gov data + ], + "Department of Transportation", + "Department of the Treasury", + "Department of Veterans Affairs", + "Environmental Protection Agency", + "National Aeronautics and Space Administration", + "U.S. Agency for International Development", + "General Services Administration", + "National Science Foundation", + "Nuclear Regulatory Commission", + "Office of Personnel Management", + "Small Business Administration", + "Social Security Administration" +] diff --git a/compliance/bod-18-01/utils.py b/compliance/bod-18-01/utils.py new file mode 100644 index 0000000..094b15e --- /dev/null +++ b/compliance/bod-18-01/utils.py @@ -0,0 +1,610 @@ +import csv +import io +import os +import errno +import urllib +import urllib.request +import logging +import requests +import base64 +import re +import json + +# == compliance + +# Given a dict of pshtt results for a hostname, what are the +# Uses, Enforces, and HSTS conclusions? +# +# borrows the pulse.cio.gov code for calculating conclusions: +# https://github.com/18F/pulse/blob/0528773b1d39a664ff8f62d655b8bb7c8979874c/data/processing.py#L408-L509 +def compliance_for(pshtt, sslyze, parent_preloaded=False): + report = {} + # assumes that HTTPS would be technically present, with or without issues + if (pshtt["Downgrades HTTPS"] == "True"): + https = 0 # No + else: + if (pshtt["Valid HTTPS"] == "True"): + https = 2 # Yes + elif ( + (pshtt["HTTPS Bad Chain"] == "True") and + (pshtt["HTTPS Bad Hostname"] == "False") + ): + https = 1 # Yes + else: + https = -1 # No + + + ### + # Is HTTPS enforced? + + if (https <= 0): + behavior = 0 # N/A + + else: + + # "Yes (Strict)" means HTTP immediately redirects to HTTPS, + # *and* that HTTP eventually redirects to HTTPS. + # + # Since a pure redirector domain can't "default" to HTTPS + # for itself, we'll say it "Enforces HTTPS" if it immediately + # redirects to an HTTPS URL. + if ( + (pshtt["Strictly Forces HTTPS"] == "True") and + ( + (pshtt["Defaults to HTTPS"] == "True") or + (pshtt["Redirect"] == "True") + ) + ): + behavior = 3 # Yes (Strict) + + # "Yes" means HTTP eventually redirects to HTTPS. + elif ( + (pshtt["Strictly Forces HTTPS"] == "False") and + (pshtt["Defaults to HTTPS"] == "True") + ): + behavior = 2 # Yes + + # Either both are False, or just 'Strict Force' is True, + # which doesn't matter on its own. + # A "present" is better than a downgrade. + else: + behavior = 1 # Present (considered 'No') + + report['enforces'] = behavior + + + ### + # Characterize the presence and completeness of HSTS. + + if pshtt["HSTS Max Age"]: + hsts_age = int(pshtt["HSTS Max Age"]) + else: + hsts_age = None + + # If this is a subdomain, it can be considered as having HSTS, via + # the preloading of its parent. + if parent_preloaded: + hsts = 3 # Yes, via preloading + + # Otherwise, without HTTPS there can be no HSTS for the domain directly. + elif (https <= 0): + hsts = -1 # N/A (considered 'No') + + else: + + # HSTS is present for the canonical endpoint. + if (pshtt["HSTS"] == "True") and hsts_age: + + # Say No for too-short max-age's, and note in the extended details. + if hsts_age >= 31536000: + hsts = 2 # Yes, directly + else: + hsts = 1 # No + + else: + hsts = 0 # No + + # Separate preload status from HSTS status: + # + # * Domains can be preloaded through manual overrides. + # * Confusing to mix an endpoint-level decision with a domain-level decision. + if pshtt["HSTS Preloaded"] == "True": + preloaded = 2 # Yes + elif (pshtt["HSTS Preload Ready"] == "True"): + preloaded = 1 # Ready for submission + else: + preloaded = 0 # No + + report['hsts'] = hsts + report['hsts_age'] = hsts_age + report['preloaded'] = preloaded + + ### + # Get cipher/protocol data via sslyze for a host. + + sslv2 = None + sslv3 = None + any_rc4 = None + any_3des = None + + # values: unknown or N/A (-1), No (0), Yes (1) + bod_crypto = None + + # N/A if no HTTPS + if (https <= 0): + bod_crypto = -1 # N/A + + elif sslyze is None: + # LOGGER.info("[https][%s] No sslyze scan data found." % name) + bod_crypto = -1 # Unknown + + else: + ### + # BOD 18-01 (cyber.dhs.gov) cares about SSLv2, SSLv3, RC4, and 3DES. + any_rc4 = boolean_for(sslyze["Any RC4"]) + # TODO: kill conditional once everything is synced + if sslyze.get("Any 3DES"): + any_3des = boolean_for(sslyze["Any 3DES"]) + sslv2 = boolean_for(sslyze["SSLv2"]) + sslv3 = boolean_for(sslyze["SSLv3"]) + + if any_rc4 or any_3des or sslv2 or sslv3: + bod_crypto = 0 + else: + bod_crypto = 1 + + report['bod_crypto'] = bod_crypto + report['rc4'] = any_rc4 + report['3des'] = any_3des + report['sslv2'] = sslv2 + report['sslv3'] = sslv3 + + # Final calculation: is the service compliant with all of M-15-13 + # (HTTPS+HSTS) and BOD 18-01 (that + RC4/3DES/SSLv2/SSLv3)? + + # For M-15-13 compliance, the service has to enforce HTTPS, + # and has to have strong HSTS in place (can be via preloading). + m1513 = (behavior >= 2) and (hsts >= 2) + + # For BOD compliance, only ding if we have scan data: + # * If our scanner dropped, give benefit of the doubt. + # * If they have no HTTPS, this will fix itself once HTTPS comes on. + bod1801 = m1513 and (bod_crypto != 0) + + # Phew! + report['m1513'] = m1513 + report['compliant'] = bod1801 # equivalent, since BOD is a superset + + return report + + +# Given a compliance report (e.g. uses=1, enforces=2, hsts=2) +# return a dict with them turned into labels +def compliance_labels(report): + return { + 'enforces': (report['enforces'] >= 2), + 'hsts': (report['hsts'] >= 2), + 'bod_crypto': (report['bod_crypto'] == 1), + 'compliant': report['compliant'], + 'm1513': report['m1513'], + 'rc4': report['rc4'], + '3des': report['3des'] + } + +def boolean_for(string): + if string == "False": + return False + elif string == "True": + return True + else: + return None + +# Given a set of domains, calculate the compliance totals +# that meet BOD 18-01 requirements. +# Adapted from a snapshot of Pulse code: +# https://github.com/18F/pulse/blob/0528773b1d39a664ff8f62d655b8bb7c8979874c/data/processing.py#L511-L539 + +def compliance_totals(data): + total_report = { + 'enforces': 0, + 'hsts': 0, + 'bod_crypto': 0, + 'compliant': 0, + 'm1513': 0, + 'rc4': 0, + '3des': 0 + } + + for domain in data.keys(): + # calculated in compliance_for() method using pshtt data + report = data[domain]['compliance'] + + # Needs to be Default or Strict to be 'Yes' + if report['enforces'] >= 2: + total_report['enforces'] += 1 + + # Needs to be present with >= 1 year max-age for canonical endpoint + if report['hsts'] >= 2: + total_report['hsts'] += 1 + + if report['bod_crypto'] == 1: + total_report['bod_crypto'] += 1 + + if report['compliant']: + total_report['compliant'] += 1 + + if report['m1513']: + total_report['m1513'] += 1 + + if report['rc4']: + total_report['rc4'] += 1 + + if report['3des']: + total_report['3des'] += 1 + + return total_report + +# == filters == + +def live_only(pshtt, agency, branch): + return pshtt["Live"] == "True" + +# return a dynamic filter function for a given agency +def for_agencies(filter_agencies): + # render case-insensitive + filtered = [agency.lower() for agency in filter_agencies] + + def the_filter(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and (agency.lower() in filtered) + + return the_filter + +# a specific list of executive branch domains +# used to filter on DAP-tracked domains +def specific_executive(list_of_domains): + + def the_filter(pshtt, agency, branch): + executive = executive_only(pshtt, agency, branch) + return executive and (pshtt['Domain'] in list_of_domains) + + return the_filter + +def executive_only(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and (branch == "executive") + +def non_executive(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and (branch != "executive") + +def legislative_only(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and (branch == "legislative") + +def judicial_only(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and (branch == "judicial") + +def cfo_act_only(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and cfo_act(agency) + +def executive_non_cfo_act(pshtt, agency, branch): + executive = executive_only(pshtt, agency, branch) + return executive and (not cfo_act(agency)) + +def cfo_act_only_sans_dod(pshtt, agency, branch): + live = live_only(pshtt, agency, branch) + return live and cfo_act_sans_dod(agency) + +# Return base domain for a subdomain. +# Simplified to not use PSL for the federal use case, while handling .fed.us. +def base_domain_for(subdomain): + if subdomain.endswith(".fed.us"): + return str.join(".", subdomain.split(".")[-3:]) + else: # .gov + return str.join(".", subdomain.split(".")[-2:]) + +# save an array of domain names to a CSV at a given path +def save_domains(domains, path): + output = io.StringIO() + writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC) + header = ["Domain", "Base Domain"] + writer.writerow(header) + for domain in domains: + writer.writerow([domain, base_domain_for(domain)]) + write(output.getvalue(), path) + +def save_csv(header, rows, path): + output = io.StringIO() + writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC) + writer.writerow(header) + for row in rows: + writer.writerow(row) + write(output.getvalue(), path) + + +# Load the first column of a CSV into memory as an array of strings. +def load_domains(domain_csv, whole_rows=False): + domains = [] + with open(domain_csv, newline='') as csvfile: + for row in csv.reader(csvfile): + if (not row[0]) or (row[0].lower() == "domain") or (row[0].lower() == "domain name"): + continue + + row[0] = row[0].lower() + + if whole_rows: + domains.append(row) + else: + domains.append(row[0]) + return domains + +# Return true if it's a CFO Act agency +def cfo_act(agency): + return agency in [ + "U.S. Department of Agriculture", + "Department of Commerce", + "Department of Defense", + "Department of Education", + "Department of Energy", + "Department of Health and Human Services", + "Department of Homeland Security", + "Department of Housing and Urban Development", + "Department of the Interior", + "Department of Justice", + "Terrorist Screening Center", # (DOJ/FBI) as seen in .gov data + "Department of Labor", + "Department of State", + "Department of State, Office of Inspector General", # seen in .gov data + "Department of Transportation", + "Department of the Treasury", + "Department of Veterans Affairs", + "Environmental Protection Agency", + "National Aeronautics and Space Administration", + "U.S. Agency for International Development", + "General Services Administration", + "National Science Foundation", + "Nuclear Regulatory Commission", + "Office of Personnel Management", + "Small Business Administration", + "Social Security Administration" + ] + +# Return true if it's a CFO act agency and not DoD +def cfo_act_sans_dod(agency): + return cfo_act(agency) and (agency != "Department of Defense") + +# Taken from a snapshot of Pulse's branch detection code: +# https://github.com/18F/pulse/blob/c5b15bc1d2c9e4ff3b20e352e0a0b4f3d131d70f/data/processing.py#L1165-L1174 +def branch_for(domain_type): + if (not domain_type.startswith("Federal Agency - ")): + return None + + branch = domain_type.replace("Federal Agency - ", "") + branch = branch.lower().strip() + + return branch + + +# Download official GSA .gov dataset and create a dict of domains to agencies/branches. +def domains_to_agencies(): + official_csv = "cache/federal-domains.csv" + if not os.path.exists(official_csv): + print("Downloading federal domains...") + + # Snapshot as of 2018-04-27 + url = "https://github.com/GSA/data/raw/4513ad8ce1548fdb34509e7361d806a5a1e4288b/dotgov-domains/current-federal.csv" + official_csv = download(url, "cache/federal-domains.csv") + + official_data = load_domains(official_csv, whole_rows=True) + + # header row for latest .gov data + headers = [ + "Domain Name", "Domain Type", + "Agency", "Organization", "City", "State" + ] + + domain_map = {} + for row in official_data: + # Turn row headers into a dict. + dict_row = {} + for i, cell in enumerate(row): + dict_row[headers[i]] = cell + + domain = dict_row["Domain Name"].lower() + agency = dict_row["Agency"].strip() + domain_type = dict_row["Domain Type"] + branch = branch_for(domain_type) + + domain_map[domain] = { + "agency": agency, + "branch": branch + } + + return domain_map + +# Not great at error handling. +def download(url, destination): + filename, headers = urllib.request.urlretrieve(url, destination) + return filename + +# Load one or more pshtt scan files, and turn them into a dict. +# If sending in multiple paths, send from oldest to newest, as +# later scan results for the same domain will overwrite older ones. +def load_pshtt_sslyze(pshtts, sslyzes, base_domains, preloaded, filter=None): + data = {} + + for path in pshtts: + headers = [] + with open(path, newline='') as csvfile: + for row in csv.reader(csvfile): + if (row[0].lower() == "domain"): + headers = row + continue + + domain = row[0].lower() + base_domain = base_domain_for(domain) + if not base_domains.get(base_domain): + # print("[load_pshtt] Skipping %s, not a (current) federal domain." % domain) + continue + + agency = base_domains[base_domain]["agency"] + branch = base_domains[base_domain]["branch"] + + if agency == "Non-Federal Agency": + # print("[load_pshtt] Skipping %s, marked as non-federal." % domain) + continue + + pshtt = {} + for i, cell in enumerate(row): + pshtt[headers[i]] = cell + + if filter and (not filter(pshtt, agency, branch)): + # print("[load_pshtt] Skipping %s, didn't pass filter." % domain) + continue + + # might overwrite a scan result from a previous + # CSV file - that's fine, we'll just go with the + # latest one, so inputs should use latest last. + data[domain] = { + 'pshtt': pshtt, + 'base_domain': base_domain, + 'agency': agency, + 'branch': branch, + 'cfo_act': cfo_act(agency) + } + + for path in sslyzes: + headers = [] + with open(path, newline='') as csvfile: + for row in csv.reader(csvfile): + if (row[0].lower() == "domain"): + headers = row + continue + + domain = row[0].lower() + base_domain = base_domain_for(domain) + if not data.get(domain): + # print("[load_sslyze] Skipping %s, filtered out." % domain) + continue + + sslyze = {} + for i, cell in enumerate(row): + sslyze[headers[i]] = cell + + # if no TLSv1.2 value, then no scan was performed + if sslyze["TLSv1.2"]: + data[domain]['sslyze'] = sslyze + + + # Run each domain through compliance_for, with the pshtt, sslyze, + # and whether its parent is known to be preloaded + domains = list(data.keys()) + domains.sort() + for domain in domains: + # Debugging: + # print(domain) + + base_domain = base_domain_for(domain) + if domain == base_domain: + parent_preloaded = False # Not relevant for base domains themselves. + else: + parent_preloaded = (base_domain in preloaded) + + data[domain]['compliance'] = compliance_for(data[domain]['pshtt'], data[domain].get('sslyze'), parent_preloaded) + + return data + +def fetch_preloaded(): + preload_json = None + + preload_path = "cache/preload.json" + + if os.path.exists(preload_path): + logging.debug("Using cached Chrome preload list.") + preload_json = json.loads(open(preload_path).read()) + else: + logging.debug("Fetching Chrome preload list from source...") + + # Downloads the chromium preloaded domain list and sets it to a global set + file_url = 'https://chromium.googlesource.com/chromium/src/net/+/master/http/transport_security_state_static.json?format=TEXT' + + # TODO: proper try/except around this network request + request = requests.get(file_url) + raw = request.content + + # To avoid parsing the contents of the file out of the source tree viewer's + # HTML, we download it as a raw file. googlesource.com Base64-encodes the + # file to avoid potential content injection issues, so we need to decode it + # before using it. https://code.google.com/p/gitiles/issues/detail?id=7 + raw = base64.b64decode(raw).decode('utf-8') + + # The .json file contains '//' comments, which are not actually valid JSON, + # and confuse Python's JSON decoder. Begone, foul comments! + raw = ''.join([re.sub(r'^\s*//.*$', '', line) + for line in raw.splitlines()]) + + preload_json = json.loads(raw) + + logging.debug("Caching preload list at %s" % preload_path) + write(json_for(preload_json), preload_path) + + # For our purposes, we only care about entries that includeSubDomains + fully_preloaded = [] + for entry in preload_json['entries']: + if entry.get('include_subdomains', False) is True: + fully_preloaded.append(entry['name']) + + return fully_preloaded + +def fetch_preload_pending(): + + pending_path = "cache/preload-pending.json" + if not os.path.exists(pending_path): + logging.debug("Fetching Chrome pending preload list...") + + pending_url = "https://hstspreload.org/api/v2/pending" + download(pending_url, pending_path) + + raw = open(pending_path).read() + pending_json = json.loads(raw) + + # For our purposes, we only care about entries that include subdomains. + pending = [] + for entry in pending_json: + if entry.get('include_subdomains', False) is True: + pending.append(entry['name']) + + return pending + +def write(content, destination): + mkdir_p(os.path.dirname(destination)) + + f = open(destination, 'w', encoding='utf-8') + f.write(content) + f.close() + +def json_for(object): + return json.dumps(object, sort_keys=True, + indent=2, default=format_datetime) + +def format_datetime(obj): + if isinstance(obj, datetime.date): + return obj.isoformat() + elif isinstance(obj, str): + return obj + else: + return None + +# mkdir -p in python, from: +# https://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST: + pass + else: + raise diff --git a/compliance/compliance.py b/compliance/m-15-13/compliance.py similarity index 100% rename from compliance/compliance.py rename to compliance/m-15-13/compliance.py diff --git a/compliance/data/analytics-domains/all-domains-30-days-2017-01-01.csv b/compliance/m-15-13/data/analytics-domains/all-domains-30-days-2017-01-01.csv similarity index 100% rename from compliance/data/analytics-domains/all-domains-30-days-2017-01-01.csv rename to compliance/m-15-13/data/analytics-domains/all-domains-30-days-2017-01-01.csv diff --git a/compliance/data/censys-2016-08-04.csv b/compliance/m-15-13/data/censys-2016-08-04.csv similarity index 100% rename from compliance/data/censys-2016-08-04.csv rename to compliance/m-15-13/data/censys-2016-08-04.csv diff --git a/compliance/data/censys-2016-12-05.csv b/compliance/m-15-13/data/censys-2016-12-05.csv similarity index 100% rename from compliance/data/censys-2016-12-05.csv rename to compliance/m-15-13/data/censys-2016-12-05.csv diff --git a/compliance/data/censys-2016-12-31.csv b/compliance/m-15-13/data/censys-2016-12-31.csv similarity index 100% rename from compliance/data/censys-2016-12-31.csv rename to compliance/m-15-13/data/censys-2016-12-31.csv diff --git a/compliance/data/dap-2016-07-12.csv b/compliance/m-15-13/data/dap-2016-07-12.csv similarity index 100% rename from compliance/data/dap-2016-07-12.csv rename to compliance/m-15-13/data/dap-2016-07-12.csv diff --git a/compliance/data/dap-2016-12-05.csv b/compliance/m-15-13/data/dap-2016-12-05.csv similarity index 100% rename from compliance/data/dap-2016-12-05.csv rename to compliance/m-15-13/data/dap-2016-12-05.csv diff --git a/compliance/data/dap-2016-12-31.csv b/compliance/m-15-13/data/dap-2016-12-31.csv similarity index 100% rename from compliance/data/dap-2016-12-31.csv rename to compliance/m-15-13/data/dap-2016-12-31.csv diff --git a/compliance/data/eot-2012.csv b/compliance/m-15-13/data/eot-2012.csv similarity index 100% rename from compliance/data/eot-2012.csv rename to compliance/m-15-13/data/eot-2012.csv diff --git a/compliance/data/eot-2016.csv b/compliance/m-15-13/data/eot-2016.csv similarity index 100% rename from compliance/data/eot-2016.csv rename to compliance/m-15-13/data/eot-2016.csv diff --git a/compliance/data/eot-seeds/eot-2012-seeds.csv b/compliance/m-15-13/data/eot-seeds/eot-2012-seeds.csv similarity index 100% rename from compliance/data/eot-seeds/eot-2012-seeds.csv rename to compliance/m-15-13/data/eot-seeds/eot-2012-seeds.csv diff --git a/compliance/data/eot-seeds/eot-2016-seeds.csv b/compliance/m-15-13/data/eot-seeds/eot-2016-seeds.csv similarity index 100% rename from compliance/data/eot-seeds/eot-2016-seeds.csv rename to compliance/m-15-13/data/eot-seeds/eot-2016-seeds.csv diff --git a/compliance/data/parents-2015-06-13.csv b/compliance/m-15-13/data/parents-2015-06-13.csv similarity index 100% rename from compliance/data/parents-2015-06-13.csv rename to compliance/m-15-13/data/parents-2015-06-13.csv diff --git a/compliance/data/parents-2015-06-19.csv b/compliance/m-15-13/data/parents-2015-06-19.csv similarity index 100% rename from compliance/data/parents-2015-06-19.csv rename to compliance/m-15-13/data/parents-2015-06-19.csv diff --git a/compliance/data/parents-2015-06-26.csv b/compliance/m-15-13/data/parents-2015-06-26.csv similarity index 100% rename from compliance/data/parents-2015-06-26.csv rename to compliance/m-15-13/data/parents-2015-06-26.csv diff --git a/compliance/data/parents-2015-07-03.csv b/compliance/m-15-13/data/parents-2015-07-03.csv similarity index 100% rename from compliance/data/parents-2015-07-03.csv rename to compliance/m-15-13/data/parents-2015-07-03.csv diff --git a/compliance/data/parents-2015-07-10.csv b/compliance/m-15-13/data/parents-2015-07-10.csv similarity index 100% rename from compliance/data/parents-2015-07-10.csv rename to compliance/m-15-13/data/parents-2015-07-10.csv diff --git a/compliance/data/parents-2015-07-17.csv b/compliance/m-15-13/data/parents-2015-07-17.csv similarity index 100% rename from compliance/data/parents-2015-07-17.csv rename to compliance/m-15-13/data/parents-2015-07-17.csv diff --git a/compliance/data/parents-2015-07-24.csv b/compliance/m-15-13/data/parents-2015-07-24.csv similarity index 100% rename from compliance/data/parents-2015-07-24.csv rename to compliance/m-15-13/data/parents-2015-07-24.csv diff --git a/compliance/data/parents-2015-07-31.csv b/compliance/m-15-13/data/parents-2015-07-31.csv similarity index 100% rename from compliance/data/parents-2015-07-31.csv rename to compliance/m-15-13/data/parents-2015-07-31.csv diff --git a/compliance/data/parents-2015-08-07.csv b/compliance/m-15-13/data/parents-2015-08-07.csv similarity index 100% rename from compliance/data/parents-2015-08-07.csv rename to compliance/m-15-13/data/parents-2015-08-07.csv diff --git a/compliance/data/parents-2015-08-14.csv b/compliance/m-15-13/data/parents-2015-08-14.csv similarity index 100% rename from compliance/data/parents-2015-08-14.csv rename to compliance/m-15-13/data/parents-2015-08-14.csv diff --git a/compliance/data/parents-2015-08-21.csv b/compliance/m-15-13/data/parents-2015-08-21.csv similarity index 100% rename from compliance/data/parents-2015-08-21.csv rename to compliance/m-15-13/data/parents-2015-08-21.csv diff --git a/compliance/data/parents-2015-08-28.csv b/compliance/m-15-13/data/parents-2015-08-28.csv similarity index 100% rename from compliance/data/parents-2015-08-28.csv rename to compliance/m-15-13/data/parents-2015-08-28.csv diff --git a/compliance/data/parents-2015-09-04.csv b/compliance/m-15-13/data/parents-2015-09-04.csv similarity index 100% rename from compliance/data/parents-2015-09-04.csv rename to compliance/m-15-13/data/parents-2015-09-04.csv diff --git a/compliance/data/parents-2015-09-11.csv b/compliance/m-15-13/data/parents-2015-09-11.csv similarity index 100% rename from compliance/data/parents-2015-09-11.csv rename to compliance/m-15-13/data/parents-2015-09-11.csv diff --git a/compliance/data/parents-2015-09-18.csv b/compliance/m-15-13/data/parents-2015-09-18.csv similarity index 100% rename from compliance/data/parents-2015-09-18.csv rename to compliance/m-15-13/data/parents-2015-09-18.csv diff --git a/compliance/data/parents-2015-09-25.csv b/compliance/m-15-13/data/parents-2015-09-25.csv similarity index 100% rename from compliance/data/parents-2015-09-25.csv rename to compliance/m-15-13/data/parents-2015-09-25.csv diff --git a/compliance/data/parents-2015-10-09.csv b/compliance/m-15-13/data/parents-2015-10-09.csv similarity index 100% rename from compliance/data/parents-2015-10-09.csv rename to compliance/m-15-13/data/parents-2015-10-09.csv diff --git a/compliance/data/parents-2015-10-16.csv b/compliance/m-15-13/data/parents-2015-10-16.csv similarity index 100% rename from compliance/data/parents-2015-10-16.csv rename to compliance/m-15-13/data/parents-2015-10-16.csv diff --git a/compliance/data/parents-2015-10-22.csv b/compliance/m-15-13/data/parents-2015-10-22.csv similarity index 100% rename from compliance/data/parents-2015-10-22.csv rename to compliance/m-15-13/data/parents-2015-10-22.csv diff --git a/compliance/data/parents-2015-10-30.csv b/compliance/m-15-13/data/parents-2015-10-30.csv similarity index 100% rename from compliance/data/parents-2015-10-30.csv rename to compliance/m-15-13/data/parents-2015-10-30.csv diff --git a/compliance/data/parents-2015-11-06.csv b/compliance/m-15-13/data/parents-2015-11-06.csv similarity index 100% rename from compliance/data/parents-2015-11-06.csv rename to compliance/m-15-13/data/parents-2015-11-06.csv diff --git a/compliance/data/parents-2015-11-13.csv b/compliance/m-15-13/data/parents-2015-11-13.csv similarity index 100% rename from compliance/data/parents-2015-11-13.csv rename to compliance/m-15-13/data/parents-2015-11-13.csv diff --git a/compliance/data/parents-2015-11-21.csv b/compliance/m-15-13/data/parents-2015-11-21.csv similarity index 100% rename from compliance/data/parents-2015-11-21.csv rename to compliance/m-15-13/data/parents-2015-11-21.csv diff --git a/compliance/data/parents-2015-11-28.csv b/compliance/m-15-13/data/parents-2015-11-28.csv similarity index 100% rename from compliance/data/parents-2015-11-28.csv rename to compliance/m-15-13/data/parents-2015-11-28.csv diff --git a/compliance/data/parents-2015-12-04.csv b/compliance/m-15-13/data/parents-2015-12-04.csv similarity index 100% rename from compliance/data/parents-2015-12-04.csv rename to compliance/m-15-13/data/parents-2015-12-04.csv diff --git a/compliance/data/parents-2015-12-10.csv b/compliance/m-15-13/data/parents-2015-12-10.csv similarity index 100% rename from compliance/data/parents-2015-12-10.csv rename to compliance/m-15-13/data/parents-2015-12-10.csv diff --git a/compliance/data/parents-2015-12-18.csv b/compliance/m-15-13/data/parents-2015-12-18.csv similarity index 100% rename from compliance/data/parents-2015-12-18.csv rename to compliance/m-15-13/data/parents-2015-12-18.csv diff --git a/compliance/data/parents-2015-12-26.csv b/compliance/m-15-13/data/parents-2015-12-26.csv similarity index 100% rename from compliance/data/parents-2015-12-26.csv rename to compliance/m-15-13/data/parents-2015-12-26.csv diff --git a/compliance/data/parents-2016-01-02.csv b/compliance/m-15-13/data/parents-2016-01-02.csv similarity index 100% rename from compliance/data/parents-2016-01-02.csv rename to compliance/m-15-13/data/parents-2016-01-02.csv diff --git a/compliance/data/parents-2016-01-08.csv b/compliance/m-15-13/data/parents-2016-01-08.csv similarity index 100% rename from compliance/data/parents-2016-01-08.csv rename to compliance/m-15-13/data/parents-2016-01-08.csv diff --git a/compliance/data/parents-2016-01-15.csv b/compliance/m-15-13/data/parents-2016-01-15.csv similarity index 100% rename from compliance/data/parents-2016-01-15.csv rename to compliance/m-15-13/data/parents-2016-01-15.csv diff --git a/compliance/data/parents-2016-01-23.csv b/compliance/m-15-13/data/parents-2016-01-23.csv similarity index 100% rename from compliance/data/parents-2016-01-23.csv rename to compliance/m-15-13/data/parents-2016-01-23.csv diff --git a/compliance/data/parents-2016-01-29.csv b/compliance/m-15-13/data/parents-2016-01-29.csv similarity index 100% rename from compliance/data/parents-2016-01-29.csv rename to compliance/m-15-13/data/parents-2016-01-29.csv diff --git a/compliance/data/parents-2016-02-04.csv b/compliance/m-15-13/data/parents-2016-02-04.csv similarity index 100% rename from compliance/data/parents-2016-02-04.csv rename to compliance/m-15-13/data/parents-2016-02-04.csv diff --git a/compliance/data/parents-2016-02-08.csv b/compliance/m-15-13/data/parents-2016-02-08.csv similarity index 100% rename from compliance/data/parents-2016-02-08.csv rename to compliance/m-15-13/data/parents-2016-02-08.csv diff --git a/compliance/data/parents-2016-02-17.csv b/compliance/m-15-13/data/parents-2016-02-17.csv similarity index 100% rename from compliance/data/parents-2016-02-17.csv rename to compliance/m-15-13/data/parents-2016-02-17.csv diff --git a/compliance/data/parents-2016-02-26.csv b/compliance/m-15-13/data/parents-2016-02-26.csv similarity index 100% rename from compliance/data/parents-2016-02-26.csv rename to compliance/m-15-13/data/parents-2016-02-26.csv diff --git a/compliance/data/parents-2016-03-03.csv b/compliance/m-15-13/data/parents-2016-03-03.csv similarity index 100% rename from compliance/data/parents-2016-03-03.csv rename to compliance/m-15-13/data/parents-2016-03-03.csv diff --git a/compliance/data/parents-2016-03-13.csv b/compliance/m-15-13/data/parents-2016-03-13.csv similarity index 100% rename from compliance/data/parents-2016-03-13.csv rename to compliance/m-15-13/data/parents-2016-03-13.csv diff --git a/compliance/data/parents-2016-03-18.csv b/compliance/m-15-13/data/parents-2016-03-18.csv similarity index 100% rename from compliance/data/parents-2016-03-18.csv rename to compliance/m-15-13/data/parents-2016-03-18.csv diff --git a/compliance/data/parents-2016-03-25.csv b/compliance/m-15-13/data/parents-2016-03-25.csv similarity index 100% rename from compliance/data/parents-2016-03-25.csv rename to compliance/m-15-13/data/parents-2016-03-25.csv diff --git a/compliance/data/parents-2016-04-01.csv b/compliance/m-15-13/data/parents-2016-04-01.csv similarity index 100% rename from compliance/data/parents-2016-04-01.csv rename to compliance/m-15-13/data/parents-2016-04-01.csv diff --git a/compliance/data/parents-2016-04-08.csv b/compliance/m-15-13/data/parents-2016-04-08.csv similarity index 100% rename from compliance/data/parents-2016-04-08.csv rename to compliance/m-15-13/data/parents-2016-04-08.csv diff --git a/compliance/data/parents-2016-04-15.csv b/compliance/m-15-13/data/parents-2016-04-15.csv similarity index 100% rename from compliance/data/parents-2016-04-15.csv rename to compliance/m-15-13/data/parents-2016-04-15.csv diff --git a/compliance/data/parents-2016-04-22.csv b/compliance/m-15-13/data/parents-2016-04-22.csv similarity index 100% rename from compliance/data/parents-2016-04-22.csv rename to compliance/m-15-13/data/parents-2016-04-22.csv diff --git a/compliance/data/parents-2016-04-29.csv b/compliance/m-15-13/data/parents-2016-04-29.csv similarity index 100% rename from compliance/data/parents-2016-04-29.csv rename to compliance/m-15-13/data/parents-2016-04-29.csv diff --git a/compliance/data/parents-2016-05-06.csv b/compliance/m-15-13/data/parents-2016-05-06.csv similarity index 100% rename from compliance/data/parents-2016-05-06.csv rename to compliance/m-15-13/data/parents-2016-05-06.csv diff --git a/compliance/data/parents-2016-05-13.csv b/compliance/m-15-13/data/parents-2016-05-13.csv similarity index 100% rename from compliance/data/parents-2016-05-13.csv rename to compliance/m-15-13/data/parents-2016-05-13.csv diff --git a/compliance/data/parents-2016-05-20.csv b/compliance/m-15-13/data/parents-2016-05-20.csv similarity index 100% rename from compliance/data/parents-2016-05-20.csv rename to compliance/m-15-13/data/parents-2016-05-20.csv diff --git a/compliance/data/parents-2016-05-27.csv b/compliance/m-15-13/data/parents-2016-05-27.csv similarity index 100% rename from compliance/data/parents-2016-05-27.csv rename to compliance/m-15-13/data/parents-2016-05-27.csv diff --git a/compliance/data/parents-2016-06-03.csv b/compliance/m-15-13/data/parents-2016-06-03.csv similarity index 100% rename from compliance/data/parents-2016-06-03.csv rename to compliance/m-15-13/data/parents-2016-06-03.csv diff --git a/compliance/data/parents-2016-07-05.csv b/compliance/m-15-13/data/parents-2016-07-05.csv similarity index 100% rename from compliance/data/parents-2016-07-05.csv rename to compliance/m-15-13/data/parents-2016-07-05.csv diff --git a/compliance/data/parents-2016-07-08.csv b/compliance/m-15-13/data/parents-2016-07-08.csv similarity index 100% rename from compliance/data/parents-2016-07-08.csv rename to compliance/m-15-13/data/parents-2016-07-08.csv diff --git a/compliance/data/parents-2016-07-15.csv b/compliance/m-15-13/data/parents-2016-07-15.csv similarity index 100% rename from compliance/data/parents-2016-07-15.csv rename to compliance/m-15-13/data/parents-2016-07-15.csv diff --git a/compliance/data/parents-2016-07-22.csv b/compliance/m-15-13/data/parents-2016-07-22.csv similarity index 100% rename from compliance/data/parents-2016-07-22.csv rename to compliance/m-15-13/data/parents-2016-07-22.csv diff --git a/compliance/data/parents-2016-07-29.csv b/compliance/m-15-13/data/parents-2016-07-29.csv similarity index 100% rename from compliance/data/parents-2016-07-29.csv rename to compliance/m-15-13/data/parents-2016-07-29.csv diff --git a/compliance/data/parents-2016-08-05.csv b/compliance/m-15-13/data/parents-2016-08-05.csv similarity index 100% rename from compliance/data/parents-2016-08-05.csv rename to compliance/m-15-13/data/parents-2016-08-05.csv diff --git a/compliance/data/parents-2016-08-12.csv b/compliance/m-15-13/data/parents-2016-08-12.csv similarity index 100% rename from compliance/data/parents-2016-08-12.csv rename to compliance/m-15-13/data/parents-2016-08-12.csv diff --git a/compliance/data/parents-2016-08-19.csv b/compliance/m-15-13/data/parents-2016-08-19.csv similarity index 100% rename from compliance/data/parents-2016-08-19.csv rename to compliance/m-15-13/data/parents-2016-08-19.csv diff --git a/compliance/data/parents-2016-08-26.csv b/compliance/m-15-13/data/parents-2016-08-26.csv similarity index 100% rename from compliance/data/parents-2016-08-26.csv rename to compliance/m-15-13/data/parents-2016-08-26.csv diff --git a/compliance/data/parents-2016-09-02.csv b/compliance/m-15-13/data/parents-2016-09-02.csv similarity index 100% rename from compliance/data/parents-2016-09-02.csv rename to compliance/m-15-13/data/parents-2016-09-02.csv diff --git a/compliance/data/parents-2016-09-09.csv b/compliance/m-15-13/data/parents-2016-09-09.csv similarity index 100% rename from compliance/data/parents-2016-09-09.csv rename to compliance/m-15-13/data/parents-2016-09-09.csv diff --git a/compliance/data/parents-2016-09-16.csv b/compliance/m-15-13/data/parents-2016-09-16.csv similarity index 100% rename from compliance/data/parents-2016-09-16.csv rename to compliance/m-15-13/data/parents-2016-09-16.csv diff --git a/compliance/data/parents-2016-09-23.csv b/compliance/m-15-13/data/parents-2016-09-23.csv similarity index 100% rename from compliance/data/parents-2016-09-23.csv rename to compliance/m-15-13/data/parents-2016-09-23.csv diff --git a/compliance/data/parents-2016-10-03.csv b/compliance/m-15-13/data/parents-2016-10-03.csv similarity index 100% rename from compliance/data/parents-2016-10-03.csv rename to compliance/m-15-13/data/parents-2016-10-03.csv diff --git a/compliance/data/parents-2016-10-07.csv b/compliance/m-15-13/data/parents-2016-10-07.csv similarity index 100% rename from compliance/data/parents-2016-10-07.csv rename to compliance/m-15-13/data/parents-2016-10-07.csv diff --git a/compliance/data/parents-2016-10-14.csv b/compliance/m-15-13/data/parents-2016-10-14.csv similarity index 100% rename from compliance/data/parents-2016-10-14.csv rename to compliance/m-15-13/data/parents-2016-10-14.csv diff --git a/compliance/data/parents-2016-10-21.csv b/compliance/m-15-13/data/parents-2016-10-21.csv similarity index 100% rename from compliance/data/parents-2016-10-21.csv rename to compliance/m-15-13/data/parents-2016-10-21.csv diff --git a/compliance/data/parents-2016-10-28.csv b/compliance/m-15-13/data/parents-2016-10-28.csv similarity index 100% rename from compliance/data/parents-2016-10-28.csv rename to compliance/m-15-13/data/parents-2016-10-28.csv diff --git a/compliance/data/parents-2016-11-04.csv b/compliance/m-15-13/data/parents-2016-11-04.csv similarity index 100% rename from compliance/data/parents-2016-11-04.csv rename to compliance/m-15-13/data/parents-2016-11-04.csv diff --git a/compliance/data/parents-2016-11-11.csv b/compliance/m-15-13/data/parents-2016-11-11.csv similarity index 100% rename from compliance/data/parents-2016-11-11.csv rename to compliance/m-15-13/data/parents-2016-11-11.csv diff --git a/compliance/data/parents-2016-11-18.csv b/compliance/m-15-13/data/parents-2016-11-18.csv similarity index 100% rename from compliance/data/parents-2016-11-18.csv rename to compliance/m-15-13/data/parents-2016-11-18.csv diff --git a/compliance/data/parents-2016-11-25.csv b/compliance/m-15-13/data/parents-2016-11-25.csv similarity index 100% rename from compliance/data/parents-2016-11-25.csv rename to compliance/m-15-13/data/parents-2016-11-25.csv diff --git a/compliance/data/parents-2016-12-02.csv b/compliance/m-15-13/data/parents-2016-12-02.csv similarity index 100% rename from compliance/data/parents-2016-12-02.csv rename to compliance/m-15-13/data/parents-2016-12-02.csv diff --git a/compliance/data/parents-2016-12-05.csv b/compliance/m-15-13/data/parents-2016-12-05.csv similarity index 100% rename from compliance/data/parents-2016-12-05.csv rename to compliance/m-15-13/data/parents-2016-12-05.csv diff --git a/compliance/data/parents-2016-12-08.csv b/compliance/m-15-13/data/parents-2016-12-08.csv similarity index 100% rename from compliance/data/parents-2016-12-08.csv rename to compliance/m-15-13/data/parents-2016-12-08.csv diff --git a/compliance/data/parents-2016-12-17.csv b/compliance/m-15-13/data/parents-2016-12-17.csv similarity index 100% rename from compliance/data/parents-2016-12-17.csv rename to compliance/m-15-13/data/parents-2016-12-17.csv diff --git a/compliance/data/parents-2016-12-21.csv b/compliance/m-15-13/data/parents-2016-12-21.csv similarity index 100% rename from compliance/data/parents-2016-12-21.csv rename to compliance/m-15-13/data/parents-2016-12-21.csv diff --git a/compliance/data/parents-2016-12-24.csv b/compliance/m-15-13/data/parents-2016-12-24.csv similarity index 100% rename from compliance/data/parents-2016-12-24.csv rename to compliance/m-15-13/data/parents-2016-12-24.csv diff --git a/compliance/data/parents-2016-12-26.csv b/compliance/m-15-13/data/parents-2016-12-26.csv similarity index 100% rename from compliance/data/parents-2016-12-26.csv rename to compliance/m-15-13/data/parents-2016-12-26.csv diff --git a/compliance/data/parents-2016-12-28.csv b/compliance/m-15-13/data/parents-2016-12-28.csv similarity index 100% rename from compliance/data/parents-2016-12-28.csv rename to compliance/m-15-13/data/parents-2016-12-28.csv diff --git a/compliance/data/parents-2016-12-31.csv b/compliance/m-15-13/data/parents-2016-12-31.csv similarity index 100% rename from compliance/data/parents-2016-12-31.csv rename to compliance/m-15-13/data/parents-2016-12-31.csv diff --git a/compliance/reports.py b/compliance/m-15-13/reports.py similarity index 95% rename from compliance/reports.py rename to compliance/m-15-13/reports.py index 177e22a..6c3e9dc 100644 --- a/compliance/reports.py +++ b/compliance/m-15-13/reports.py @@ -8,13 +8,13 @@ name = "All executive parent domains" compliance_stats(name, parents_only, utils.executive_only) -name ="All executive CFO Act parent domains" +name = "All executive CFO Act parent domains" compliance_stats(name, parents_only, utils.cfo_act_only) -name ="All executive CFO Act (minus DoD) parent domains" +name = "All executive CFO Act (minus DoD) parent domains" compliance_stats(name, parents_only, utils.cfo_act_only_sans_dod) -name ="All executive non-CFO-Act parent domains" +name = "All executive non-CFO-Act parent domains" compliance_stats(name, parents_only, utils.executive_non_cfo_act) @@ -24,13 +24,13 @@ name = "All executive subdomains" compliance_stats(name, subdomains, utils.executive_only) -name ="All executive CFO Act subdomains" +name = "All executive CFO Act subdomains" compliance_stats(name, subdomains, utils.cfo_act_only) -name ="All executive CFO Act (minus DoD) subdomains" +name = "All executive CFO Act (minus DoD) subdomains" compliance_stats(name, subdomains, utils.cfo_act_only_sans_dod) -name ="All executive non-CFO-Act subdomains" +name = "All executive non-CFO-Act subdomains" compliance_stats(name, subdomains, utils.executive_non_cfo_act) # agency = "General Services Administration" diff --git a/compliance/utils.py b/compliance/m-15-13/utils.py similarity index 100% rename from compliance/utils.py rename to compliance/m-15-13/utils.py From bd1536b90c0014d5143e0a773d019cb0d2fed916 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Wed, 20 Jun 2018 16:08:27 -0400 Subject: [PATCH 15/33] Add a FAQ answer about why HSTS is needed even when port 80 is off (#248) * add a FAQ answer about why HSTS is needed even when port 80 is off * rephrase from "turned off" to "disabled", for when it was never on --- pages/guide.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pages/guide.md b/pages/guide.md index 29f48ed..4e8640b 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -17,6 +17,7 @@ This page provides implementation guidance for agencies by the White House Offic * [Compliance FAQ](#compliance-faq) * [What protocols are covered by M-15-13?](#what-protocols-are-covered-by-m-15-13) * [Do I need to shut off port 80?](#do-i-need-to-shut-off-port-80) + * [If plain HTTP is entirely disabled on my server, do I still need HSTS?](#if-plain-http-is-entirely-disabled-on-my-server-do-i-still-need-hsts) * [What about network services that don't actually serve web content?](#what-about-network-services-that-dont-actually-serve-web-content) * [What does "all Federal agency domains or subdomains" include?](#what-does-all-federal-agency-domains-or-subdomains-include) * [What about domains that are only used to redirect visitors to other websites?](#what-about-domains-that-are-only-used-to-redirect-visitors-to-other-websites) @@ -100,6 +101,16 @@ Note that while connections to port 80 are insecure, even for redirects, the use HSTS mitigates the security impact of connections over port 80, while allowing agencies the flexibility to continue redirecting legacy clients or clients which have not yet received an HSTS policy for the target domain. +### If plain HTTP is entirely disabled on my server, do I still need HSTS? + +**Yes.** Disabling HTTP support is not sufficient to prevent attacks that downgrade web browsers to plain HTTP. + +During an attack, it doesn't matter whether the "real" server has disabled HTTP. If the client can be coaxed into initiating a plain HTTP connection -- such as when a user clicks an `http://` link, or types a URL into their browser manually -- then a local attacker can respond to that connection attempt from their own server and establish their own connection. + +HSTS specifically instructs web browsers to never initiate plain HTTP connections. If a user clicks an `http://` or types in an `http://` URL, HSTS causes the browser to first rewrite the URL to use `https://` before initiating the connection. + +For this reason, HSTS is necessary to effectively prevent downgrade attacks, even if plain HTTP connections are unsupported on the server. + ### What about network services that don't actually serve web content? M-15-13 covers any publicly accessible network service that responds to HTTPS or HTTP requests. This includes network services that don't serve content, but only return HTTP headers, or blank or insubstantial content. From 694440f45b38f18058a7961cb7cb06095f4dd779 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Thu, 21 Jun 2018 02:01:12 -0400 Subject: [PATCH 16/33] Update guide.md (#249) --- pages/guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/guide.md b/pages/guide.md index 4e8640b..078ef4a 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -107,7 +107,7 @@ HSTS mitigates the security impact of connections over port 80, while allowing a During an attack, it doesn't matter whether the "real" server has disabled HTTP. If the client can be coaxed into initiating a plain HTTP connection -- such as when a user clicks an `http://` link, or types a URL into their browser manually -- then a local attacker can respond to that connection attempt from their own server and establish their own connection. -HSTS specifically instructs web browsers to never initiate plain HTTP connections. If a user clicks an `http://` or types in an `http://` URL, HSTS causes the browser to first rewrite the URL to use `https://` before initiating the connection. +HSTS specifically instructs web browsers to never initiate plain HTTP connections. If a user clicks an `http://` link or types in an `http://` URL, HSTS causes the browser to first rewrite the URL to use `https://` before initiating the connection. For this reason, HSTS is necessary to effectively prevent downgrade attacks, even if plain HTTP connections are unsupported on the server. From 6941283871bb4a269c06d763fb950d85a853b538 Mon Sep 17 00:00:00 2001 From: Mike Lissner Date: Mon, 2 Jul 2018 09:10:18 -0700 Subject: [PATCH 17/33] Fix typo (#250) --- pages/technical.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/technical.md b/pages/technical.md index 546424f..c0408e6 100644 --- a/pages/technical.md +++ b/pages/technical.md @@ -50,7 +50,7 @@ In forward secret connections, the server and client create a temporary key for In TLS, forward secrecy is provided by choosing ciphersuites that include the [DHE](https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange) and [ECDHE](https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) key exchanges. -**Note:** Current drafts of TLS 1.3, the next version of TLS, require new connections to use employ forward secrecy by [removing support for static RSA and DH key exchange](https://tools.ietf.org/html/draft-ietf-tls-tls13-02#section-1.2). +**Note:** Current drafts of TLS 1.3, the next version of TLS, require new connections to use forward secrecy by [removing support for static RSA and DH key exchange](https://tools.ietf.org/html/draft-ietf-tls-tls13-02#section-1.2). * **[The Pulse HTTPS dashboard for .gov domains](https://pulse.cio.gov/https/domains/)** will note when a domain offers little or no forward secrecy. * **[https.cio.gov is configured](https://www.ssllabs.com/ssltest/analyze.html?d=https.cio.gov)** to offer robust forward secrecy. From c13321566b96e69f07db8ffed3ea6246e6920675 Mon Sep 17 00:00:00 2001 From: Anand Bhat Date: Sat, 1 Sep 2018 05:30:47 +1000 Subject: [PATCH 18/33] Update external links to use https (#251) * Use https links Use https links for caniuse.com * Use https link Use https link for nvlpubs.nist.gov * Fix dead link * Use https links Use https links for nvlpubs.nist.gov and social.technet.microsoft.com. Remove redirect for social.technet.microsoft.com * Replace dead link --- pages/certificates.md | 2 +- pages/guide.md | 2 +- pages/hsts.md | 6 +++--- pages/technical.md | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index f0195d5..ca66ea2 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -43,7 +43,7 @@ In general: * Agencies **[should immediately replace certificates signed with SHA-1](/technical-guidelines/#signature-algorithms)**, as browsers are quickly moving to remove support for the SHA-1 algorithm. Commercial CAs are forbidden from issuing them entirely as of January 1, 2016. -As a general matter, certificates from any commercial CA will meet the few [NIST technical requirements](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) that relate to certificates. +As a general matter, certificates from any commercial CA will meet the few [NIST technical requirements](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) that relate to certificates. ## What rules and oversight are certificate authorities subject to? diff --git a/pages/guide.md b/pages/guide.md index 078ef4a..b24aac3 100644 --- a/pages/guide.md +++ b/pages/guide.md @@ -97,7 +97,7 @@ HTTP redirects must use a response code in the 300's that can reliably cause HTT The use of error codes in the 400's or 500's **will not** satisfy this requirement. -Note that while connections to port 80 are insecure, even for redirects, the use of [HSTS](/hsts/]) will instruct supporting HTTP clients to automatically redirect themselves from port 80 to port 443, without attempting to connect to port 80 over the network. +Note that while connections to port 80 are insecure, even for redirects, the use of [HSTS](/hsts/) will instruct supporting HTTP clients to automatically redirect themselves from port 80 to port 443, without attempting to connect to port 80 over the network. HSTS mitigates the security impact of connections over port 80, while allowing agencies the flexibility to continue redirecting legacy clients or clients which have not yet received an HSTS policy for the target domain. diff --git a/pages/hsts.md b/pages/hsts.md index 393c671..009d4e1 100644 --- a/pages/hsts.md +++ b/pages/hsts.md @@ -6,7 +6,7 @@ permalink: /hsts/ description: "An overview of HTTP Strict Transport Security (HSTS), a lightweight standard that prevents privacy leaks and downgrade attacks." --- -**[HTTP Strict Transport Security](https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security)** (HSTS) is a simple and [widely supported](http://caniuse.com/#feat=stricttransportsecurity) standard to protect visitors by ensuring that their browsers _always_ connect to a website over HTTPS. HSTS exists to remove the need for the common, insecure practice of redirecting users from `http://` to `https://` URLs. +**[HTTP Strict Transport Security](https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security)** (HSTS) is a simple and [widely supported](https://caniuse.com/#feat=stricttransportsecurity) standard to protect visitors by ensuring that their browsers _always_ connect to a website over HTTPS. HSTS exists to remove the need for the common, insecure practice of redirecting users from `http://` to `https://` URLs. When a browser knows that a domain has enabled HSTS, it does two things: @@ -171,8 +171,8 @@ Here are some links to do that with other web servers: ## Resources -* [Browser support for HSTS](http://caniuse.com/#feat=stricttransportsecurity) +* [Browser support for HSTS](https://caniuse.com/#feat=stricttransportsecurity) * [HSTS web developer documentation](https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security) maintained by the Mozilla community * Chrome's [HSTS preload list](https://chromium.googlesource.com/chromium/src/+/master/net/http/transport_security_state_static.json), and their [submission form](https://hstspreload.org). -* ["Upgrading HTTPS in Mid-Air"](https://www.internetsociety.org/sites/default/files/01_4_0.pdf) - A paper analyzing the current detailed practice of HSTS and [HTTP Public Key Pinning](https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning), as of November 2014. +* ["Upgrading HTTPS in Mid-Air"](https://www.cs.princeton.edu/research/techreps/TR-986-15) - A paper analyzing the current detailed practice of HSTS and [HTTP Public Key Pinning](https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning), as of November 2014. * ["The first .gov domains hardcoded into your browser as all-HTTPS"](https://18f.gsa.gov/2015/02/09/the-first-gov-domains-hardcoded-into-your-browser-as-all-https/), by 18F. diff --git a/pages/technical.md b/pages/technical.md index c0408e6..6c0a1ad 100644 --- a/pages/technical.md +++ b/pages/technical.md @@ -25,7 +25,7 @@ SSL and TLS perform the same function, and TLS is a direct successor and replace The major versions of SSL/TLS in use today are: * **SSLv3:** [Released in 1996.](https://tools.ietf.org/html/rfc6101) **Considered to be insecure** after the [POODLE](https://www.openssl.org/~bodo/ssl-poodle.pdf) attack was published in 2014. Turning off SSLv3 effectively removes support for Internet Explorer 6. -* **TLSv1.0:** - [Released in 1999.](https://tools.ietf.org/html/rfc2246) Used widely today to support [some older clients](https://www.ssllabs.com/ssltest/clients.html), like IE8 and Android 4.3 and below. [NIST Special Publication 800-52](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) disallows TLSv1.0 for government-facing systems. +* **TLSv1.0:** - [Released in 1999.](https://tools.ietf.org/html/rfc2246) Used widely today to support [some older clients](https://www.ssllabs.com/ssltest/clients.html), like IE8 and Android 4.3 and below. [NIST Special Publication 800-52](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) disallows TLSv1.0 for government-facing systems. * **TLSv1.1:** - [Released in 2006.](https://tools.ietf.org/html/rfc4346) An improvement over TLSv1.0, but was quickly superseded by TLSv1.2. * **TLSv1.2:** - [Released in 2008.](https://tools.ietf.org/html/rfc5246) This is the strongest form of TLS today, and is widely supported by modern browsers. @@ -35,7 +35,7 @@ It is possible for an attacker to interfere with the negotiation process and att A downgrade attack can be prevented by using **[TLS Fallback SCSV](https://tools.ietf.org/html/rfc7507)**, a TLS extension proposed in 2014 and which is enabled by default in newer versions of OpenSSL. -For more details of NIST recommendations, read [NIST Special Publication 800-52](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf). +For more details of NIST recommendations, read [NIST Special Publication 800-52](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf). * **[The Pulse HTTPS dashboard for .gov domains](https://pulse.cio.gov/https/domains/)** will note when a domain still offers insecure SSLv3, or when a domain does not yet offer TLSv1.2. * **[https.cio.gov is configured](https://www.ssllabs.com/ssltest/analyze.html?d=https.cio.gov)** to support TLSv1.0, TLSv1.1, and TLSv1.2, and has TLS Fallback SCSV enabled. @@ -61,9 +61,9 @@ The HTTPS/TLS security model uses "certificates" to guarantee authenticity. Thes The certificate authority's trusted root certificate (which is included with your OS or browser) is used to sign an intermediary certificate, which is used to sign your website's certificate. There may be more than one intermediary certificate in the chain. A part of the signature process is computing a "hash" of the data included in the certificate. This can be done using a standard hashing algorithm, such as [SHA-1](https://en.wikipedia.org/wiki/SHA-1) or [SHA-2](https://en.wikipedia.org/wiki/SHA-2). -SHA-1 has been shown to have serious weaknesses, and so browser and OS providers like [Google](https://security.googleblog.com/2014/09/gradually-sunsetting-sha-1.html), [Microsoft](http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx), and [Mozilla](https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/) have announced timelines to deprecate SHA-1 in favor of the SHA-2 family of algorithms. +SHA-1 has been shown to have serious weaknesses, and so browser and OS providers like [Google](https://security.googleblog.com/2014/09/gradually-sunsetting-sha-1.html), [Microsoft](https://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-sha1-certificates.aspx), and [Mozilla](https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/) have announced timelines to deprecate SHA-1 in favor of the SHA-2 family of algorithms. -[NIST has disallowed SHA-1](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) for digital signature generation after 2013. +[NIST has disallowed SHA-1](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf) for digital signature generation after 2013. As of January 2016, commercial CAs are forbidden by most root programs from issuing a SHA-1 certificate. As such, obtaining a publicly trusted SHA-1 certificate is no longer feasible. In addition, site owners with an existing SHA-1 certificate should be aware that many browsers and OSes will be disabling SHA-1 support in early 2017. From 5369d23f850cdddcbbb61e24ee131a5a103fb89b Mon Sep 17 00:00:00 2001 From: LRL Date: Fri, 31 Aug 2018 16:15:06 -0400 Subject: [PATCH 19/33] fix fpki faq on certificates page (#253) * fix fpki faq on certificates page changed the links to point to fpki.idmanagement.gov pages updated to show that the mozilla application has been closed minor nit: there are non-USG operated publicly trusted root CAs that still create valid paths in some trust stores to federal pki issued certs. whether this is desirable or intentional is not addressed. * remove mozilla paragraph altogether --- pages/certificates.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index ca66ea2..06177eb 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -64,13 +64,11 @@ The Baseline Requirements only constrain CAs -- they do not constrain browser be No, not as of early 2016, and this is unlikely to change in the near future. -The [Federal PKI](https://www.idmanagement.gov/IDM/s/article_content_old?tag=a0Gt0000000SfwP) root is trusted by some browsers and operating systems, but is not contained in the [Mozilla Trusted Root Program](https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/). The Mozilla Trusted Root Program is used by Firefox, many Android devices, and a variety of other devices and operating systems. This means that the Federal PKI is not able to issue certificates for use in TLS/HTTPS that are trusted widely enough to secure a web service used by the general public. +The [Federal PKI](https://fpki.idmanagement.gov) root is trusted by some browsers and operating systems, but is not contained in the [Mozilla Trusted Root Program](https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/). The Mozilla Trusted Root Program is used by Firefox, many Android devices, and a variety of other devices and operating systems. This means that the Federal PKI is not able to issue certificates for use in TLS/HTTPS that are trusted widely enough to secure a web service used by the general public. -The Federal PKI has an [open application](https://bugzilla.mozilla.org/show_bug.cgi?id=478418) to the Mozilla Trusted Root Program. However, even if the Federal PKI's application is accepted, it will take a significant amount of time for the Federal PKI's root certificate to actually be shipped onto devices and propagate widely around the world. +The Federal PKI has [cross-certified other commercial CAs](https://fpki.idmanagement.gov/tools/fpkigraph/), which means their certificates will be trusted by clients that trust the Federal PKI. However, even when a publicly trusted commercial CA is cross-certified with the Federal PKI, they are expected to maintain complete separation between their publicly trusted certificates and their Federal PKI cross-certified certificates. -The Federal PKI has [cross-certified other agencies and commercial CAs](https://www.idmanagement.gov/IDM/s/article_content_old?tag=a0Gt0000000SfwR), which means their certificates will be trusted by clients that trust the Federal PKI. However, none of these roots are _publicly trusted_. Even when a publicly trusted commercial CA is cross-certified with the Federal PKI, they are expected to maintain complete separation between their publicly trusted certificates and their Federal PKI cross-certified certificates. - -As a result, there is not currently a viable way to obtain an individual certificate for use in TLS/HTTPS that is issued or trusted by the Federal PKI, and also trusted by the general public. +As a result, there is not currently a viable way to obtain a certificate for use in TLS/HTTPS that is issued or trusted by the Federal PKI, and also trusted by the general public. ## Are there federal restrictions on acceptable certificate authorities to use? From 7292e8dac24e2c0c26e844a5c473919645a8516a Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Mon, 17 Sep 2018 21:55:55 -0400 Subject: [PATCH 20/33] Update FAQ to clarify referrer behavior (#254) The origin-when-cross-origin Referrer-policy HTTP header (and meta tag) limits referrer information whether or not the request downgrades the URL scheme (https-to-http vs https-to-https; see examples at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#Directives). The existing language seems to imply that a third-party website that upgrades to HTTPS can expect to receive resource URLs in their referrers after they update to HTTPS, which is not the case. Here I propose new language to clarify what third parties should expect from the recommended referrer policy. --- pages/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/faq.md b/pages/faq.md index 49c2e71..e59aadf 100644 --- a/pages/faq.md +++ b/pages/faq.md @@ -87,9 +87,9 @@ However, this means that if a website migrates to HTTPS, any HTTP sites it links Website owners who wish to continue sending outbound referrer information to linked HTTP sites can use **[Referrer Policy](https://www.w3.org/TR/referrer-policy/)** to override browser default behavior, while retaining the privacy of HTTPS URLs. -To do this, websites **should use** the [`origin-when-cross-origin`](https://www.w3.org/TR/referrer-policy/#referrer-policy-origin-when-cross-origin) policy. This will allow supporting browsers to send **only the origin** as the `Referer` header when going from an HTTPS site to an HTTP site. +To do this, websites **should use** the [`origin-when-cross-origin`](https://www.w3.org/TR/referrer-policy/#referrer-policy-origin-when-cross-origin) policy. This will allow supporting browsers to send **only the origin** as the `Referer` header. This limited referral information applies even if both sites use HTTPS. -For example, if a user is on `https://agency.gov/help/aids.html` and clicks a link to `http://moreinformation.com`, then if `origin-when-cross-origin` is set, the browser will make an HTTP request to `http://moreinformation.com` with a `Referer` header of `https://agency.gov`. +For example, if a user is on `https://agency.gov/help/aids.html` and clicks a link to `https://moreinformation.com`, then if `origin-when-cross-origin` is set, the browser will make an HTTP request to `https://moreinformation.com` with a `Referer` header of `https://agency.gov`. The simplest way to set this policy is by including a `` tag in the body of the HTTPS website: From 75214df8874404f3a29a9dddadd38eff381d06a1 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Wed, 14 Nov 2018 17:19:55 -0500 Subject: [PATCH 21/33] tweak example to be more clear (#255) --- pages/hsts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/hsts.md b/pages/hsts.md index 009d4e1..ea8329f 100644 --- a/pages/hsts.md +++ b/pages/hsts.md @@ -75,7 +75,7 @@ For a user to take advantage of HSTS, their browser does have to see the HSTS he In addition, in many cases, **there may never be a first visit** to `https://domain.gov`. For example: * Many federal websites redirect directly from `http://domain.gov` to `https://www.domain.gov`. -* Many federal domains that are used solely for redirects will redirect from `http://source.gov` directly to `https://destination.gov`. +* Many federal domains that are used solely for redirects will redirect from `http://domain.gov` directly to `https://destination.gov`. In either case, `https://domain.gov` is never visited, meaning connecting clients will never see an HSTS policy with an `includeSubDomains` directive that applies to the whole zone. From 93e417a3cfbea309991ce52bc1e8c2244e895599 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 10 Dec 2018 13:57:29 -0500 Subject: [PATCH 22/33] make man-in-the-middle gender neutral --- pages/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/faq.md b/pages/faq.md index e59aadf..810ea52 100644 --- a/pages/faq.md +++ b/pages/faq.md @@ -26,7 +26,7 @@ For an in-depth introduction (no technical background required), check out the D When properly configured, an HTTPS connection guarantees three things: * **Confidentiality.** The visitor's connection is encrypted, obscuring URLs, cookies, and other sensitive metadata. -* **Authenticity.** The visitor is talking to the "real" website, and not to an impersonator or through a "man-in-the-middle". +* **Authenticity.** The visitor is talking to the "real" website, and not to an impersonator or through a person-in-the-middle. * **Integrity.** The data sent between the visitor and the website has not been tampered with or modified. A plain HTTP connection can be easily monitored, modified, and impersonated. @@ -87,7 +87,7 @@ However, this means that if a website migrates to HTTPS, any HTTP sites it links Website owners who wish to continue sending outbound referrer information to linked HTTP sites can use **[Referrer Policy](https://www.w3.org/TR/referrer-policy/)** to override browser default behavior, while retaining the privacy of HTTPS URLs. -To do this, websites **should use** the [`origin-when-cross-origin`](https://www.w3.org/TR/referrer-policy/#referrer-policy-origin-when-cross-origin) policy. This will allow supporting browsers to send **only the origin** as the `Referer` header. This limited referral information applies even if both sites use HTTPS. +To do this, websites **should use** the [`origin-when-cross-origin`](https://www.w3.org/TR/referrer-policy/#referrer-policy-origin-when-cross-origin) policy. This will allow supporting browsers to send **only the origin** as the `Referer` header. This limited referral information applies even if both sites use HTTPS. For example, if a user is on `https://agency.gov/help/aids.html` and clicks a link to `https://moreinformation.com`, then if `origin-when-cross-origin` is set, the browser will make an HTTP request to `https://moreinformation.com` with a `Referer` header of `https://agency.gov`. From f35a77ea9cf12d8f3cbc917750eec879e7657d24 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 10 Dec 2018 13:58:01 -0500 Subject: [PATCH 23/33] remove MITM reference, unneeded --- pages/mixed-content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/mixed-content.md b/pages/mixed-content.md index 2a3cfd4..43ac6dc 100644 --- a/pages/mixed-content.md +++ b/pages/mixed-content.md @@ -120,7 +120,7 @@ Some resources: ## Why do browsers block mixed content? -If mixed content were not blocked, an attacker could control the main website by conducting a MITM attack against any of its active resources. +If mixed content were not blocked, an attacker could control the main website by conducting an attack against any of its active resources. Even with passive content like images, attackers can manipulate what the page looks like, and so the yellow-lock icon is intended to communicate that security has been weakened and user confidence should be reduced. In addition, an attacker will be able to read any cookies for that domain which do have the `Secure` flag, and set cookies. From 3f2fc70aaf6a252a97c97c84a1521b358a67b2ee Mon Sep 17 00:00:00 2001 From: Andy Brody Date: Mon, 10 Dec 2018 15:51:44 -0500 Subject: [PATCH 24/33] Update CT section to include CAA and mandatory CT. - For the question of limiting which CAs can issue, there is now a much more responsive answer made possible by CAA. - Split out CT into a separate question on how to monitor / detect issuance. - Update CT language to reflect that CT is now mandatory in Chrome for new certificates. --- pages/certificates.md | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index 06177eb..99f3f40 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -14,6 +14,7 @@ Frequently asked questions and answers about HTTPS certificates and certificate * [Does the US government operate a publicly trusted certificate authority?](#does-the-us-government-operate-a-publicly-trusted-certificate-authority) * [Are there federal restrictions on acceptable certificate authorities to use?](#are-there-federal-restrictions-on-acceptable-certificate-authorities-to-use) * [Then how can I limit which CAs can issue certificates for a domain?](#then-how-can-i-limit-which-cas-can-issue-certificates-for-a-domain) +* [How can I find out when any certificate is issued for a domain?](#how-can–i–find-out-when-any-certificate–is-issued-for-a-domain) ## What are certificates and certificate authorities? @@ -82,18 +83,45 @@ In practice, federal agencies use a wide variety of publicly trusted commercial There is no simple and 100% effective way to force all browsers to only trust certificates for your domain that have been issued from a certain CA. In general, the strength of HTTPS on today's internet depends on the overall standards, competence, and accountability of the entire CA system. -However, domain owners can use **Certificate Transparency** to reduce the risk or impact of misissued or fraudulent certificates. +However, domain owners can use **DNS Certification Authority Authorization** to publish a list of approved CAs. -**[Certificate Transparency](https://en.wikipedia.org/wiki/Certificate_Transparency)** (CT) allows domain owners to **detect missuance of certificates after the fact**. +In addition, domain owners can use **Certificate Transparency** (see question below) to monitor and discover certificates issued by any CA. + +**[DNS Certification Authority Authorization](https://en.wikipedia.org/wiki/DNS_Certification_Authority_Authorization)** (CAA) allows domain owners to publish DNS records containing a list of the Certificate Authorities permitted to issue certificates for their domain. + +All major CAs participate in CAA and promise to verify CAA DNS records before issuing certificates. Each CA should refuse to issue certificates for a domain name that publishes a CAA record that excludes the CA. + +This is only a promise, so a non-compliant or compromised CA could still issue certificates for any domain name even in violation of CAA. But such mis-issuance would be more likely to be detected with CAA in place. + +The standard DNS is not secure, so CAA records could be suppressed or spoofed by an attacker in a privileged network position unless DNSSEC is in use by the domain owner and validated by each CA issuer. + +CAA can be paired with Certificate Transparency log monitoring to detect occurences of mis-issuance. + +#### CAA Resources + +* [Wikipedia entry](https://en.wikipedia.org/wiki/DNS_Certification_Authority_Authorization) for CAA +* [RFC 6844](https://tools.ietf.org/html/rfc6844), the standard for CAA +* [CAA Record Generator](https://sslmate.com/caa/) + +## How can I find out when any certificate is issued for a domain? + +Domain owners can use **Certificate Transparency** to promptly discover any certificates issued for a domain, whether legitimate or fraudulent. + +**[Certificate Transparency](https://en.wikipedia.org/wiki/Certificate_Transparency)** (CT) allows domain owners to **detect mis-issuance of certificates after the fact**. CT allows CAs to publish some or all of the publicly trusted certificates that they issue to one or more public logs. Multiple organizations run CT logs, and it is possible to automatically monitor the logs for any certificates that are issued for any domains of interest. Comodo has released an [open source](https://github.com/crtsh) Certificate Transparency log viewer that they operate at [crt.sh](https://crt.sh). For example, it is possible to see [all recent certificates for whitehouse.gov](https://crt.sh/?q=whitehouse.gov), and [details of specific certificates](https://crt.sh/?id=7976268). -The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. Certificate Transparency is not currently a requirement for CAs -- however, as the use of CT increases, so does the viability of requiring CT for publicly issued certificates. +The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. [Google Chrome requires Certificate Transparency for all new certificates](https://groups.google.com/a/chromium.org/forum/#!msg/ct-policy/wHILiYf31DE/iMFmpMEkAQAJ) issued after 30 April 2018. As a result, most CAs now submit new certificates to CT logs by default. + +However, a CA may still issue new certificates without disclosing them to a CT log. These certificates will not be trusted by Chrome but they may be trusted by other browsers. + +Chrome also exempts private CAs from the transparency rules, so private CAs that do not chain up to any public root may still issue certificates without submitting them to CT logs. #### Certificate Transparency Resources * [Google CT FAQ](https://www.certificate-transparency.org/faq) * [RFC 6962](https://tools.ietf.org/html/rfc6962), the experimental standard for CT * [Wikipedia entry](https://en.wikipedia.org/wiki/Certificate_Transparency) for CT +* [Cert Spotter](https://github.com/SSLMate/certspotter), an open source CT log monitor From 1ed013de7c3179cbf0b4dbbb4b8cc668c26dca76 Mon Sep 17 00:00:00 2001 From: Andy Brody Date: Wed, 19 Dec 2018 17:22:59 -0500 Subject: [PATCH 25/33] Add Safari CT policy. --- pages/certificates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index 99f3f40..9cee484 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -113,9 +113,9 @@ CT allows CAs to publish some or all of the publicly trusted certificates that t Comodo has released an [open source](https://github.com/crtsh) Certificate Transparency log viewer that they operate at [crt.sh](https://crt.sh). For example, it is possible to see [all recent certificates for whitehouse.gov](https://crt.sh/?q=whitehouse.gov), and [details of specific certificates](https://crt.sh/?id=7976268). -The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. [Google Chrome requires Certificate Transparency for all new certificates](https://groups.google.com/a/chromium.org/forum/#!msg/ct-policy/wHILiYf31DE/iMFmpMEkAQAJ) issued after 30 April 2018. As a result, most CAs now submit new certificates to CT logs by default. +The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. [Google Chrome requires Certificate Transparency](https://groups.google.com/a/chromium.org/forum/#!msg/ct-policy/wHILiYf31DE/iMFmpMEkAQAJ) for all new certificates issued after 30 April 2018. [Apple Safari requires Certificate Transparency](https://support.apple.com/en-us/HT205280) for all new certificates issued after 15 October 2018. As a result, most CAs now submit new certificates to CT logs by default. -However, a CA may still issue new certificates without disclosing them to a CT log. These certificates will not be trusted by Chrome but they may be trusted by other browsers. +However, a CA may still issue new certificates without disclosing them to a CT log. These certificates will not be trusted by Chrome or Safari, but they may be trusted by other browsers. Chrome also exempts private CAs from the transparency rules, so private CAs that do not chain up to any public root may still issue certificates without submitting them to CT logs. From 7994e1f583378a91c15bec82c55aceea49428de4 Mon Sep 17 00:00:00 2001 From: Andy Brody Date: Wed, 19 Dec 2018 17:29:44 -0500 Subject: [PATCH 26/33] Add link to FPKI page on CT. --- pages/certificates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/certificates.md b/pages/certificates.md index 9cee484..1b134f9 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -125,3 +125,4 @@ Chrome also exempts private CAs from the transparency rules, so private CAs that * [RFC 6962](https://tools.ietf.org/html/rfc6962), the experimental standard for CT * [Wikipedia entry](https://en.wikipedia.org/wiki/Certificate_Transparency) for CT * [Cert Spotter](https://github.com/SSLMate/certspotter), an open source CT log monitor +* [U.S. Federal PKI page on Chrome CT enforcement](https://fpki.idmanagement.gov/announcements/chromect/) From 7615277fb2edb808f90d46f7c21b927037c1978a Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 31 Dec 2018 14:48:38 -0800 Subject: [PATCH 27/33] update and lock deps (#258) --- Gemfile.lock | 42 +- package-lock.json | 5151 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 5177 insertions(+), 16 deletions(-) create mode 100644 package-lock.json diff --git a/Gemfile.lock b/Gemfile.lock index 111f80e..bc9c314 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,41 +4,51 @@ GEM addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) colorator (1.1.0) - ffi (1.9.18) + concurrent-ruby (1.1.4) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + ffi (1.9.25) forwardable-extended (2.6.0) - jekyll (3.6.2) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.5) addressable (~> 2.4) colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) + jekyll-watch (~> 2.0) kramdown (~> 1.14) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (>= 1.7, < 3) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-sass-converter (1.5.1) + jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-watch (1.5.1) + jekyll-watch (2.1.2) listen (~> 3.0) - kramdown (1.16.2) - liquid (4.0.0) + kramdown (1.17.0) + liquid (4.0.1) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) mercenary (0.3.6) - pathutil (0.16.1) + pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.0.1) - rb-fsevent (0.10.2) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) + public_suffix (3.0.3) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) redcarpet (3.4.0) - rouge (2.2.1) + rouge (3.3.0) ruby_dep (1.5.0) safe_yaml (1.0.4) - sass (3.5.4) + sass (3.7.2) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) @@ -53,4 +63,4 @@ DEPENDENCIES rouge BUNDLED WITH - 1.15.4 + 1.16.2 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ead0448 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5151 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@gulp-sourcemaps/identity-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", + "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", + "requires": { + "acorn": "^5.0.3", + "css": "^2.2.1", + "normalize-path": "^2.1.1", + "source-map": "^0.6.0", + "through2": "^2.0.3" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + } + }, + "@types/node": { + "version": "8.10.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.29.tgz", + "integrity": "sha512-zbteaWZ2mdduacm0byELwtRyhYE40aK+pAanQk415gr1eRuu67x7QGOLmn8jz5zI8LDK7d0WI/oT6r5Trz4rzQ==" + }, + "JSONStream": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", + "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "requires": { + "acorn": "^5.0.0" + } + }, + "acorn-node": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", + "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", + "requires": { + "acorn": "^5.7.1", + "acorn-dynamic-import": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-foreach": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-foreach/-/array-foreach-1.0.2.tgz", + "integrity": "sha1-zTbkLw9IIQjEBrNcNhKolwsvzOo=" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "requires": { + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", + "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "~1.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "requires": { + "pako": "~0.2.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cached-path-relative": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classlist-polyfill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", + "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + } + } + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "^0.10.9" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" + }, + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "requires": { + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + }, + "detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "requires": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "domready": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", + "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "requires": { + "readable-stream": "~1.1.9" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elem-dataset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/elem-dataset/-/elem-dataset-1.1.1.tgz", + "integrity": "sha1-GPB/p/xx69SbD59jgZywPIJ2V3o=" + }, + "element-closest": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/element-closest/-/element-closest-2.0.2.tgz", + "integrity": "sha1-cqdAoQdFM4LijfnOXbtajfD5Zuw=" + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "requires": { + "once": "~1.3.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.46", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", + "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" + }, + "flagged-respawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "requires": { + "globule": "~0.1.0" + } + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "requires": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "requires": { + "gaze": "^0.5.1" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "requires": { + "find-index": "^0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "requires": { + "natives": "^1.1.0" + } + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "requires": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + } + }, + "gulp-sass": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", + "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "requires": { + "gulp-util": "^3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-sourcemaps": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", + "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", + "requires": { + "@gulp-sourcemaps/identity-map": "1.X", + "@gulp-sourcemaps/map-sources": "1.X", + "acorn": "5.X", + "convert-source-map": "1.X", + "css": "2.X", + "debug-fabulous": "1.X", + "detect-newline": "2.X", + "graceful-fs": "4.X", + "source-map": "~0.6.0", + "strip-bom-string": "1.X", + "through2": "2.X" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "requires": { + "JSONStream": "^1.0.3", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyboardevent-key-polyfill": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", + "integrity": "sha1-ijGdjkWhMXL8pWKGNy+QwdTHAUw=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "labeled-stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", + "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", + "requires": { + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" + } + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "matches-selector": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", + "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==" + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memoizee": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", + "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", + "requires": { + "d": "1", + "es5-ext": "^0.10.45", + "es6-weak-map": "^2.0.2", + "event-emitter": "^0.3.5", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "^0.1.5" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "module-deps": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "requires": { + "duplexer2": "0.0.2" + } + }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natives": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.5.tgz", + "integrity": "sha512-1pJ+02gl2KJgCPFtpZGtuD4lGSJnIZvvFHCQTOeDRMSXjfu2GmYWuhI8NFMA4W2I5NNFRbfy/YCiVt4CgNpP8A==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } + } + }, + "node-sass": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "requires": { + "globule": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "requires": { + "wrappy": "1" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "requires": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + } + } + }, + "pbkdf2": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.2", + "resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "requires": { + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "receptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/receptor/-/receptor-1.0.0.tgz", + "integrity": "sha1-v1RHfgOH5Evr84VRILvaWt6gj4s=", + "requires": { + "element-closest": "^2.0.1", + "keyboardevent-key-polyfill": "^1.0.2", + "matches-selector": "^1.0.0", + "object-assign": "^4.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-id-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz", + "integrity": "sha1-MSZiS4h0idqPwK6IljL4QTrGw+w=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "^7.0.5" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + }, + "dependencies": { + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + } + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "requires": { + "acorn-node": "^1.2.0" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "requires": { + "os-homedir": "^1.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "requires": { + "process": "~0.11.0" + } + }, + "timers-ext": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", + "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", + "requires": { + "es5-ext": "~0.10.14", + "next-tick": "1" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "requires": { + "glob": "^7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "undeclared-identifiers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", + "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "requires": { + "acorn-node": "^1.3.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "uswds": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/uswds/-/uswds-1.6.8.tgz", + "integrity": "sha512-W0IFpBP7ycOzqxrSJ7B2j8KGEm0HcUZBIXmhmDeHW122jRMfHHwuPBP6vgh78IgkSv0mH3900Fa5XumkjpSBxg==", + "requires": { + "@types/node": "^8.5.5", + "array-filter": "^1.0.0", + "array-foreach": "^1.0.2", + "browserify": "^13.0.0", + "classlist-polyfill": "^1.0.3", + "domready": "^1.0.8", + "elem-dataset": "^1.1.1", + "lodash.debounce": "^4.0.7", + "object-assign": "^4.1.1", + "receptor": "^1.0.0", + "resolve-id-refs": "^0.1.0", + "typescript": "^2.4.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "requires": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "requires": { + "source-map": "^0.5.1" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } +} From 8a8cda3073714859fe892dcf3667c43c0adb5bde Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Mon, 31 Dec 2018 17:54:22 -0500 Subject: [PATCH 28/33] tweak language and acknowledge other Apple platforms --- pages/certificates.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/certificates.md b/pages/certificates.md index 1b134f9..dd0f8bf 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -95,7 +95,7 @@ This is only a promise, so a non-compliant or compromised CA could still issue c The standard DNS is not secure, so CAA records could be suppressed or spoofed by an attacker in a privileged network position unless DNSSEC is in use by the domain owner and validated by each CA issuer. -CAA can be paired with Certificate Transparency log monitoring to detect occurences of mis-issuance. +CAA can be paired with Certificate Transparency log monitoring to detect occurrences of mis-issuance. #### CAA Resources @@ -113,11 +113,11 @@ CT allows CAs to publish some or all of the publicly trusted certificates that t Comodo has released an [open source](https://github.com/crtsh) Certificate Transparency log viewer that they operate at [crt.sh](https://crt.sh). For example, it is possible to see [all recent certificates for whitehouse.gov](https://crt.sh/?q=whitehouse.gov), and [details of specific certificates](https://crt.sh/?id=7976268). -The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. [Google Chrome requires Certificate Transparency](https://groups.google.com/a/chromium.org/forum/#!msg/ct-policy/wHILiYf31DE/iMFmpMEkAQAJ) for all new certificates issued after 30 April 2018. [Apple Safari requires Certificate Transparency](https://support.apple.com/en-us/HT205280) for all new certificates issued after 15 October 2018. As a result, most CAs now submit new certificates to CT logs by default. +The strength of Certificate Transparency increases as more CAs publish more certificates to public CT logs. [Google Chrome requires Certificate Transparency](https://groups.google.com/a/chromium.org/forum/#!msg/ct-policy/wHILiYf31DE/iMFmpMEkAQAJ) for all new certificates issued after 30 April 2018. [Apple platforms, including Safari, require Certificate Transparency](https://support.apple.com/en-us/HT205280) for all new certificates issued after 15 October 2018. As a result, most CAs now submit new certificates to CT logs by default. However, a CA may still issue new certificates without disclosing them to a CT log. These certificates will not be trusted by Chrome or Safari, but they may be trusted by other browsers. -Chrome also exempts private CAs from the transparency rules, so private CAs that do not chain up to any public root may still issue certificates without submitting them to CT logs. +Chrome also exempts private CAs from these transparency rules, so private CAs that do not chain up to any public root may still issue certificates without submitting them to CT logs. #### Certificate Transparency Resources From e6030eb9da351f990cbf5f433495998aea03fffe Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Thu, 15 Aug 2019 21:47:40 -0400 Subject: [PATCH 29/33] Updating EV cert language (#260) EV certificates no longer have the organization name generally appear in the browser bar. --- pages/certificates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/certificates.md b/pages/certificates.md index dd0f8bf..a5a2dac 100644 --- a/pages/certificates.md +++ b/pages/certificates.md @@ -38,7 +38,7 @@ There are many kinds of certificates in use in the federal government today, and In general: -* "Domain Validation" (DV) certificates are usually less expensive and more amenable to automation than "Extended Validation" (EV) certificates. EV certificates generally result in the domain owner's name appearing in the browser URL bar visitors see. **Ordinary DV certificates are completely acceptable for government use.** +* "Domain Validation" (DV) certificates are usually less expensive and more amenable to automation than "Extended Validation" (EV) certificates. **Ordinary DV certificates are completely acceptable for government use.** * Certificates can be valid for anywhere from years to days. In general, **shorter-lived certificates offer a better security posture**, since the impact of key compromise is less severe. Automating the issuance and renewal of certificates is an overall best practice, and can make the adoption of shorter-lived certificates more practical. From 8f37fa4b8aa4ea72efc278b96609baf5285aa5d2 Mon Sep 17 00:00:00 2001 From: Eric Mill Date: Fri, 12 Mar 2021 07:27:40 -0800 Subject: [PATCH 30/33] Updating Node and Gulp for v12 (#263) * update gulp to v4 and node to v12 * update bundler to 2.2 --- .gitignore | 1 + Gemfile.lock | 2 +- gulpfile.js | 29 +- manifest.yml | 5 - package-lock.json | 5653 ++++++++++++++++++++++++++++++--------------- package.json | 7 +- 6 files changed, 3852 insertions(+), 1845 deletions(-) delete mode 100644 manifest.yml diff --git a/.gitignore b/.gitignore index 1a98119..d8c5a50 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ node_modules /compliance/*/cache /compliance/*/data /compliance/*/*.gz +.bundle diff --git a/Gemfile.lock b/Gemfile.lock index bc9c314..3824496 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -63,4 +63,4 @@ DEPENDENCIES rouge BUNDLED WITH - 1.16.2 + 2.2.14 diff --git a/gulpfile.js b/gulpfile.js index 990709d..5d99d3d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,22 +2,29 @@ const path = require('path'); const gulp = require('gulp'); -const gutil = require('gulp-util'); const sass = require('gulp-sass'); const sourcemaps = require('gulp-sourcemaps'); const exec = require('child_process').exec; const PORT = process.env.PORT || '8000'; + const USWDS_DIST = 'node_modules/uswds/dist'; const USWDS_DIST_DIR = path.join(__dirname, ...USWDS_DIST.split('/')); +const PROJECT_SASS_SRC = "./assets/sass/**/*.scss"; +const PROJECT_CSS_DEST = './assets/css' + +const PROJECT_ASSETS_SRC = `${USWDS_DIST}/@(js|fonts|img)/**/**` +const PROJECT_ASSETS_DEST = './assets/vendor/uswds' + + gulp.task('copy-uswds-assets', () => { - return gulp.src(`${USWDS_DIST}/@(js|fonts|img)/**/**`) - .pipe(gulp.dest('./assets/vendor/uswds')); + return gulp.src(PROJECT_ASSETS_SRC) + .pipe(gulp.dest(PROJECT_ASSETS_DEST)); }); -gulp.task('sass', () => { - return gulp.src('./assets/sass/**/*.scss') +gulp.task('build-sass', () => { + return gulp.src(PROJECT_SASS_SRC) .pipe(sourcemaps.init()) .pipe(sass({ includePaths: [ @@ -25,11 +32,15 @@ gulp.task('sass', () => { ] }).on('error', sass.logError)) .pipe(sourcemaps.write()) - .pipe(gulp.dest('./assets/css')); + .pipe(gulp.dest(PROJECT_CSS_DEST)); }); -gulp.task('watch', ['default'], () => { - gulp.watch('./assets/sass/**/*.scss', ['sass']); +/** entry points **/ + +// gulp.task('init', gulp.series('copy-uswds-assets')); + +gulp.task('watch', () => { + gulp.watch(PROJECT_SASS_SRC, gulp.series('copy-uswds-assets','build-sass')); }); -gulp.task('default', ['sass', 'copy-uswds-assets']); +gulp.task('default', gulp.series('copy-uswds-assets', 'build-sass')); diff --git a/manifest.yml b/manifest.yml deleted file mode 100644 index 2d023ab..0000000 --- a/manifest.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -applications: -- name: https-site - memory: 128M - buildpack: staticfile_buildpack diff --git a/package-lock.json b/package-lock.json index ead0448..426aeff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,22 +2,286 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz", + "integrity": "sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog==" + }, + "@babel/core": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", + "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.10", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz", + "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==" + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, "@gulp-sourcemaps/identity-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", - "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", "requires": { - "acorn": "^5.0.3", - "css": "^2.2.1", - "normalize-path": "^2.1.1", + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", "source-map": "^0.6.0", - "through2": "^2.0.3" + "through2": "^3.0.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } } } }, @@ -28,17 +292,96 @@ "requires": { "normalize-path": "^2.0.1", "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, "@types/node": { - "version": "8.10.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.29.tgz", - "integrity": "sha512-zbteaWZ2mdduacm0byELwtRyhYE40aK+pAanQk415gr1eRuu67x7QGOLmn8jz5zI8LDK7d0WI/oT6r5Trz4rzQ==" + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "@types/unist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", + "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" + }, + "@types/vfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", + "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", + "requires": { + "@types/node": "*", + "@types/unist": "*", + "@types/vfile-message": "*" + } + }, + "@types/vfile-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", + "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", + "requires": { + "vfile-message": "*" + } }, "JSONStream": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", - "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "requires": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -50,37 +393,57 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "requires": { - "acorn": "^5.0.0" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } } }, - "acorn-node": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", - "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { - "acorn": "^5.7.1", - "acorn-dynamic-import": "^3.0.0", - "xtend": "^4.0.1" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + } } }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "amdefine": { @@ -88,6 +451,14 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "requires": { + "ansi-wrap": "^0.1.0" + } + }, "ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -102,15 +473,45 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } }, "ansi-wrap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "requires": { + "buffer-equal": "^1.0.0" + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -128,35 +529,14 @@ "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -164,21 +544,32 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -199,21 +590,64 @@ "resolved": "https://registry.npmjs.org/array-foreach/-/array-foreach-1.0.2.tgz", "integrity": "sha1-zTbkLw9IIQjEBrNcNhKolwsvzOo=" }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } }, "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", @@ -224,6 +658,11 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -233,20 +672,29 @@ } }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "requires": { + "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { @@ -275,11 +723,40 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, "async-foreach": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "requires": { + "async-done": "^1.2.2" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -290,15 +767,50 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" }, "balanced-match": { "version": "1.0.0", @@ -356,23 +868,31 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, "requires": { "tweetnacl": "^0.14.3" } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } }, "block-stream": { "version": "0.0.9", @@ -383,9 +903,9 @@ } }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "brace-expansion": { "version": "1.1.11", @@ -442,50 +962,44 @@ } }, "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } + "resolve": "^1.17.0" } }, "browserify": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", - "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", + "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", "requires": { "JSONStream": "^1.0.3", "assert": "^1.4.0", "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.1.2", - "buffer": "^4.1.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", "cached-path-relative": "^1.0.0", - "concat-stream": "~1.5.1", + "concat-stream": "^1.6.0", "console-browserify": "^1.1.0", "constants-browserify": "~1.0.0", "crypto-browserify": "^3.0.0", "defined": "^1.0.0", "deps-sort": "^2.0.0", - "domain-browser": "~1.1.0", + "domain-browser": "^1.2.0", "duplexer2": "~0.1.2", - "events": "~1.1.0", + "events": "^2.0.0", "glob": "^7.1.0", "has": "^1.0.0", "htmlescape": "^1.1.0", - "https-browserify": "~0.0.0", + "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.0.0", "labeled-stream-splicer": "^2.0.0", - "module-deps": "^4.0.8", - "os-browserify": "~0.1.1", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", "parents": "^1.0.1", "path-browserify": "~0.0.0", "process": "~0.11.0", @@ -497,82 +1011,29 @@ "shasum": "^1.0.0", "shell-quote": "^1.6.1", "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "~0.10.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", "subarg": "^1.0.0", "syntax-error": "^1.1.1", "through2": "^2.0.0", "timers-browserify": "^1.0.1", - "tty-browserify": "~0.0.0", + "tty-browserify": "0.0.1", "url": "~0.11.0", "util": "~0.10.1", - "vm-browserify": "~0.0.1", + "vm-browserify": "^1.0.0", "xtend": "^4.0.0" }, "dependencies": { - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "browserify-aes": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { "buffer-xor": "^1.0.3", @@ -605,53 +1066,81 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "requires": { - "pako": "~0.2.0" + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" } }, "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } + "ieee754": "^1.1.4" } }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -662,11 +1151,6 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -689,14 +1173,49 @@ } }, "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=" + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, "camelcase-keys": { "version": "2.1.0", @@ -705,23 +1224,77 @@ "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + } } }, + "caniuse-lite": { + "version": "1.0.30001198", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001198.tgz", + "integrity": "sha512-r5GGgESqOPZzwvdLVER374FpQu2WluCF1Z2DSiFJ89KSmGjT0LVKjgv4NcAqHmGWF9ihNpqRI9KXO9Ex4sKsgA==" + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + }, "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-html4": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "cipher-base": { @@ -759,6 +1332,11 @@ "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=" }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -770,25 +1348,58 @@ } }, "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "requires": { + "is-regexp": "^2.0.0" + } }, "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -798,11 +1409,29 @@ "object-visit": "^1.0.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, "combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", @@ -816,23 +1445,23 @@ "dependencies": { "convert-source-map": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" } } }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", @@ -840,47 +1469,20 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - } + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, "console-control-strings": { "version": "1.1.0", @@ -893,9 +1495,9 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { "safe-buffer": "~5.1.1" } @@ -905,23 +1507,61 @@ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, "create-hash": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { "cipher-base": "^1.0.1", @@ -933,7 +1573,7 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { "cipher-base": "^1.0.3", @@ -951,17 +1591,6 @@ "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } } }, "crypto-browserify": { @@ -983,20 +1612,28 @@ } }, "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "requires": { - "inherits": "^2.0.3", + "inherits": "^2.0.4", "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" + "source-map-resolve": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } } } }, @@ -1009,13 +1646,19 @@ } }, "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1024,16 +1667,6 @@ "assert-plus": "^1.0.0" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1053,22 +1686,17 @@ }, "dependencies": { "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, @@ -1077,17 +1705,46 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + } + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "clone": "^1.0.2" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1132,6 +1789,31 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1142,26 +1824,21 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" - }, "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "requires": { "JSONStream": "^1.0.3", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -1178,52 +1855,150 @@ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" }, "detective": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", - "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "requires": { - "acorn": "^5.2.1", - "defined": "^1.0.0" + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" } }, "diffie-hellman": { "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } } }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } }, "domready": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=" }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { - "readable-stream": "~1.1.9" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" } }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, + "electron-to-chromium": { + "version": "1.3.686", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.686.tgz", + "integrity": "sha512-SOJT3m00NX/gT3sD6E3PcZX6u3+zUmQq4+yp8QCKLOwf2ECnmh9eAY+eonhC/AAu5Gg2WrtUU2m7/+e85O0l6A==" + }, "elem-dataset": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/elem-dataset/-/elem-dataset-1.1.1.tgz", @@ -1235,28 +2010,45 @@ "integrity": "sha1-cqdAoQdFM4LijfnOXbtajfD5Zuw=" }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "~1.3.0" + "once": "^1.4.0" } }, - "error-ex": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", @@ -1265,13 +2057,13 @@ } }, "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "requires": { "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" } }, "es6-iterator": { @@ -1285,30 +2077,40 @@ } }, "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "^1.0.1", + "ext": "^1.1.2" } }, "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "requires": { "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", @@ -1319,9 +2121,9 @@ } }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" }, "evp_bytestokey": { "version": "1.0.3", @@ -1333,12 +2135,12 @@ } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -1347,26 +2149,27 @@ }, "dependencies": { "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } } } }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "requires": { + "clone-regexp": "^2.1.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -1407,6 +2210,21 @@ "homedir-polyfill": "^1.0.1" } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1496,24 +2314,118 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", "requires": { "ansi-gray": "^0.1.1", "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", "time-stamp": "^1.0.0" } }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true }, "fill-range": { "version": "4.0.0", @@ -1536,11 +2448,6 @@ } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" - }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1551,20 +2458,20 @@ } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", + "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" } }, "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "requires": { "expand-tilde": "^2.0.2", "is-plain-object": "^2.0.3", @@ -1573,15 +2480,44 @@ "parse-filepath": "^1.0.1" } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" - }, "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } }, "for-in": { "version": "1.0.2", @@ -1602,12 +2538,12 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -1619,27 +2555,39 @@ "map-cache": "^0.2.2" } }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - } } }, "function-bind": { @@ -1660,23 +2608,21 @@ "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - } } }, "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "requires": { - "globule": "~0.1.0" + "globule": "^1.0.0" } }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -1687,15 +2633,39 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + }, + "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } }, "get-value": { "version": "2.0.6", @@ -1711,65 +2681,71 @@ } }, "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { + "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "is-extglob": "^2.1.0" } } } }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "requires": { - "gaze": "^0.5.1" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", "requires": { - "find-index": "^0.1.1" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" } }, "global-modules": { @@ -1794,118 +2770,148 @@ "which": "^1.2.14" } }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=" + }, "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" } }, "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "requires": { "sparkles": "^1.0.0" } }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "requires": { - "natives": "^1.1.0" + "minimist": "^1.2.5" } }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + } + } } }, "gulp-sass": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", - "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.1.0.tgz", + "integrity": "sha512-xIiwp9nkBLcJDpmYHbEHdoWZv+j+WtYaKD6Zil/67F3nrAaZtWYN5mDwerdo7EvcdBenSAj7Xb2hx2DqURLGdA==", "requires": { - "gulp-util": "^3.0", - "lodash.clonedeep": "^4.3.2", + "chalk": "^2.3.0", + "lodash": "^4.17.11", "node-sass": "^4.8.3", + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "strip-ansi": "^4.0.0", "through2": "^2.0.0", "vinyl-sourcemaps-apply": "^0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "gulp-sourcemaps": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", - "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", - "requires": { - "@gulp-sourcemaps/identity-map": "1.X", - "@gulp-sourcemaps/map-sources": "1.X", - "acorn": "5.X", - "convert-source-map": "1.X", - "css": "2.X", - "debug-fabulous": "1.X", - "detect-newline": "2.X", - "graceful-fs": "4.X", - "source-map": "~0.6.0", - "strip-bom-string": "1.X", - "through2": "2.X" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "requires": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" }, "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1913,31 +2919,6 @@ } } }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - } - }, "gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", @@ -1952,11 +2933,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { - "ajv": "^5.1.0", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, @@ -1976,13 +2957,15 @@ "ansi-regex": "^2.0.0" } }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "requires": { - "sparkles": "^1.0.0" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "has-unicode": { "version": "2.0.1", @@ -2019,18 +3002,36 @@ } }, "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -2047,23 +3048,53 @@ } }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "requires": { "parse-passwd": "^1.0.0" } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" }, "htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -2075,32 +3106,63 @@ } }, "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "requires": { - "repeating": "^2.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" }, "inflight": { "version": "1.0.6", @@ -2112,14 +3174,14 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inline-source-map": { "version": "0.6.2", @@ -2130,9 +3192,9 @@ } }, "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "requires": { "JSONStream": "^1.0.3", "acorn-node": "^1.5.2", @@ -2144,52 +3206,12 @@ "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "invert-kv": { "version": "1.0.0", @@ -2223,22 +3245,49 @@ } } }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "requires": { - "builtin-modules": "^1.0.0" + "has": "^1.0.3" } }, "is-data-descriptor": { @@ -2259,6 +3308,11 @@ } } }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -2276,6 +3330,11 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -2287,12 +3346,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -2303,13 +3359,23 @@ } }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "^2.1.1" } }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -2328,6 +3394,26 @@ } } }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2337,9 +3423,14 @@ } }, "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-regexp": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==" }, "is-relative": { "version": "1.0.0", @@ -2372,15 +3463,30 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -2398,15 +3504,38 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-schema": { "version": "0.2.3", @@ -2414,9 +3543,9 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify": { "version": "0.0.1", @@ -2426,11 +3555,24 @@ "jsonify": "~0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -2452,31 +3594,50 @@ "verror": "1.10.0" } }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" + }, "keyboardevent-key-polyfill": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", "integrity": "sha1-ijGdjkWhMXL8pWKGNy+QwdTHAUw=" }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "known-css-properties": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.16.0.tgz", + "integrity": "sha512-0g5vDDPvNnQk7WM/aE92dTDxXJoOE0biiIcUb3qkn/F6h/ZQZPlZIbE2XSXH2vFPfphkgCxuR2vH6HHnobEOaQ==" }, "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "requires": { "inherits": "^2.0.1", - "isarray": "^2.0.4", "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } + } + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" } }, "lcid": { @@ -2487,13 +3648,26 @@ "invert-kv": "^1.0.0" } }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "requires": { "extend": "^3.0.0", - "findup-sync": "^2.0.0", + "findup-sync": "^3.0.0", "fined": "^1.0.1", "flagged-respawn": "^1.0.0", "is-plain-object": "^2.0.4", @@ -2504,7 +3678,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { "graceful-fs": "^4.1.2", @@ -2512,29 +3686,14 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "strip-bom": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" }, "dependencies": { @@ -2546,138 +3705,33 @@ } }, "lodash": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, "lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" + "chalk": "^2.4.2" } }, + "longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -2688,9 +3742,13 @@ } }, "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } }, "lru-queue": { "version": "0.1.0", @@ -2708,6 +3766,14 @@ "kind-of": "^6.0.2" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -2726,41 +3792,106 @@ "object-visit": "^1.0.0" } }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "matches-selector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==" }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==" + }, "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdast-util-compact": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", + "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", + "requires": { + "unist-util-visit": "^1.1.0" } }, "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "requires": { - "mimic-fn": "^1.0.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" } }, "memoizee": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", - "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "requires": { - "d": "1", - "es5-ext": "^0.10.45", - "es6-weak-map": "^2.0.2", + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", "event-emitter": "^0.3.5", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "^0.1.5" + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "dependencies": { + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + } } }, "meow": { @@ -2778,15 +3909,13 @@ "read-pkg-up": "^1.0.1", "redent": "^1.0.0", "trim-newlines": "^1.0.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - } } }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -2814,25 +3943,32 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" }, "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.46.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "minimalistic-assert": { "version": "1.0.1", @@ -2845,22 +3981,31 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.0.0" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -2877,77 +4022,38 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "module-deps": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "requires": { "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.5.0", + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^4.0.0", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", "parents": "^1.0.0", "readable-stream": "^2.0.2", - "resolve": "^1.1.3", + "resolve": "^1.4.0", "stream-combiner2": "^1.1.1", "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "ms": { @@ -2955,18 +4061,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "requires": { - "duplexer2": "0.0.2" - } + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" }, "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, "nanomatch": { "version": "1.2.13", @@ -2986,16 +4089,16 @@ "to-regex": "^3.0.1" } }, - "natives": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.5.tgz", - "integrity": "sha512-1pJ+02gl2KJgCPFtpZGtuD4lGSJnIZvvFHCQTOeDRMSXjfu2GmYWuhI8NFMA4W2I5NNFRbfy/YCiVt4CgNpP8A==" - }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, "node-gyp": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", @@ -3015,32 +4118,6 @@ "which": "1" }, "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", @@ -3048,10 +4125,15 @@ } } }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + }, "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -3060,63 +4142,39 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.10.0", + "nan": "^2.13.2", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "2.87.0", - "sass-graph": "^2.2.4", + "request": "^2.88.0", + "sass-graph": "2.2.5", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, "dependencies": { - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "requires": { - "globule": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -3129,22 +4187,37 @@ } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=" + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "requires": { - "remove-trailing-separator": "^1.0.1" + "once": "^1.3.2" } }, "npm-run-path": { @@ -3166,20 +4239,25 @@ "set-blocking": "~2.0.0" } }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -3209,6 +4287,11 @@ } } }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -3217,6 +4300,17 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", @@ -3245,33 +4339,35 @@ "isobject": "^3.0.1" } }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", "requires": { - "wrappy": "1" + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "wrappy": "1" } }, "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "^2.0.1" + } }, "os-browserify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "os-homedir": { "version": "1.0.2", @@ -3280,7 +4376,7 @@ }, "os-locale": { "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { "lcid": "^1.0.0" @@ -3300,36 +4396,54 @@ "os-tmpdir": "^1.0.0" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "p-limit": "^1.1.0" + "aggregate-error": "^3.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parents": { "version": "1.0.1", @@ -3340,15 +4454,28 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "parse-filepath": { @@ -3369,6 +4496,11 @@ "error-ex": "^1.2.0" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -3384,6 +4516,11 @@ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -3433,19 +4570,12 @@ "graceful-fs": "^4.1.2", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - } } }, "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -3459,6 +4589,11 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3477,11 +4612,156 @@ "pinkie": "^2.0.0" } }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "requires": { + "htmlparser2": "^3.10.0" + } + }, + "postcss-jsx": { + "version": "0.36.4", + "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz", + "integrity": "sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==", + "requires": { + "@babel/core": ">=7.2.2" + } + }, + "postcss-less": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", + "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-markdown": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz", + "integrity": "sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==", + "requires": { + "remark": "^10.0.1", + "unist-util-find-all-after": "^1.0.2" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=" + }, + "postcss-reporter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", + "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", + "requires": { + "chalk": "^2.4.1", + "lodash": "^4.17.11", + "log-symbols": "^2.2.0", + "postcss": "^7.0.7" + }, + "dependencies": { + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + } + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=" + }, + "postcss-safe-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", + "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-sass": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", + "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", + "requires": { + "gonzales-pe": "^4.3.0", + "postcss": "^7.0.21" + } + }, + "postcss-scss": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", + "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "requires": { + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==" + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -3493,31 +4773,63 @@ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, "public-encrypt": { - "version": "4.0.2", - "resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", @@ -3534,10 +4846,20 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" + }, "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { "safe-buffer": "^5.1.0" } @@ -3557,35 +4879,6 @@ "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "requires": { "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "read-pkg": { @@ -3608,14 +4901,27 @@ } }, "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "receptor": { @@ -3627,13 +4933,6 @@ "keyboardevent-key-polyfill": "^1.0.2", "matches-selector": "^1.0.0", "object-assign": "^4.1.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - } } }, "rechoir": { @@ -3662,6 +4961,78 @@ "safe-regex": "^1.1.0" } }, + "remark": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", + "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", + "requires": { + "remark-parse": "^6.0.0", + "remark-stringify": "^6.0.0", + "unified": "^7.0.0" + } + }, + "remark-parse": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", + "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remark-stringify": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", + "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -3686,35 +5057,45 @@ } }, "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" } }, "require-directory": { @@ -3728,11 +5109,12 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "requires": { - "path-parse": "^1.0.5" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } }, "resolve-dir": { @@ -3744,11 +5126,24 @@ "global-modules": "^1.0.0" } }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, "resolve-id-refs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz", "integrity": "sha1-MSZiS4h0idqPwK6IljL4QTrGw+w=" }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "requires": { + "value-or-function": "^3.0.0" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -3759,35 +5154,17 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "^7.0.5" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "glob": "^7.1.3" } }, "ripemd160": { @@ -3799,6 +5176,14 @@ "inherits": "^2.0.1" } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -3818,43 +5203,124 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "yargs": "^13.3.2" }, "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "brace-expansion": "^1.1.7" + "locate-path": "^3.0.0" } - } - } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } }, "scss-tokenizer": { "version": "0.2.3", @@ -3876,14 +5342,17 @@ } }, "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "requires": { + "sver-compat": "^1.5.0" + } }, "set-blocking": { "version": "2.0.0", @@ -3891,9 +5360,9 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -3913,7 +5382,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { "inherits": "^2.0.1", @@ -3922,13 +5391,21 @@ }, "shasum": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", "requires": { "json-stable-stringify": "~0.0.0", "sha.js": "~2.4.4" } }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -3943,38 +5420,42 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" } } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -4078,11 +5559,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -4090,9 +5571,9 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "sparkles": { "version": "1.0.1", @@ -4100,32 +5581,37 @@ "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" }, "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==" }, "split-string": { "version": "3.1.0", @@ -4135,10 +5621,15 @@ "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -4151,6 +5642,16 @@ "tweetnacl": "~0.14.0" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -4176,73 +5677,15 @@ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "requires": { "readable-stream": "^2.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "stream-combiner2": { @@ -4252,127 +5695,48 @@ "requires": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" - }, - "dependencies": { - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" }, "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", "requires": { "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "string-width": { @@ -4386,9 +5750,23 @@ } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-entities": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } }, "strip-ansi": { "version": "3.0.1", @@ -4399,11 +5777,10 @@ } }, "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "first-chunk-stream": "^1.0.0", "is-utf8": "^0.2.0" } }, @@ -4425,6 +5802,459 @@ "get-stdin": "^4.0.1" } }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=" + }, + "stylelint": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-11.1.1.tgz", + "integrity": "sha512-Vx6TAJsxG6qksiFvxQTKriQhp1CqUWdpTDITEkAjTR+l+8Af7qNlvrUDXfpuFJgXh/ayF8xdMSKE+SstcsPmMA==", + "requires": { + "autoprefixer": "^9.5.1", + "balanced-match": "^1.0.0", + "chalk": "^2.4.2", + "cosmiconfig": "^5.2.0", + "debug": "^4.1.1", + "execall": "^2.0.0", + "file-entry-cache": "^5.0.1", + "get-stdin": "^7.0.0", + "global-modules": "^2.0.0", + "globby": "^9.2.0", + "globjoin": "^0.1.4", + "html-tags": "^3.0.0", + "ignore": "^5.0.6", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.16.0", + "leven": "^3.1.0", + "lodash": "^4.17.14", + "log-symbols": "^3.0.0", + "mathml-tag-names": "^2.1.0", + "meow": "^5.0.0", + "micromatch": "^4.0.0", + "normalize-selector": "^0.2.0", + "postcss": "^7.0.14", + "postcss-html": "^0.36.0", + "postcss-jsx": "^0.36.3", + "postcss-less": "^3.1.4", + "postcss-markdown": "^0.36.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-reporter": "^6.0.1", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^4.0.1", + "postcss-sass": "^0.4.1", + "postcss-scss": "^2.0.0", + "postcss-selector-parser": "^3.1.0", + "postcss-syntax": "^0.36.2", + "postcss-value-parser": "^4.0.2", + "resolve-from": "^5.0.0", + "signal-exit": "^3.0.2", + "slash": "^3.0.0", + "specificity": "^0.4.1", + "string-width": "^4.1.0", + "strip-ansi": "^5.2.0", + "style-search": "^0.1.0", + "sugarss": "^2.0.0", + "svg-tags": "^1.0.0", + "table": "^5.2.3", + "v8-compile-cache": "^2.1.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "requires": { + "path-type": "^3.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -4433,10 +6263,35 @@ "minimist": "^1.1.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "sugarss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", + "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "requires": { + "postcss": "^7.0.2" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" }, "syntax-error": { "version": "1.4.0", @@ -4446,65 +6301,78 @@ "acorn-node": "^1.2.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "requires": { "block-stream": "*", - "fstream": "^1.0.2", + "fstream": "^1.0.12", "inherits": "2" } }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "requires": { - "os-homedir": "^1.0.0" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "time-stamp": { @@ -4521,18 +6389,27 @@ } }, "timers-ext": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", - "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "requires": { - "es5-ext": "~0.10.14", + "es5-ext": "~0.10.46", "next-tick": "1" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -4572,48 +6449,49 @@ "repeat-string": "^1.6.1" } }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "requires": { + "through2": "^2.0.3" + } + }, "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, "true-case-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "requires": { "glob": "^7.1.2" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "tty-browserify": { @@ -4632,8 +6510,12 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "typedarray": { "version": "0.0.6", @@ -4656,52 +6538,132 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, "undeclared-identifiers": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", - "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "requires": { "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", "get-assigned-identifiers": "^1.2.0", "simple-concat": "^1.0.0", "xtend": "^4.0.1" } }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unified": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", + "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", + "requires": { + "@types/unist": "^2.0.0", + "@types/vfile": "^3.0.0", + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^3.0.0", + "x-is-string": "^0.1.0" + } + }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unist-util-find-all-after": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz", + "integrity": "sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==", + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } }, "unset-value": { "version": "1.0.0", @@ -4736,14 +6698,22 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -4770,29 +6740,26 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, "uswds": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/uswds/-/uswds-1.6.8.tgz", - "integrity": "sha512-W0IFpBP7ycOzqxrSJ7B2j8KGEm0HcUZBIXmhmDeHW122jRMfHHwuPBP6vgh78IgkSv0mH3900Fa5XumkjpSBxg==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/uswds/-/uswds-1.6.13.tgz", + "integrity": "sha512-s0Nr/TU4bcrqG89oC9ncxR9uhx2mf7C83qKnyKkhWHsdda9J8bDCcf7fFSDLcNC2DQYWHvXXPCRly9/od8XtAg==", "requires": { "@types/node": "^8.5.5", "array-filter": "^1.0.0", "array-foreach": "^1.0.2", - "browserify": "^13.0.0", + "browserify": "^16.5.0", "classlist-polyfill": "^1.0.3", + "del": "^5.1.0", "domready": "^1.0.8", "elem-dataset": "^1.1.1", "lodash.debounce": "^4.0.7", "object-assign": "^4.1.1", "receptor": "^1.0.0", "resolve-id-refs": "^0.1.0", + "stylelint": "^11.1.1", "typescript": "^2.4.1", - "yargs": "^8.0.2" + "yargs": "^12.0.2" }, "dependencies": { "ansi-regex": { @@ -4801,79 +6768,54 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, - "load-json-file": { + "lcid": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "invert-kv": "^2.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "string-width": { @@ -4893,42 +6835,37 @@ "ansi-regex": "^3.0.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "os-locale": "^3.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", "string-width": "^2.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -4939,6 +6876,13 @@ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "requires": { "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } } }, "util-deprecate": { @@ -4947,16 +6891,21 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "requires": { - "user-home": "^1.1.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { @@ -4968,6 +6917,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -4978,63 +6932,113 @@ "extsprintf": "^1.2.0" } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "vfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", + "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" }, "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "unist-util-stringify-position": "^1.1.1" } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + } + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" + "remove-trailing-separator": "^1.0.1" } } } @@ -5048,12 +7052,9 @@ } }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "which": { "version": "1.3.1", @@ -5078,7 +7079,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -5090,15 +7091,28 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" }, "yallist": { "version": "2.1.2", @@ -5106,9 +7120,9 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", "requires": { "camelcase": "^3.0.0", "cliui": "^3.2.0", @@ -5122,29 +7136,16 @@ "string-width": "^1.0.2", "which-module": "^1.0.0", "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } + "yargs-parser": "5.0.0-security.0" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - } + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" } } } diff --git a/package.json b/package.json index 9e11c47..01af17a 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,9 @@ "federalist": "npm run build" }, "dependencies": { - "gulp": "^3.9.1", - "gulp-sass": "^3.1.0", - "gulp-sourcemaps": "^2.6.0", - "gulp-util": "^3.0.8", + "gulp": "^4.0.2", + "gulp-sass": "^4.1.0", + "gulp-sourcemaps": "^3.0.0", "uswds": "^1.3.0" } } From f099de9ebf18ef8d35404f316800f973e28b71e1 Mon Sep 17 00:00:00 2001 From: Gray Brooks Date: Fri, 12 Mar 2021 11:11:38 -0500 Subject: [PATCH 31/33] fixing federalist builds (#265) * emptying file * 2nd try * 3rd try - 12 * trying again * Create .bundler-version --- .bundler-version | 1 + .nvmrc | 2 +- Gemfile.lock | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 .bundler-version diff --git a/.bundler-version b/.bundler-version new file mode 100644 index 0000000..38f77a6 --- /dev/null +++ b/.bundler-version @@ -0,0 +1 @@ +2.0.1 diff --git a/.nvmrc b/.nvmrc index ca06394..48082f7 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -6.2.2 +12 diff --git a/Gemfile.lock b/Gemfile.lock index 3824496..a27e068 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -63,4 +63,4 @@ DEPENDENCIES rouge BUNDLED WITH - 2.2.14 + 2.0.1 From 9ba0b9f166d17b637647bc98d96c805128cb8450 Mon Sep 17 00:00:00 2001 From: Gray Brooks Date: Wed, 5 May 2021 10:09:24 -0400 Subject: [PATCH 32/33] removing the listserv section --- pages/resources.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pages/resources.md b/pages/resources.md index d3acf60..0bde66e 100644 --- a/pages/resources.md +++ b/pages/resources.md @@ -6,10 +6,6 @@ permalink: /resources/ description: "Articles, news, and tools about HTTPS." --- -### Ask Others In Government - -The HTTPS-Help listserv is a support forum for anyone with a `.gov` or `.mil` email address. Any questions, ideas, or general discussion about HTTPS is welcome. Join by sending a message to [`listserv@listserv.gsa.gov`](mailto:listserv@listserv.gsa.gov) with **no subject** and a body of "subscribe https-help". - ### Learning The DigitalGov University has several presentations on HTTPS from the General Services Administration: From 8271c90458204ca79220ea266fa88d6ed2c8515c Mon Sep 17 00:00:00 2001 From: John Jediny Date: Wed, 21 Feb 2024 12:32:29 -0500 Subject: [PATCH 33/33] Create SECURITY.md (#286) --- SECURITY.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..7392b19 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,32 @@ +# Security Policy + +As a U.S. Government agency, the General Services Administration (GSA) takes +seriously our responsibility to protect the public's information, including +financial and personal information, from unwarranted disclosure. + +## Reporting a Vulnerability + +Services operated by the U.S. General Services Administration (GSA) +are covered by the **GSA Vulnerability Disclosure Program (VDP)**. + +See the [GSA Vulnerability Disclosure Policy](https://gsa.gov/vulnerability-disclosure-policy) +at for details including: + +* How to submit a report if you believe you have discovered a vulnerability. +* Bug bounty scope. +* GSA's coordinated disclosure policy. +* Information on how you may conduct security research on GSA developed + software and systems. +* Important legal and policy guidance. + +## Supported Versions + +Please note that only certain branches are supported with security updates. + +| Version (Branch) | Supported | +| ---------------- | ------------------ | +| master | :white_check_mark: | +| other | :x: | + +When using this code or reporting vulnerabilities please only use supported +versions.