Privacy error



  • On 22/03/2018 at 11:11, xxxxxxxx wrote:

    When using Googles Chrome, I sometimes get (when using links) a Privacy error.
    This is, I think, due to the fact that the website is not secure, not https.

    Microsoft Edge does not give this error, but I would like to continue using Chrome.

    Here the message I get:

    Your connection is not private

    Attackers might be trying to steal your information from  developers.maxon.net  (for example, passwords, messages, or credit cards). [Learn more](data:text/html;charset=utf-8,%3C!doctype%20html%3EA%3Chtml%20dir=ltr%20lang=en%3EA%3Chead%3EA%20%20%3Cmeta%20charset=utf-8%3EA%20%20%3Cmeta%20name=viewportA%20%20%20%20%20%20content=initial-scale=1,%20minimum-scale=1,%20width=device-width%3EA%20%20%3Ctitle%3EPrivacy%20error%3C/title%3EA%20%20%3Cstyle%3E/*%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AAa%20%7BA%20%20color%3A%20rgb%2888,%2088,%2088%29;A%7DAAbody%20%7BA%20%20background-color%3A%20rgb%28247,%20247,%20247%29;A%20%20color%3A%20rgb%28100,%20100,%20100%29;A%7DAA%23details-button%20%7BA%20%20background%3A%20inherit;A%20%20border%3A%200;A%20%20float%3A%20none;A%20%20margin%3A%200;A%20%20padding%3A%2010px%200;A%20%20text-transform%3A%20uppercase;A%7DAA.hidden%20%7BA%20%20display%3A%20none;A%7DAAhtml%20%7BA%20%20-webkit-text-size-adjust%3A%20100%25;A%20%20font-size%3A%20125%25;A%7DAA.icon%20%7BA%20%20background-repeat%3A%20no-repeat;A%20%20background-size%3A%20100%25;A%7D%3C/style%3EA%20%20%3Cstyle%3E/*%20Copyright%202014%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20%20%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20%20%20found%20in%20the%20LICENSE%20file.%20*/AAbutton%20%7BA%20%20border%3A%200;A%20%20border-radius%3A%202px;A%20%20box-sizing%3A%20border-box;A%20%20color%3A%20%23fff;A%20%20cursor%3A%20pointer;A%20%20float%3A%20right;A%20%20font-size%3A%20.875em;A%20%20margin%3A%200;A%20%20padding%3A%2010px%2024px;A%20%20transition%3A%20box-shadow%20200ms%20cubic-bezier%280.4,%200,%200.2,%201%29;A%20%20user-select%3A%20none;A%7DAA%5Bdir=rtl%5D%20button%20%7BA%20%20float%3A%20left;A%7DAA.bad-clock%20button,A.captive-portal%20button,A.main-frame-blocked%20button,A.neterror%20button,A.offline%20button,A.ssl%20button%20%7BA%20%20background%3A%20rgb%2866,%20133,%20244%29;A%7DAAbutton%3Aactive%20%7BA%20%20background%3A%20rgb%2850,%20102,%20213%29;A%20%20outline%3A%200;A%7DAAbutton%3Ahover%20%7BA%20%20box-shadow%3A%200%201px%203px%20rgba%280,%200,%200,%20.50%29;A%7DAA%23debugging%20%7BA%20%20display%3A%20inline;A%20%20overflow%3A%20auto;A%7DAA.debugging-content%20%7BA%20%20line-height%3A%201em;A%20%20margin-bottom%3A%200;A%20%20margin-top%3A%201em;A%7DAA.debugging-content-fixed-width%20%7BA%20%20display%3A%20block;A%20%20font-family%3A%20monospace;A%20%20font-size%3A%201.2em;A%20%20margin-top%3A%200.5em;A%7DAA.debugging-title%20%7BA%20%20font-weight%3A%20bold;A%7DAA%23details%20%7BA%20%20color%3A%20%23696969;A%20%20margin%3A%200%200%2050px;A%7DAA%23details%20p%3Anot%28%3Afirst-of-type%29%20%7BA%20%20margin-top%3A%2020px;A%7DAA%23details-button%3Ahover%20%7BA%20%20box-shadow%3A%20inherit;A%20%20text-decoration%3A%20underline;A%7DAA.error-code%20%7BA%20%20color%3A%20%23646464;A%20%20font-size%3A%20.86667em;A%20%20text-transform%3A%20uppercase;A%7DAA%23error-debugging-info%20%7BA%20%20font-size%3A%200.8em;A%7DAAh1%20%7BA%20%20color%3A%20%23333;A%20%20font-size%3A%201.6em;A%20%20font-weight%3A%20normal;A%20%20line-height%3A%201.25em;A%20%20margin-bottom%3A%2016px;A%7DAAh2%20%7BA%20%20font-size%3A%201.2em;A%20%20font-weight%3A%20normal;A%7DAA.icon%20%7BA%20%20height%3A%2072px;A%20%20margin%3A%200%200%2040px;A%20%20width%3A%2072px;A%7DAAinput%5Btype=checkbox%5D%20%7BA%20%20opacity%3A%200;A%7DAAinput%5Btype=checkbox%5D%3Afocus%20~%20.checkbox%20%7BA%20%20outline%3A%20-webkit-focus-ring-color%20auto%205px;A%7DAA.interstitial-wrapper%20%7BA%20%20box-sizing%3A%20border-box;A%20%20font-size%3A%201em;A%20%20line-height%3A%201.6em;A%20%20margin%3A%2014vh%20auto%200;A%20%20max-width%3A%20600px;A%20%20width%3A%20100%25;A%7DAA%23main-message%20%3E%20p%20%7BA%20%20display%3A%20inline;A%7DAA%23extended-reporting-opt-in%20%7BA%20%20font-size%3A%20.875em;A%20%20margin-top%3A%2039px;A%7DAA%23extended-reporting-opt-in%20label%20%7BA%20%20position%3A%20relative;A%20%20display%3A%20flex;A%20%20align-items%3A%20flex-start;A%7DAA.nav-wrapper%20%7BA%20%20margin-top%3A%2051px;A%7DAA.nav-wrapper%3A%3Aafter%20%7BA%20%20clear%3A%20both;A%20%20content%3A%20;A%20%20display%3A%20table;A%20%20width%3A%20100%25;A%7DAA.small-link%20%7BA%20%20color%3A%20%23696969;A%20%20font-size%3A%20.875em;A%7DAA.checkboxes%20%7BA%20%20flex%3A%200%200%2024px;A%7DAA.checkbox%20%7BA%20%20background%3A%20transparent;A%20%20border%3A%201px%20solid%20white;A%20%20border-radius%3A%202px;A%20%20display%3A%20block;A%20%20height%3A%2014px;A%20%20left%3A%200;A%20%20position%3A%20absolute;A%20%20right%3A%200;A%20%20top%3A%203px;A%20%20width%3A%2014px;A%7DAA.checkbox%3A%3Abefore%20%7BA%20%20background%3A%20transparent;A%20%20border%3A%202px%20solid%20white;A%20%20border-right-width%3A%200;A%20%20border-top-width%3A%200;A%20%20content%3A%20;A%20%20height%3A%204px;A%20%20left%3A%202px;A%20%20opacity%3A%200;A%20%20position%3A%20absolute;A%20%20top%3A%203px;A%20%20transform%3A%20rotate%28-45deg%29;A%20%20width%3A%209px;A%7DAAinput%5Btype=checkbox%5D%3Achecked%20~%20.checkbox%3A%3Abefore%20%7BA%20%20opacity%3A%201;A%7DAA@media%20%28max-width%3A%20700px%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20padding%3A%200%2010%25;A%20%20%7DAA%20%20%23error-debugging-info%20%7BA%20%20%20%20overflow%3A%20auto;A%20%20%7DA%7DAA@media%20%28max-height%3A%20600px%29%20%7BA%20%20.error-code%20%7BA%20%20%20%20margin-top%3A%2010px;A%20%20%7DA%7DAA@media%20%28max-width%3A%20420px%29%20%7BA%20%20button,A%20%20%5Bdir=rtl%5D%20button,A%20%20.small-link%20%7BA%20%20%20%20float%3A%20none;A%20%20%20%20font-size%3A%20.825em;A%20%20%20%20font-weight%3A%20400;A%20%20%20%20margin%3A%200;A%20%20%20%20text-transform%3A%20uppercase;A%20%20%20%20width%3A%20100%25;A%20%20%7DAA%20%20%23details%20%7BA%20%20%20%20margin%3A%2020px%200%2020px%200;A%20%20%7DAA%20%20%23details%20p%3Anot%28%3Afirst-of-type%29%20%7BA%20%20%20%20margin-top%3A%2010px;A%20%20%7DAA%20%20%23details-button%20%7BA%20%20%20%20display%3A%20block;A%20%20%20%20margin-top%3A%2020px;A%20%20%20%20text-align%3A%20center;A%20%20%20%20width%3A%20100%25;A%20%20%7DAA%20%20.interstitial-wrapper%20%7BA%20%20%20%20padding%3A%200%205%25;A%20%20%7DAA%20%20%23extended-reporting-opt-in%20%7BA%20%20%20%20margin-top%3A%2024px;A%20%20%7DAA%20%20.nav-wrapper%20%7BA%20%20%20%20margin-top%3A%2030px;A%20%20%7DA%7DAA/**A%20*%20Mobile%20specific%20styling.A%20*%20Navigation%20buttons%20are%20anchored%20to%20the%20bottom%20of%20the%20screen.A%20*%20Details%20message%20replaces%20the%20top%20content%20in%20its%20own%20scrollable%20area.A%20*/AA@media%20%28max-width%3A%20420px%29%20%7BA%20%20%23details-button%20%7BA%20%20%20%20border%3A%200;A%20%20%20%20margin%3A%208px%200%200;A%20%20%7DAA%20%20.secondary-button%20%7BA%20%20%20%20-webkit-margin-end%3A%200;A%20%20%20%20margin-top%3A%2016px;A%20%20%7DA%7DAA/*%20Fixed%20nav.%20*/A@media%20%28min-width%3A%20240px%29%20and%20%28max-width%3A%20420px%29%20andA%20%20%20%20%20%20%20%28min-height%3A%20401px%29,A%20%20%20%20%20%20%20%28min-width%3A%20421px%29%20and%20%28min-height%3A%20240px%29%20andA%20%20%20%20%20%20%20%28max-height%3A%20560px%29%20%7BA%20%20body%20.nav-wrapper%20%7BA%20%20%20%20background%3A%20%23f7f7f7;A%20%20%20%20bottom%3A%200;A%20%20%20%20box-shadow%3A%200%20-22px%2040px%20rgb%28247,%20247,%20247%29;A%20%20%20%20left%3A%200;A%20%20%20%20margin%3A%200%20auto;A%20%20%20%20max-width%3A%20736px;A%20%20%20%20padding-left%3A%2024px;A%20%20%20%20padding-right%3A%2024px;A%20%20%20%20position%3A%20fixed;A%20%20%20%20right%3A%200;A%20%20%20%20width%3A%20100%25;A%20%20%20%20z-index%3A%202;A%20%20%7DAA%20%20.interstitial-wrapper%20%7BA%20%20%20%20max-width%3A%20736px;A%20%20%7DAA%20%20%23details,A%20%20%23main-content%20%7BA%20%20%20%20padding-bottom%3A%2040px;A%20%20%7DAA%20%20%23details%20%7BA%20%20%20%20padding-top%3A%205.5vh;A%20%20%7DAA%20%20%23details-button%3Ahover%20%7BA%20%20%20%20box-shadow%3A%20none;A%20%20%7DA%7DAA@media%20%28max-width%3A%20420px%29%20and%20%28orientation%3A%20portrait%29,A%20%20%20%20%20%20%20%28max-height%3A%20560px%29%20%7BA%20%20body%20%7BA%20%20%20%20margin%3A%200%20auto;A%20%20%7DAA%20%20button,A%20%20%5Bdir=rtl%5D%20button,A%20%20button.small-link%20%7BA%20%20%20%20font-family%3A%20Roboto-Regular,Helvetica;A%20%20%20%20font-size%3A%20.933em;A%20%20%20%20font-weight%3A%20600;A%20%20%20%20margin%3A%206px%200;A%20%20%20%20text-transform%3A%20uppercase;A%20%20%20%20transform%3A%20translatez%280%29;A%20%20%7DAA%20%20.nav-wrapper%20%7BA%20%20%20%20box-sizing%3A%20border-box;A%20%20%20%20padding-bottom%3A%208px;A%20%20%20%20width%3A%20100%25;A%20%20%7DAA%20%20.error-code%20%7BA%20%20%20%20margin-top%3A%200;A%20%20%7DAA%20%20%23details%20%7BA%20%20%20%20box-sizing%3A%20border-box;A%20%20%20%20height%3A%20auto;A%20%20%20%20margin%3A%200;A%20%20%20%20opacity%3A%201;A%20%20%20%20transition%3A%20opacity%20250ms%20cubic-bezier%280.4,%200,%200.2,%201%29;A%20%20%7DAA%20%20%23details.hidden,A%20%20%23main-content.hidden%20%7BA%20%20%20%20display%3A%20block;A%20%20%20%20height%3A%200;A%20%20%20%20opacity%3A%200;A%20%20%20%20overflow%3A%20hidden;A%20%20%20%20padding-bottom%3A%200;A%20%20%20%20transition%3A%20none;A%20%20%7DAA%20%20%23details-button%20%7BA%20%20%20%20padding-bottom%3A%2016px;A%20%20%20%20padding-top%3A%2016px;A%20%20%7DAA%20%20h1%20%7BA%20%20%20%20font-size%3A%201.5em;A%20%20%20%20margin-bottom%3A%208px;A%20%20%7DAA%20%20.icon%20%7BA%20%20%20%20margin-bottom%3A%205.69vh;A%20%20%7DAA%20%20.interstitial-wrapper%20%7BA%20%20%20%20box-sizing%3A%20border-box;A%20%20%20%20margin%3A%207vh%20auto%2012px;A%20%20%20%20padding%3A%200%2024px;A%20%20%20%20position%3A%20relative;A%20%20%7DAA%20%20.interstitial-wrapper%20p%20%7BA%20%20%20%20font-size%3A%20.95em;A%20%20%20%20line-height%3A%201.61em;A%20%20%20%20margin-top%3A%208px;A%20%20%7DAA%20%20%23main-content%20%7BA%20%20%20%20margin%3A%200;A%20%20%20%20transition%3A%20opacity%20100ms%20cubic-bezier%280.4,%200,%200.2,%201%29;A%20%20%7DAA%20%20.small-link%20%7BA%20%20%20%20border%3A%200;A%20%20%7DAA%20%20.suggested-left%20%3E%20%23control-buttons,A%20%20.suggested-right%20%3E%20%23control-buttons%20%7BA%20%20%20%20float%3A%20none;A%20%20%20%20margin%3A%200;A%20%20%7DA%7DAA@media%20%28min-width%3A%20421px%29%20and%20%28min-height%3A%20500px%29%20and%20%28max-height%3A%20560px%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20margin-top%3A%2010vh;A%20%20%7DA%7DAA@media%20%28min-height%3A%20400px%29%20and%20%28orientation%3Aportrait%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20margin-bottom%3A%20145px;A%20%20%7DA%7DAA@media%20%28min-height%3A%20299px%29%20%7BA%20%20.nav-wrapper%20%7BA%20%20%20%20padding-bottom%3A%2016px;A%20%20%7DA%7DAA@media%20%28min-height%3A%20500px%29%20and%20%28max-height%3A%20650px%29%20and%20%28max-width%3A%20414px%29%20andA%20%20%20%20%20%20%20%28orientation%3A%20portrait%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20margin-top%3A%207vh;A%20%20%7DA%7DAA@media%20%28min-height%3A%20650px%29%20and%20%28max-width%3A%20414px%29%20and%20%28orientation%3A%20portrait%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20margin-top%3A%2010vh;A%20%20%7DA%7DAA/*%20Small%20mobile%20screens.%20No%20fixed%20nav.%20*/A@media%20%28max-height%3A%20400px%29%20and%20%28orientation%3A%20portrait%29,A%20%20%20%20%20%20%20%28max-height%3A%20239px%29%20and%20%28orientation%3A%20landscape%29,A%20%20%20%20%20%20%20%28max-width%3A%20419px%29%20and%20%28max-height%3A%20399px%29%20%7BA%20%20.interstitial-wrapper%20%7BA%20%20%20%20display%3A%20flex;A%20%20%20%20flex-direction%3A%20column;A%20%20%20%20margin-bottom%3A%200;A%20%20%7DAA%20%20%23details%20%7BA%20%20%20%20flex%3A%201%201%20auto;A%20%20%20%20order%3A%200;A%20%20%7DAA%20%20%23main-content%20%7BA%20%20%20%20flex%3A%201%201%20auto;A%20%20%20%20order%3A%200;A%20%20%7DAA%20%20.nav-wrapper%20%7BA%20%20%20%20flex%3A%200%201%20auto;A%20%20%20%20margin-top%3A%208px;A%20%20%20%20order%3A%201;A%20%20%20%20padding-left%3A%200;A%20%20%20%20padding-right%3A%200;A%20%20%20%20position%3A%20relative;A%20%20%20%20width%3A%20100%25;A%20%20%7DA%7DAA@media%20%28max-width%3A%20239px%29%20and%20%28orientation%3A%20portrait%29%20%7BA%20%20.nav-wrapper%20%7BA%20%20%20%20padding-left%3A%200;A%20%20%20%20padding-right%3A%200;A%20%20%7DA%7DA%3C/style%3EA%20%20%3Cstyle%3E/*%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AA.bad-clock%20.icon%20%7BA%20%20background-image%3A%20-webkit-image-set%28A%20%20%20%20%20%20url%28data%3Aimage/png;base64,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%29%201x,A%20%20%20%20%20%20url%28data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAACvlBMVEUAAAD/gID/gID/VVX/VVX/Tk7/YmL/YGD/VVXzUVH/XV32UlL/W1v2T0//WFj3UlL/UlL3UFD/WFjwTk7/U1P/U1PxTU3/V1fyT0//VFTzTk7/UlLwTU3/VVX0UFD/VFT/VFT1Tk7/VVX/VFT/U1PyT0//VFT/U1PxTEz/UlLuS0v/U1P/UlL/VFT0T0//U1P0Tk7/VFT/U1PuTU3/UlLzTU3/U1P/U1PwTEz/UlL/U1PvTU3/U1P/U1PxTU3/U1PzTk70Tk7/U1PyTk7/U1PzTk7/U1P/U1P6UFD/UlLzTk7/U1P/U1PyTk7/U1PtTEz/UlLyTU3/U1P/UlL/UlLxTk7/UlLvTEz/U1PvTU3/U1P/U1P/UlLxTEzxTU3zTU3/UlK7Ozu8Ozu8PDy9PDy+PDy+PT2/PDy/PT3APDzAPT3BPT3BPj7CPT3CPj7DPT3DPj7EPj7EPz/FPj7FPz/GPj7GPz/HPz/HQEDIPz/IQEDJPz/JQEDKQEDKQUHLQEDLQUHMQEDMQUHNQUHNQkLOQUHOQkLOZWXPQUHPQkLPZWXQQkLRQkLRQ0PSQkLSQ0PSZmbTQ0PTZmbUQ0PURETVQ0PVRETVaGjWRETWRUXXRETXRUXXaGjYRUXZRUXZaGjaRUXaRkbaaWnbRUXbRkbbaWncRkbdRkbdaWneRkbeR0ffRkbfR0ffa2vgR0fga2vhR0fhSEjha2viR0fiSEjia2vjSEjjbGzkSEjkSUnkbGzlSEjlSUnlbGzmSUnmbGznSUnnSkroSkrobW3pSkrqSkrqS0vqi4vrS0vriYnri4vsS0vsiYntS0vtTEzuTEzvTEzwTEzwTU3w6OjxTU3x6OjyTU3y6Ojy6eny8vLz8/P0Tk71Tk72Tk72cnL3T0/3cnL4T0/4cnL5T0/5c3P6T0/7UFD8UFD9UFD/UlJJWZWgAAAAYXRSTlMAAgQGDA0NEBUWFhwcHR0fHyAgNDQ3ODg9PT4+QkJDQ0lLS15fdHR1fHyEhIWGiIiJiYuVlaioqaurrK+vuLm5u7u7wsLExMXGxszM0tTU2dna2t/p7Ozt7fPz+fv+/v7+jD+tjQAACYhJREFUeAHs1cFqwjAcx/G1FR0iIqKIFFEUHKJQKlIRFKGUilSKVCmiHrKpCDuPHcbA99xtjA1+b7HLjmMkaeIu+TzBl18C/xtFURRFURSFQ6bc6g0ns8Uq3u3i1WI2GfZa5cz/tKQafW+NX629fiN11Rij1p3v8af9vFszrpRTGWxAZTOoyK8pdpZgsOwUpeaUxgSMyLgkLac6BZdpVUpO3QM3ry48JzdCIqOc0By9vUVC27YurscMIUBoiprHIhCCWEJGyvsQxhfwk5oxBIqbCXM0m0AoYmuJrqgD4RyDvyftQgI3zduTDSBFcMvXU4ggSVTg2ieCNFGW4/8EkChg/keGC6lcg61Hc8Dg7cc76DkaU5ANnqAnliKb6V4QrqB7liLCcEXyMfiCHp4/QC3O0/boPniDDi8MRb5OGWSBN+hwOL4yFFl0PSYB/0LH0+UTtIhJ9WAhEgSdTufLF2iFNI92ByRa6PzIUPTNih21uFG1cQC/Kewn6GWh0BdeSu1NKRRKS2+EUuiF2CKl7UWR3WabNHFmk84k2WSTndmsGyfZMc42ziYmJhozbo0hxSVsMYRYFhEEFWt7Uau1V3q+hf+Ts2ZXMsmMnHk+wY//ec55zjn/d/Heuc4DmqUg/4pr0XXnO+1Zwp2QP5B1LTrr+D4lHKC3aQ8BFHxn3bXI6U37OuFPKBAUI4U/3b6yHf4TCIqrh3w+vwCQVHQrmv4TcYFwJ3THHxIkSYqZLkUXpv7/EC4QTmrf3J1QSAwDtFh2KZr2f3SOGzQXCNwNCbIkx5LpqjvRuSn/dbcIbw/5fYGQIN6T5EQ6rX7qSnRr8q/fcYLi2vaz876AIIr34olESlEzzb+Iizo+EfQmJwie+WAQLXQvGk+mlEwma7kRvTHxv5dwJ3R7PiAIoixHk8mUmnErmvR7fJoXNHsbp3RQkMLRaHw5BY6maV+4EJ2e8PK5xg2apaCIiJZOJJfVbDarZXNtZ9E1+zfREcINoi0UXJBjMbpiq/BouZzWcRYdsQWd4AfNYY4tLOAQiidVdVWjnpyuf+UoOmELusQP8gfQ0wuynEBCqwDldHh0w1F0yc5z6CY3aM6POSZIsryYSCtoIayXXsgbht51EN08ZAM6SrhBPl9IFDDpFxfT6QxaGvkUUEbR6DuIjtqATvGD/L67oihF5MTSUlrNaDoKHN0oFs2vydQ6ZXs141+yu4IQFumeX1LX1vKaRj2GUQSo9M1/vqZd9SAhP0BhKYEOUjJrWr6gF3Tq2TBNs/SYTKmr454Zwg+ax6AXo/F4Mqkqa3l4DJYPOGalskum1MwY6LAHIAQkShIGq6KghfI6Wy8EVCqVKpXyt2RyHR4D/c8DUCAgRiJR3Dxw9UBLG6yfTXjMUqVarX1HJtaxMdBJD0BBQYhEpEQqqWBs5KjI+CeeKkDTRCfHQGc8ANGAZDmeSuGYph7WP0UmqtUatcb3ZEKd4X9v2CUUBAhjQ1lZwdgoIB54hhzkU6k1GvXmD67fHpc8AAnhSCQmJxQElF1f3yiAM/SUwUFA9Uaz2fzR7TS77AVIACiWximEMVYoDNeL5VODh3KshmUvujwGuuIBKBSOyAAp6iruHRs4DunuMoftzECWtbVl/URs6soY6C0PQO+KmPRoIUx6BASQud8/aCDLagLUav1s9wM6BrrhAejJe1EJPa2q2bymb2zQfEbx1Fk+8LTaNqIbXoJePt8XxZMJVVWyGKvY88P1QjtXWf8AZG21HrTbrV+cQTxL9ur5vuj9ZAoLltHzBlasshcQPA14miyfdrvTeeawZJxN/fuTA6LllJrVADKKFRQ81RryoR29hQKo1elsbz9zbOrLxCPRB+oqNplxv1iulPfyoZrhBoMG+WwD1P3VadtfJF6JPqRzo3Afoio7EJt1ixaLp418HnZR/xZdHAOdJ96JNGx6c7NC46Ee1Kh/OggI+XS3d3ZekAN13nm4cog+Wsce29xkGx7FNrw1BIHzcHunu7PTe/Ri6nA9SbwTPf14vWCW2X5nG77J8kE/dxAPDajX6/V/I6N6bQx0jHgp+sQslsusf5qsfSiIctoUNOT0+on90THuK6yD6DNcERusfxoW2+5DD2sfgPr9/mDw+OXkK+wM8Vb0eam6Ny8sxnkAUBugIQee3mAw6I9EM/bPIG7R0wOien00MFp0YAw5XfRzr9vrPRr0wdnd3X016RmEh6IH9ccB0ZeUM1qvv7s539YmgiCMx5S+KP4RFUREBKFaFSqiSLWCVVSwBdEKIr5QP6IgtYrYiNe7unpudleWpHlrxdRv4cwOmyYVmSudg6XzCX7MPnN5sjsz+P0BoCXIz+DAsizPikB0T+avNEP0mvwP8dD3Bw5smWgQBzJUFCFHV5jLBiGiN+R/IPD3Ar/PpGcssCz7nCNPodQGXTYw1zEiRG/j95n0PBB00DPyKOAp9QZdx/A2XyBH5H9IPwCEcg4FFs9LlWtaqwfMlZ4g0TvSc8BBQbeiniE/GeSnhNDmotylJ09E+UEBYX0BzUfAQQGhfABIK21OyV0L80QfyP+8h1hGnhbVF+AUOfJobZ6NSV6c80Tkf0jP+H2m+qIEKeAxVyWeFpj4uUXUXQk/YLG+SM5ZEWhK5DHHG/+Jx4JEv4ZytEL+B3FIPwWEWqPzMuaR8PMUT9T9tBR/UGO5F0E+CnisPS/zgMcTdbeIVsn/oH5Az3mQDyWobV8cEX/i5InWV1sD/WR4XsRjMEE3+UfgWojI/2SxvEJ9tYHHHZN7JueJ1iNQ7yv5n3BeOeGUxgLPrRoaCXii3rfof0J+FMonCNq4E7KtFjwR8Qz5nyhnAzTO3ZVvRuGJel9G/A8dmGnjgbnTDSZuyBNhfkb8T6mNBhxnnb8u39DEE33/x/9oAwFE/vn+Bhvn/kjH73y7/9EWcaz3Z+tpiuOiX2zzP8biiXn/sCnfNliRaMT/AJBzwPPypHxjZVUiNex/qL6cvyTfelqdqBzyP6Sfzv1mXc25lYj0wP+0rYPwTw/W1r5cjchE/wM8oOhXZ+pr8K5OpCk9cF7+co0t8JWJgn5MILq2L4EhgT7yBBx/eyyJMYq+Czw/OgvjiQya9G3Iz+JEMqM4/Y71ncXDCQ0rbXb8wkRS41ybd8bTH3hLfyQw/aHJusZKDyU/eLsHRpMpSVO7H96easqOt8/ujmf2wF5fAJDgioQEl0jQmo0deYAnF46mv4gk/VUtKS2zkV/3Mzk9Mzcf1/3Mz81MTwqt+/kLc5W5R5JoGz0AAAAASUVORK5CYII=%29%202x%29;A%7DA%3C/style%3EA%20%20%3Cstyle%3E/*%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AA.captive-portal%20.icon%20%7BA%20%20background-image%3A%20-webkit-image-set%28A%20%20%20%20%20%20url%28data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5HvMAAAEyElEQVR4Xu3afWhVZRwH8LvdmjVSjKyQbKazia1k1sL6YzXoZdy28/J8f5XRC7hwEVk0hZQCXY2SipCgYgappXMQ5Ya9ELZqoEM3VHqxBkapm21jOBWmbLfudk+0Peeu2+mc3zk9514WbN9/zz18ds75Pc/vPM+JTP9NZzrT+b9Fn2nGxHrainb8ggEaRgLn0IOjaMFroloU/Ssg1yxBLZpxBD00QufpODrRiFX6IiUKXY8XcRAJsryC3nRL7EpsQJ/r0V3iSS0/MKU4D6uoQwLY/P1q4i0aYX9xVqyPRH1jbr8UtfSbE8CDqIK60wBjOEb7aDf24CBO/gN12LjJF4dM+dPAongMdNkUxLENQltAFViJdbTWfFTcaRbiMXyCpE1CM4vR5uAzdwB/hcxCDI5jXqGFeAadNJoGH0ErVhg3YPs46Ad9JldNS3GCAbDPkFGG/eJGWktn3PA4IUB3oxPzGY4AXSBLCSTLgfZxx2MLV1Q5tFHeWxWQDNalHulWeo4q9GW4VVShng5J0KgZ8+bkYpcEqIJk6H2y0CiW4H58gGMYQhyn8DlqUUltZIk1XF01kKUW5yhm3gVB3Q76MDaRyXBQR1aIIJnyi6jNZUgs8uTQfUiGDJIxZ9OPfxEwhAO0F70To5NR5skxrsUgWaGDZLQCHBHVxnKxWjwuivRS7McK7na1kpUZkEwUzXbFiZfZcVk8pE6xZ3u34AV5TFJUsV2ObBHU0+Q5wu0eJ21krw+eD4lzBvOYf7wLeyI5DEfLx2l1DPqoSXK8SItis/gm41mlago/9P2UApklZE0pkHhdAv6YIiB8NwEQL9HvUwCkzZHz15g5Gw8jmR0QtsizvOoACUjAIdlOZQUkHpCgDqd1gwRslhX3djZAmDsBwpATJPtDUZPqGFuyUWU453IWu7fFHZOvhjiQ+aqiDheQ/bJjXpf2oP+caRA+cgPJpkxckeZfiIHMgmirC8gee4rz0qF6KV3IJEi86R8kg0oazQ6Iv2Uyoiajt4x/qJ1BfcCe6JQZC/BQ82XvDLYHJPUEK3tmYHTmlotpbzCSwsDomDpc+mD6VgHETB3M5Or2c5xUBvGTq7P98DjBEjqrBOLbD2eDZj7o+aJdhnhooJxUbd/r1cJ+yl1mJMMBGWUSP6zlezT5SIirGNKacEB4bwKEXcxrEN7gThUGSCtILaZXMC+KiGN+5kHYITndkSj7Ko3GTIPMEvtJFKt9LDYgiZtVQTLnqUPUOJcV8KWE95df4m85ps0+CQ/ig68xN72lscF4yveCFTa5g9AXnDR5lczC1Jr+4UhuCsAv6YlH3EDURFbgPCG3Y2altmPG9FIJ8LnoOYLbXNDzgi+Myvkqii9sIuocAHZZuN9tAKi6hnaiBwka9f942y2rzFcut4tZOO+3r5J6xcVmYEeKc9xlPuC3FhDHynBA6LQ5GGA2ftnNl82RqDrIDgb1ZU4AnxzUTc7raDeWhwPCUW0BA/C7gYeP9cWqILSUX8YAgmxxIoF3tYL/DkK9Y/znwm8CI4lvRLV+dVAQThOpOPht8p+ogZ4W9/jijFFD5eXhWPgPCXjMh/pSVYD6pxaywPGOKOIBWfkYhXYKozgvy5/rYBva8avzcx19sSrgT2jJnjJMVMiUAAAAAElFTkSuQmCC%29%201x,A%20%20%20%20%20%20url%28data%3Aimage/png;base64,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%29%202x%29;A%7DA%3C/style%3EA%20%20%3Cstyle%3E/*%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AAbody.safe-browsing%20%7BA%20%20background-color%3A%20rgb%28206,%2052,%2038%29;A%20%20color%3A%20white;A%7DAA.safe-browsing%20%3A-webkit-any%28A%20%20%20%20a,%20%23details,%20%23details-button,%20h1,%20h2,%20p,%20.small-link%29%20%7BA%20%20color%3A%20white;A%7DAA.safe-browsing%20button%20%7BA%20%20background-color%3A%20rgba%28255,%20255,%20255,%20.15%29;A%7DAA.safe-browsing%20button%3Aactive%20%7BA%20%20background-color%3A%20rgba%28255,%20255,%20255,%20.25%29;A%7DAA.safe-browsing%20button%3Ahover%20%7BA%20%20box-shadow%3A%200%202px%203px%20rgba%280,%200,%200,%20.5%29;A%7DAA.safe-browsing%20.error-code%20%7BA%20%20display%3A%20none;A%7DAA.safe-browsing%20.icon%20%7BA%20%20background-image%3A%20-webkit-image-set%28A%20%20%20%20%20%20url%28data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAA+VBMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f3////9/f36+vr8/Pz7+/v7+/v7+/v7+/v////r6+vn5+fk5OT5+fn19fX4+Pju7u7v7+/o6Ojx8fH09PTy8vLz8/Pj4+P39/fm5ubp6eni4uL8/Pzw8PDt7e329vbs7Ozg4ODh4eHe3t7l5eX6+vrd3d3q6urf39/c3NzbRDf7+/vb29vW1tbZ2dk+D9arAAAALXRSTlMA/eIxBfACHj3YwhYJDyfOtfr2WHObgEqpjellgY6c6mZLV3L2qKjOZemN+rUv7NpAAAACcUlEQVR4Xu2U53baQBQGAxiMaQZT3Wt6rnql9uKW9v4Pk5XEspG4WFmJ/GMeYM635cy7/8yePXv23N7uxnNwdHSwE1ENoLYLTz4NkM7vQHQFhKv4nlQCCIlUbFEOXHJxPVVYUY3nKSSpKFmIJbqANRdxPIcnTHRyGEPUAga0onuy4CMb1ZM5Bh/HmYiiGwhwE81TvIYA18VIokvY4DKKp1SBDSqlCKIyIJT5PU1AafL3FVC4q1uDLdS4+4rCXd06bKXO21fKdxcNKFzVzUFQ9KoDJRehr0z0tBgBpcrfVyZavAxM7uo2ABHNO8s2NTW4+8pEs4HUMxS+6rYAEZFBYl+Y8FQ3C5hoIImGMNVVvLp4X1FRZ2n0BU035X+u7jmgomWv/zzWR23lB7ich/b1DBeRQVNNty1FHYLDWVh1TwEXic4gs6105UfPdMrd1/HCffrnqTayrYkqP3qmSom7r9q84xyMDLIUx7Mylfn7OvIGmbYyUYmGbmry99UWnYOZ7sFc5OHb1b2HLbS9QV1vED3dPX9fQXFuWiEeF9kzpfMcfaUZkbyn9+bQTfXwvm4W0iA3RNdQUyIV1lekkDOhSx3sdGh17+At0ctA0plDpr/gLqSvSI+kXt8mAj9DVl20r3hGBM0iOwKmBtZXHOPX79fFXCJ/Ure79Gxr40Owuu9hK8LPp1mnR7JmWuv7ZsM+oH3FGZObFoWx3iY/Ul1J2LVn0b7i6B2RZM1WumwL833MoH3FMQ1hPHIGsadnvk94X3EsctPE4xK8p89FvK84ExIRuoUa6Pt98fU1DJUMosj+3/S15OtrGOsB9LnYqm+e5w+es4JAhYQDdgAAAABJRU5ErkJggg==%29%201x,A%20%20%20%20%20%20url%28data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAABPlBMVEUAAAD////////////////////////////////6+vr7+/v7+/v7+/v9/f36+vr7+/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f3////////////8/Pz////5+fn////////6+vr////////8/Pz7+/v7+/v////k5OTh4eHf39/e3t7g4OD6+vrbRDf5+fnv7+/x8fH09PTY2Njc3Nz39/fq6ur4+Pjz8/Pn5+f7+/vZ2dnW1tbt7e3U1NTV1dXl5eXr6+v19fXy8vLs7Oz29vba2trb29vo6Ojm5ubu7u7d3d38/Pzp6enj4+Pi4uLw8PD///+BQ30nAAAAQHRSTlMAHhYFDzEJAifiwvb98M76PdjqtoGpZll0c46qj1icTJ1KS42A6WWb2WdadYK1cvCb/cJXV+KA9qioPc5l6Y36uRjySgAABXVJREFUeF7s1kuKwlAUBNDS+JtqggkkmODIH4gPRIgD11P730BDI6HV260Z1Wu4ZxUH/4tzzjnnnHPOOeecq2tEJdlsEsRkT+4RkeGRPA4Rj4YkG0RjfCLJ0xixCPwWEIkd73aIwuTMu/MEMTiwc4AeBhd2LgPolfyhhFzLBy3Eplc+uE6hteWTLaRGCz5ZjKBU8UUFodmNL24z6KQ0pJCpaaohksxpmifQKGhjIXurSbbZhr9qRG81yTYbaJJtNuefcsFbTbLNZnwjE7zVINtsybdK4VttreytHdlml/zIUvTWjmyzFT9USd7akW02pUm22TV7WOveKttswV4K1Vtlm12xp5XmrbLNBvYWhG+15YK3qjab0STb7Fcv5tmcOBKE4Q2Xc7KrTJW3yhs/2RsuZwvBjsQShPd0JxCyJVmA5v//getpgYextLSYKdHf+PbUO93No36Ht77eqHCvNnvASaBLp4rooClvpYGurpx92Sx6Kw3Uv873ZbOHvA7Qtd12m7ZZ6a00UN+225a7F5tt8XpA7Y61rJi1ViPeSgPZ7XZnuVh4zdsseisNhAEtzgOvaZt9yGsCdSwLeJKk16DNSm+lgSCghQAax9NGbfaI1wQSD7YIgnE8H0a3iY4a8FYSyMKAxgJoMqBs1txbaSDs6AR5Zv6Asllzb6WBIKAkiefzCQA5A8Jmjb2VBtoMKHXcUSM2e8x3ADoPAAh4Jr7v5G7IVKLjhr21DHS+DshP0xyAel3CZk29lQa6ebAUeLxe74KwWTNvpYGSFVDqOK4LPFF0QdisibfSQBsdjQFNo9EoI2zWxFtpINiJw+Fs5hcBTaeDwaibETar76000GZAnggIeLqSyNxmD/luQOM4LngceDBP8ACQSnTY+L111geRtqxlMfLDAsiFkV8H1GWSyNBmW7xO+eiJyo7O87B4MCaA1Ixazd9bUwgIgFYd7a8Dwo4GIqYQgc02f291kEcd+YJHVmZusye8djkAlKxHHnjEiEUIVOTDFKKTPdxbXdnRjghI7GjgUSqTNmvurTRRkMQAtBp53IkjJuNRiY72cW8NiwdLHdyJgmcdkGTKTGz2Gd+xPOhoGVAUjZgCo8zas33cW3lviFqWhyF2ND7YbaZM2qy5t9JEs8ITPexoJlFksUzTZo+5Tk3FiIWh7KAKpEzarLm30v/2ckczlYXdsGU6NvuY6wFdJjn+y4OXKR3EytP/WMNbNYD6Y9Ag8WCs/F4yo51t9oBrAoGJzJV/+WokJDow9NbaF7QJAKkNpMyb9KPfjL2VBrLtznLpQ0DlYNTKdrHZp1wfqA0iEjhMYsislN9I9LSmtz7RBxLmGCSxW9k9pYye1LPZR9wACNQagIbutgaSfvTI3Fvp+xDwgDd6ZERAVM9mT7kB0HIZJIn4Ekp7W+KRRKfG3kqfYyAg4HHy6ZZwpB+daHgrVfG///3z5u1l38aODsbFrcH1opJ7VPgRabNnfPeaI8+13REdPV4FBA4CRkQyZWekt2rU8M3lVREQns9AG4XmgxLRjc0+v0d4q1ZNVjznNw8WgsTiviaRXmh5K/19jzsaL+biwVwhsbeXdLUfffa+nrfSX9P4rYjnRcdFBWGSQ+KUf3/ybp7vuX6lFp7woaN9eDBxiUEIwCDH/wfCWzUrXwTrgLCj14rGuhTSxx8Q3qpZLnSQ4MlXHS2He8u+xvqJ8FbdCmEFTXxcQdFAJkPP2qfVNvsLNy1vjg9WBKQsQMKPfiW8Vbt6SkdLFkb50VeEt2rX1MGA4MHUlhkRfvTFh4S3alcEHaSczmr20R+Et+rXCDu63DJsux/9+R7hrQZE0NFEHlVh/UV4q0F1B6zSEdlWF/lSsdn/AccLgKctjBheAAAAAElFTkSuQmCC%29%202x%29;A%7DAA@media%20%28min-width%3A%20240px%29%20and%20%28max-width%3A%20420px%29%20andA%20%20%20%20%20%20%20%28min-height%3A%20401px%29,A%20%20%20%20%20%20%20%28min-width%3A%20421px%29%20and%20%28min-height%3A%20240px%29%20andA%20%20%20%20%20%20%20%28max-height%3A%20560px%29%20%7BA%20%20body.safe-browsing%20.nav-wrapper%20%7BA%20%20%20%20background%3A%20rgb%28206,%2052,%2038%29;A%20%20%20%20box-shadow%3A%200%20-22px%2040px%20rgb%28206,%2052,%2038%29;A%20%20%7DA%7D%3C/style%3EA%20%20%3Cstyle%3E/*%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AA.ssl%20.icon%20%7BA%20%20background-image%3A%20-webkit-image-set%28A%20%20%20%20%20%20url%28data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAABAlBMVEUAAADcRTfcRDfdRET/gIDcRjr/ZmbjVTncRDfcRTfcRDfdRDzgSTncRDjeSDvcRTjbRDfbRDjeRzvcRjfbRjjcRTjcRTjcRTfdRTfcRDjdRTjcRTjbRDjbRTjbRTjbRTfcRjjdRDrcRjfbRTjZQzfcRDjZRDfZRzbWQzXXRDXXQzbXQzbWQjXYSDvWQjbbRDfOQDPSQTTUQjXCPDDNPzPJPjLGPTHVQjXMPzPRQTTWQjXLPzPDPDHYQzbAOzDTQTXHPTLIPjK8Oi++Oy/FPTHEPTHPQDTQQDTUQTXBPDDKPjK/OzC9Oi/////PQDPRQDS3OS66OS7TQTTEPDHXQjbMPjMBhLaWAAAAL3RSTlMA4tgPAhYFCcL98B4x9ie1+s49WICbqXNKZY3pjuqcgVdLZnL2qKg9zmXpjfontV8LANsAAAJrSURBVHhe7ZTnduIwFAY3ARIgBAg9vW1v173ROylby/u/yso2Fx3MNaxs9h/zAHM+Sfa8+M/s2LFjx+3tdjwH+/sHWxHVAerb8KSyANnUFkRXwLiK78llgJHJxRalwSMd11OGOeV4nsM9FO0dxhJdw4LrOJ6jYy46PoohqgEHatE9JViiFNWTPIElTpIRRXcQ4C6aJ3EJAS4TkUQXsMJFFE++CCsU8xFEBSAoiHsaQNIQ7yuQCFe3DiHUhftKIlzdKoRSFe0r8sXDAkSoumkIigYaIOkIfeWi56EESFm8r1w0fFIl4epWgBA9qOMpmirCfeWijtoa9WSx6taAELFBRl/vilS3BJRIbRk9/VFTsLrifUXRuNfXLU0y/7m6p0CKxqN+v6lJU/k3eJxu7Os5LWKDHi1tYstKG1zON1X3DGiRMR80Mx3fdCbc1+bQe3o2SJrYXcV0fFMxL9xXiz0987BBtux65qaCeF8lHCR3FabBTQ3xvk4M1yN5B/Mw2+urew8hTP1BM38Qnu5evK8gMw+7IcfH9E3ZlEBfMSO//Kf35+Cm6ua+rhbSYDeEa9CUyW3qK1HIjj5DBz8dWd0bWCd6Ult/uMPEr+BmbV/JHrVG/a9MsEybV5fsK50R3frmBFXtCtVXmt73H4PhQ4t9k9rkJ55tYXwZrO4rCEUfPHfUEcuaZC/umw97TfaVpslu2tCb2lRWnBlKFtf+huwrjaa6Pxv7RfgW7nubJPtKI/X0puQO4k/Pfe/ovtLY7KbxVwve0/sE3VeaLosIbkEDvt8Hoq/hKGwQYvoq5OMnoq/hLAbgc/FVn33PX7pAfE5QHR6fAAAAAElFTkSuQmCC%29%201x,A%20%20%20%20%20%20url%28data%3Aimage/png;base64,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%29%202x%29;A%7DAA.ssl-opt-in%20.checkbox%20%7BA%20%20border-color%3A%20%23696969;A%7DAA.ssl-opt-in%20.checkbox%3A%3Abefore%20%7BA%20%20border-color%3A%20%23696969;A%7DA%3C/style%3EA%20%20%3Cscript%3E//%20Copyright%20%28c%29%202012%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA//%20//%20Copyright%20%28c%29%202013%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA/**A%20*%20@fileoverview%20Assertion%20support.A%20*/AA/**A%20*%20Verify%20%7Ccondition%7C%20is%20truthy%20and%20return%20%7Ccondition%7C%20if%20so.A%20*%20@template%20TA%20*%20@param%20%7BT%7D%20condition%20A%20condition%20to%20check%20for%20truthiness.%20%20Note%20that%20thisA%20*%20%20%20%20%20may%20be%20used%20to%20test%20whether%20a%20value%20is%20defined%20or%20not,%20and%20we%20dont%20wantA%20*%20%20%20%20%20to%20force%20a%20cast%20to%20Boolean.A%20*%20@param%20%7Bstring=%7D%20opt_message%20A%20message%20to%20show%20on%20failure.A%20*%20@return%20%7BT%7D%20A%20non-null%20%7Ccondition%7C.A%20*/Afunction%20assert%28condition,%20opt_message%29%20%7BA%20%20if%20%28!condition%29%20%7BA%20%20%20%20var%20message%20=%20Assertion%20failed;A%20%20%20%20if%20%28opt_message%29A%20%20%20%20%20%20message%20=%20message%20+%20%3A%20%20+%20opt_message;A%20%20%20%20var%20error%20=%20new%20Error%28message%29;A%20%20%20%20var%20global%20=%20function%28%29%20%7BA%20%20%20%20%20%20return%20this;A%20%20%20%20%7D%28%29;A%20%20%20%20if%20%28global.traceAssertionsForTesting%29A%20%20%20%20%20%20console.warn%28error.stack%29;A%20%20%20%20throw%20error;A%20%20%7DA%20%20return%20condition;A%7DAA/**A%20*%20Call%20this%20from%20places%20in%20the%20code%20that%20should%20never%20be%20reached.A%20*A%20*%20For%20example,%20handling%20all%20the%20values%20of%20enum%20with%20a%20switch%28%29%20like%20this%3AA%20*A%20*%20%20%20function%20getValueFromEnum%28enum%29%20%7BA%20*%20%20%20%20%20switch%20%28enum%29%20%7BA%20*%20%20%20%20%20%20%20case%20ENUM_FIRST_OF_TWO%3AA%20*%20%20%20%20%20%20%20%20%20return%20firstA%20*%20%20%20%20%20%20%20case%20ENUM_LAST_OF_TWO%3AA%20*%20%20%20%20%20%20%20%20%20return%20last;A%20*%20%20%20%20%20%7DA%20*%20%20%20%20%20assertNotReached%28%29;A%20*%20%20%20%20%20return%20document;A%20*%20%20%20%7DA%20*A%20*%20This%20code%20should%20only%20be%20hit%20in%20the%20case%20of%20serious%20programmer%20error%20orA%20*%20unexpected%20input.A%20*A%20*%20@param%20%7Bstring=%7D%20opt_message%20A%20message%20to%20show%20when%20this%20is%20hit.A%20*/Afunction%20assertNotReached%28opt_message%29%20%7BA%20%20assert%28false,%20opt_message%20%7C%7C%20Unreachable%20code%20hit%29;A%7DAA/**A%20*%20@param%20%7B*%7D%20value%20The%20value%20to%20check.A%20*%20@param%20%7Bfunction%28new%3A%20T,%20...%29%7D%20type%20A%20user-defined%20constructor.A%20*%20@param%20%7Bstring=%7D%20opt_message%20A%20message%20to%20show%20when%20this%20is%20hit.A%20*%20@return%20%7BT%7DA%20*%20@template%20TA%20*/Afunction%20assertInstanceof%28value,%20type,%20opt_message%29%20%7BA%20%20//%20We%20dont%20use%20assert%20immediately%20here%20so%20that%20we%20avoid%20constructing%20an%20errorA%20%20//%20message%20if%20we%20dont%20have%20to.A%20%20if%20%28!%28value%20instanceof%20type%29%29%20%7BA%20%20%20%20assertNotReached%28A%20%20%20%20%20%20%20%20opt_message%20%7C%7CA%20%20%20%20%20%20%20%20Value%20%20+%20value%20+%20%20is%20not%20a%5Bn%5D%20%20+%20%28type.name%20%7C%7C%20typeof%20type%29%29;A%20%20%7DA%20%20return%20value;A%7DAAA/**A%20*%20Alias%20for%20document.getElementById.%20Found%20elements%20must%20be%20HTMLElements.A%20*%20@param%20%7Bstring%7D%20id%20The%20ID%20of%20the%20element%20to%20find.A%20*%20@return%20%7BHTMLElement%7D%20The%20found%20element%20or%20null%20if%20not%20found.A%20*/Afunction%20$%28id%29%20%7BA%20%20//%20Disable%20getElementById%20restriction%20here,%20since%20we%20are%20instructing%20otherA%20%20//%20places%20to%20re-use%20the%20$%28%29%20that%20is%20defined%20here.A%20%20//%20eslint-disable-next-line%20no-restricted-propertiesA%20%20var%20el%20=%20document.getElementById%28id%29;A%20%20return%20el%20%3F%20assertInstanceof%28el,%20HTMLElement%29%20%3A%20null;A%7DAA//%20TODO%28devlin%29%3A%20This%20should%20return%20SVGElement,%20but%20closure%20compiler%20is%20missingA//%20those%20externs.A/**A%20*%20Alias%20for%20document.getElementById.%20Found%20elements%20must%20be%20SVGElements.A%20*%20@param%20%7Bstring%7D%20id%20The%20ID%20of%20the%20element%20to%20find.A%20*%20@return%20%7BElement%7D%20The%20found%20element%20or%20null%20if%20not%20found.A%20*/Afunction%20getSVGElement%28id%29%20%7BA%20%20//%20Disable%20getElementById%20restriction%20here,%20since%20it%20is%20not%20suitable%20for%20SVGA%20%20//%20elements.A%20%20//%20eslint-disable-next-line%20no-restricted-propertiesA%20%20var%20el%20=%20document.getElementById%28id%29;A%20%20return%20el%20%3F%20assertInstanceof%28el,%20Element%29%20%3A%20null;A%7DAA/**A%20*%20Add%20an%20accessible%20message%20to%20the%20page%20that%20will%20be%20announced%20toA%20*%20users%20who%20have%20spoken%20feedback%20on,%20but%20will%20be%20invisible%20to%20allA%20*%20other%20users.%20Its%20removed%20right%20away%20so%20it%20doesnt%20clutter%20the%20DOM.A%20*%20@param%20%7Bstring%7D%20msg%20The%20text%20to%20be%20pronounced.A%20*/Afunction%20announceAccessibleMessage%28msg%29%20%7BA%20%20var%20element%20=%20document.createElement%28div%29;A%20%20element.setAttribute%28aria-live,%20polite%29;A%20%20element.style.position%20=%20fixed;A%20%20element.style.left%20=%20-9999px;A%20%20element.style.height%20=%200px;A%20%20element.innerText%20=%20msg;A%20%20document.body.appendChild%28element%29;A%20%20window.setTimeout%28function%28%29%20%7BA%20%20%20%20document.body.removeChild%28element%29;A%20%20%7D,%200%29;A%7DAA/**A%20*%20Generates%20a%20CSS%20url%20string.A%20*%20@param%20%7Bstring%7D%20s%20The%20URL%20to%20generate%20the%20CSS%20url%20for.A%20*%20@return%20%7Bstring%7D%20The%20CSS%20url%20string.A%20*/Afunction%20url%28s%29%20%7BA%20%20//%20http%3A//www.w3.org/TR/css3-values/%23urisA%20%20//%20Parentheses,%20commas,%20whitespace%20characters,%20single%20quotes%20%28%29%20and%20doubleA%20%20//%20quotes%20%28%29%20appearing%20in%20a%20URI%20must%20be%20escaped%20with%20a%20backslashA%20%20var%20s2%20=%20s.replace%28/%28%5C%28%7C%5C%29%7C%5C,%7C%5Cs%7C%5C%7C%5C%7C%5C%5C%29/g,%20%5C%5C$1%29;A%20%20//%20WebKit%20has%20a%20bug%20when%20it%20comes%20to%20URLs%20that%20end%20with%20%5CA%20%20//%20https%3A//bugs.webkit.org/show_bug.cgi%3Fid=28885A%20%20if%20%28/%5C%5C%5C%5C$/.test%28s2%29%29%20%7BA%20%20%20%20//%20Add%20a%20space%20to%20work%20around%20the%20WebKit%20bug.A%20%20%20%20s2%20+=%20%20;A%20%20%7DA%20%20return%20url%28%20+%20s2%20+%20%29;A%7DAA/**A%20*%20Parses%20query%20parameters%20from%20Location.A%20*%20@param%20%7BLocation%7D%20location%20The%20URL%20to%20generate%20the%20CSS%20url%20for.A%20*%20@return%20%7BObject%7D%20Dictionary%20containing%20name%20value%20pairs%20for%20URLA%20*/Afunction%20parseQueryParams%28location%29%20%7BA%20%20var%20params%20=%20%7B%7D;A%20%20var%20query%20=%20unescape%28location.search.substring%281%29%29;A%20%20var%20vars%20=%20query.split%28&%29;A%20%20for%20%28var%20i%20=%200;%20i%20%3C%20vars.length;%20i++%29%20%7BA%20%20%20%20var%20pair%20=%20vars%5Bi%5D.split%28=%29;A%20%20%20%20params%5Bpair%5B0%5D%5D%20=%20pair%5B1%5D;A%20%20%7DA%20%20return%20params;A%7DAA/**A%20*%20Creates%20a%20new%20URL%20by%20appending%20or%20replacing%20the%20given%20query%20key%20and%20value.A%20*%20Not%20supporting%20URL%20with%20username%20and%20password.A%20*%20@param%20%7BLocation%7D%20location%20The%20original%20URL.A%20*%20@param%20%7Bstring%7D%20key%20The%20query%20parameter%20name.A%20*%20@param%20%7Bstring%7D%20value%20The%20query%20parameter%20value.A%20*%20@return%20%7Bstring%7D%20The%20constructed%20new%20URL.A%20*/Afunction%20setQueryParam%28location,%20key,%20value%29%20%7BA%20%20var%20query%20=%20parseQueryParams%28location%29;A%20%20query%5BencodeURIComponent%28key%29%5D%20=%20encodeURIComponent%28value%29;AA%20%20var%20newQuery%20=%20;A%20%20for%20%28var%20q%20in%20query%29%20%7BA%20%20%20%20newQuery%20+=%20%28newQuery%20%3F%20&%20%3A%20%3F%29%20+%20q%20+%20=%20+%20query%5Bq%5D;A%20%20%7DAA%20%20return%20location.origin%20+%20location.pathname%20+%20newQuery%20+%20location.hash;A%7DAA/**A%20*%20@param%20%7BNode%7D%20el%20A%20node%20to%20search%20for%20ancestors%20with%20%7CclassName%7C.A%20*%20@param%20%7Bstring%7D%20className%20A%20class%20to%20search%20for.A%20*%20@return%20%7BElement%7D%20A%20node%20with%20class%20of%20%7CclassName%7C%20or%20null%20if%20none%20is%20found.A%20*/Afunction%20findAncestorByClass%28el,%20className%29%20%7BA%20%20return%20/**%20@type%20%7BElement%7D%20*/%20%28findAncestor%28el,%20function%28el%29%20%7BA%20%20%20%20return%20el.classList%20&&%20el.classList.contains%28className%29;A%20%20%7D%29%29;A%7DAA/**A%20*%20Return%20the%20first%20ancestor%20for%20which%20the%20%7B@code%20predicate%7D%20returns%20true.A%20*%20@param%20%7BNode%7D%20node%20The%20node%20to%20check.A%20*%20@param%20%7Bfunction%28Node%29%3Aboolean%7D%20predicate%20The%20function%20that%20tests%20theA%20*%20%20%20%20%20nodes.A%20*%20@return%20%7BNode%7D%20The%20found%20ancestor%20or%20null%20if%20not%20found.A%20*/Afunction%20findAncestor%28node,%20predicate%29%20%7BA%20%20var%20last%20=%20false;A%20%20while%20%28node%20!=%20null%20&&%20!%28last%20=%20predicate%28node%29%29%29%20%7BA%20%20%20%20node%20=%20node.parentNode;A%20%20%7DA%20%20return%20last%20%3F%20node%20%3A%20null;A%7DAAfunction%20swapDomNodes%28a,%20b%29%20%7BA%20%20var%20afterA%20=%20a.nextSibling;A%20%20if%20%28afterA%20==%20b%29%20%7BA%20%20%20%20swapDomNodes%28b,%20a%29;A%20%20%20%20return;A%20%20%7DA%20%20var%20aParent%20=%20a.parentNode;A%20%20b.parentNode.replaceChild%28a,%20b%29;A%20%20aParent.insertBefore%28b,%20afterA%29;A%7DAA/**A%20*%20Disables%20text%20selection%20and%20dragging,%20with%20optional%20whitelist%20callbacks.A%20*%20@param%20%7Bfunction%28Event%29%3Aboolean=%7D%20opt_allowSelectStart%20Unless%20this%20functionA%20*%20%20%20%20is%20defined%20and%20returns%20true,%20the%20onselectionstart%20event%20will%20beA%20*%20%20%20%20surpressed.A%20*%20@param%20%7Bfunction%28Event%29%3Aboolean=%7D%20opt_allowDragStart%20Unless%20this%20functionA%20*%20%20%20%20is%20defined%20and%20returns%20true,%20the%20ondragstart%20event%20will%20be%20surpressed.A%20*/Afunction%20disableTextSelectAndDrag%28opt_allowSelectStart,%20opt_allowDragStart%29%20%7BA%20%20//%20Disable%20text%20selection.A%20%20document.onselectstart%20=%20function%28e%29%20%7BA%20%20%20%20if%20%28!%28opt_allowSelectStart%20&&%20opt_allowSelectStart.call%28this,%20e%29%29%29A%20%20%20%20%20%20e.preventDefault%28%29;A%20%20%7D;AA%20%20//%20Disable%20dragging.A%20%20document.ondragstart%20=%20function%28e%29%20%7BA%20%20%20%20if%20%28!%28opt_allowDragStart%20&&%20opt_allowDragStart.call%28this,%20e%29%29%29A%20%20%20%20%20%20e.preventDefault%28%29;A%20%20%7D;A%7DAA/**A%20*%20Check%20the%20directionality%20of%20the%20page.A%20*%20@return%20%7Bboolean%7D%20True%20if%20Chrome%20is%20running%20an%20RTL%20UI.A%20*/Afunction%20isRTL%28%29%20%7BA%20%20return%20document.documentElement.dir%20==%20rtl;A%7DAA/**A%20*%20Get%20an%20element%20thats%20known%20to%20exist%20by%20its%20ID.%20We%20use%20this%20instead%20of%20justA%20*%20calling%20getElementById%20and%20not%20checking%20the%20result%20because%20this%20lets%20usA%20*%20satisfy%20the%20JSCompiler%20type%20system.A%20*%20@param%20%7Bstring%7D%20id%20The%20identifier%20name.A%20*%20@return%20%7B!HTMLElement%7D%20the%20Element.A%20*/Afunction%20getRequiredElement%28id%29%20%7BA%20%20return%20assertInstanceof%28A%20%20%20%20%20%20$%28id%29,%20HTMLElement,%20Missing%20required%20element%3A%20%20+%20id%29;A%7DAA/**A%20*%20Query%20an%20element%20thats%20known%20to%20exist%20by%20a%20selector.%20We%20use%20this%20instead%20ofA%20*%20just%20calling%20querySelector%20and%20not%20checking%20the%20result%20because%20this%20lets%20usA%20*%20satisfy%20the%20JSCompiler%20type%20system.A%20*%20@param%20%7Bstring%7D%20selectors%20CSS%20selectors%20to%20query%20the%20element.A%20*%20@param%20%7B%28!Document%7C!DocumentFragment%7C!Element%29=%7D%20opt_context%20An%20optionalA%20*%20%20%20%20%20context%20object%20for%20querySelector.A%20*%20@return%20%7B!HTMLElement%7D%20the%20Element.A%20*/Afunction%20queryRequiredElement%28selectors,%20opt_context%29%20%7BA%20%20var%20element%20=%20%28opt_context%20%7C%7C%20document%29.querySelector%28selectors%29;A%20%20return%20assertInstanceof%28A%20%20%20%20%20%20element,%20HTMLElement,%20Missing%20required%20element%3A%20%20+%20selectors%29;A%7DAA//%20Handle%20click%20on%20a%20link.%20If%20the%20link%20points%20to%20a%20chrome%3A%20or%20file%3A%20url,%20thenA//%20call%20into%20the%20browser%20to%20do%20the%20navigation.A%5Bclick,%20auxclick%5D.forEach%28function%28eventName%29%20%7BA%20%20document.addEventListener%28eventName,%20function%28e%29%20%7BA%20%20%20%20if%20%28e.button%20%3E%201%29A%20%20%20%20%20%20return;%20%20//%20Ignore%20buttons%20other%20than%20left%20and%20middle.A%20%20%20%20if%20%28e.defaultPrevented%29A%20%20%20%20%20%20return;AA%20%20%20%20var%20eventPath%20=%20e.path;A%20%20%20%20var%20anchor%20=%20null;A%20%20%20%20if%20%28eventPath%29%20%7BA%20%20%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20eventPath.length;%20i++%29%20%7BA%20%20%20%20%20%20%20%20var%20element%20=%20eventPath%5Bi%5D;A%20%20%20%20%20%20%20%20if%20%28element.tagName%20===%20A%20&&%20element.href%29%20%7BA%20%20%20%20%20%20%20%20%20%20anchor%20=%20element;A%20%20%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%7DA%20%20%20%20%7DAA%20%20%20%20//%20Fallback%20if%20Event.path%20is%20not%20available.A%20%20%20%20var%20el%20=%20e.target;A%20%20%20%20if%20%28!anchor%20&&%20el.nodeType%20==%20Node.ELEMENT_NODE%20&&A%20%20%20%20%20%20%20%20el.webkitMatchesSelector%28A,%20A%20*%29%29%20%7BA%20%20%20%20%20%20while%20%28el.tagName%20!=%20A%29%20%7BA%20%20%20%20%20%20%20%20el%20=%20el.parentElement;A%20%20%20%20%20%20%7DA%20%20%20%20%20%20anchor%20=%20el;A%20%20%20%20%7DAA%20%20%20%20if%20%28!anchor%29A%20%20%20%20%20%20return;AA%20%20%20%20anchor%20=%20/**%20@type%20%7B!HTMLAnchorElement%7D%20*/%20%28anchor%29;A%20%20%20%20if%20%28%28anchor.protocol%20==%20file%3A%20%7C%7C%20anchor.protocol%20==%20about%3A%29%20&&A%20%20%20%20%20%20%20%20%28e.button%20==%200%20%7C%7C%20e.button%20==%201%29%29%20%7BA%20%20%20%20%20%20chrome.send%28navigateToUrl,%20%5BA%20%20%20%20%20%20%20%20anchor.href,%20anchor.target,%20e.button,%20e.altKey,%20e.ctrlKey,%20e.metaKey,A%20%20%20%20%20%20%20%20e.shiftKeyA%20%20%20%20%20%20%5D%29;A%20%20%20%20%20%20e.preventDefault%28%29;A%20%20%20%20%7DA%20%20%7D%29;A%7D%29;AA/**A%20*%20Creates%20a%20new%20URL%20which%20is%20the%20old%20URL%20with%20a%20GET%20param%20of%20key=value.A%20*%20@param%20%7Bstring%7D%20url%20The%20base%20URL.%20There%20is%20not%20sanity%20checking%20on%20the%20URL%20soA%20*%20%20%20%20%20it%20must%20be%20passed%20in%20a%20proper%20format.A%20*%20@param%20%7Bstring%7D%20key%20The%20key%20of%20the%20param.A%20*%20@param%20%7Bstring%7D%20value%20The%20value%20of%20the%20param.A%20*%20@return%20%7Bstring%7D%20The%20new%20URL.A%20*/Afunction%20appendParam%28url,%20key,%20value%29%20%7BA%20%20var%20param%20=%20encodeURIComponent%28key%29%20+%20=%20+%20encodeURIComponent%28value%29;AA%20%20if%20%28url.indexOf%28%3F%29%20==%20-1%29A%20%20%20%20return%20url%20+%20%3F%20+%20param;A%20%20return%20url%20+%20&%20+%20param;A%7DAA/**A%20*%20Creates%20an%20element%20of%20a%20specified%20type%20with%20a%20specified%20class%20name.A%20*%20@param%20%7Bstring%7D%20type%20The%20node%20type.A%20*%20@param%20%7Bstring%7D%20className%20The%20class%20name%20to%20use.A%20*%20@return%20%7BElement%7D%20The%20created%20element.A%20*/Afunction%20createElementWithClassName%28type,%20className%29%20%7BA%20%20var%20elm%20=%20document.createElement%28type%29;A%20%20elm.className%20=%20className;A%20%20return%20elm;A%7DAA/**A%20*%20transitionend%20does%20not%20always%20fire%20%28e.g.%20when%20animation%20is%20abortedA%20*%20or%20when%20no%20paint%20happens%20during%20the%20animation%29.%20This%20function%20sets%20upA%20*%20a%20timer%20and%20emulate%20the%20event%20if%20it%20is%20not%20fired%20when%20the%20timer%20expires.A%20*%20@param%20%7B!HTMLElement%7D%20el%20The%20element%20to%20watch%20for%20transitionend.A%20*%20@param%20%7Bnumber=%7D%20opt_timeOut%20The%20maximum%20wait%20time%20in%20milliseconds%20for%20theA%20*%20%20%20%20%20transitionend%20to%20happen.%20If%20not%20specified,%20it%20is%20fetched%20from%20%7Cel%7CA%20*%20%20%20%20%20using%20the%20transitionDuration%20style%20value.A%20*/Afunction%20ensureTransitionEndEvent%28el,%20opt_timeOut%29%20%7BA%20%20if%20%28opt_timeOut%20===%20undefined%29%20%7BA%20%20%20%20var%20style%20=%20getComputedStyle%28el%29;A%20%20%20%20opt_timeOut%20=%20parseFloat%28style.transitionDuration%29%20*%201000;AA%20%20%20%20//%20Give%20an%20additional%2050ms%20buffer%20for%20the%20animation%20to%20complete.A%20%20%20%20opt_timeOut%20+=%2050;A%20%20%7DAA%20%20var%20fired%20=%20false;A%20%20el.addEventListener%28transitionend,%20function%20f%28e%29%20%7BA%20%20%20%20el.removeEventListener%28transitionend,%20f%29;A%20%20%20%20fired%20=%20true;A%20%20%7D%29;A%20%20window.setTimeout%28function%28%29%20%7BA%20%20%20%20if%20%28!fired%29A%20%20%20%20%20%20cr.dispatchSimpleEvent%28el,%20transitionend,%20true%29;A%20%20%7D,%20opt_timeOut%29;A%7DAA/**A%20*%20Alias%20for%20document.scrollTop%20getter.A%20*%20@param%20%7B!HTMLDocument%7D%20doc%20The%20document%20node%20where%20information%20will%20beA%20*%20%20%20%20%20queried%20from.A%20*%20@return%20%7Bnumber%7D%20The%20Y%20document%20scroll%20offset.A%20*/Afunction%20scrollTopForDocument%28doc%29%20%7BA%20%20return%20doc.documentElement.scrollTop%20%7C%7C%20doc.body.scrollTop;A%7DAA/**A%20*%20Alias%20for%20document.scrollTop%20setter.A%20*%20@param%20%7B!HTMLDocument%7D%20doc%20The%20document%20node%20where%20information%20will%20beA%20*%20%20%20%20%20queried%20from.A%20*%20@param%20%7Bnumber%7D%20value%20The%20target%20Y%20scroll%20offset.A%20*/Afunction%20setScrollTopForDocument%28doc,%20value%29%20%7BA%20%20doc.documentElement.scrollTop%20=%20doc.body.scrollTop%20=%20value;A%7DAA/**A%20*%20Alias%20for%20document.scrollLeft%20getter.A%20*%20@param%20%7B!HTMLDocument%7D%20doc%20The%20document%20node%20where%20information%20will%20beA%20*%20%20%20%20%20queried%20from.A%20*%20@return%20%7Bnumber%7D%20The%20X%20document%20scroll%20offset.A%20*/Afunction%20scrollLeftForDocument%28doc%29%20%7BA%20%20return%20doc.documentElement.scrollLeft%20%7C%7C%20doc.body.scrollLeft;A%7DAA/**A%20*%20Alias%20for%20document.scrollLeft%20setter.A%20*%20@param%20%7B!HTMLDocument%7D%20doc%20The%20document%20node%20where%20information%20will%20beA%20*%20%20%20%20%20queried%20from.A%20*%20@param%20%7Bnumber%7D%20value%20The%20target%20X%20scroll%20offset.A%20*/Afunction%20setScrollLeftForDocument%28doc,%20value%29%20%7BA%20%20doc.documentElement.scrollLeft%20=%20doc.body.scrollLeft%20=%20value;A%7DAA/**A%20*%20Replaces%20&,%20%3C,%20%3E,%20,%20and%20%20characters%20with%20their%20HTML%20encoding.A%20*%20@param%20%7Bstring%7D%20original%20The%20original%20string.A%20*%20@return%20%7Bstring%7D%20The%20string%20with%20all%20the%20characters%20mentioned%20above%20replaced.A%20*/Afunction%20HTMLEscape%28original%29%20%7BA%20%20return%20original.replace%28/&/g,%20&%29A%20%20%20%20%20%20.replace%28/%3C/g,%20<%29A%20%20%20%20%20%20.replace%28/%3E/g,%20>%29A%20%20%20%20%20%20.replace%28//g,%20"%29A%20%20%20%20%20%20.replace%28//g,%20&%2339;%29;A%7DAA/**A%20*%20Shortens%20the%20provided%20string%20%28if%20necessary%29%20to%20a%20string%20of%20length%20at%20mostA%20*%20%7CmaxLength%7C.A%20*%20@param%20%7Bstring%7D%20original%20The%20original%20string.A%20*%20@param%20%7Bnumber%7D%20maxLength%20The%20maximum%20length%20allowed%20for%20the%20string.A%20*%20@return%20%7Bstring%7D%20The%20original%20string%20if%20its%20length%20does%20not%20exceedA%20*%20%20%20%20%20%7CmaxLength%7C.%20Otherwise%20the%20first%20%7CmaxLength%7C%20-%201%20characters%20with%20...A%20*%20%20%20%20%20appended.A%20*/Afunction%20elide%28original,%20maxLength%29%20%7BA%20%20if%20%28original.length%20%3C=%20maxLength%29A%20%20%20%20return%20original;A%20%20return%20original.substring%280,%20maxLength%20-%201%29%20+%20%5Cu2026;A%7DAA/**A%20*%20Quote%20a%20string%20so%20it%20can%20be%20used%20in%20a%20regular%20expression.A%20*%20@param%20%7Bstring%7D%20str%20The%20source%20string.A%20*%20@return%20%7Bstring%7D%20The%20escaped%20string.A%20*/Afunction%20quoteString%28str%29%20%7BA%20%20return%20str.replace%28/%28%5B%5C%5C%5C.%5C+%5C*%5C%3F%5C%5B%5C%5E%5C%5D%5C$%5C%28%5C%29%5C%7B%5C%7D%5C=%5C!%5C%3C%5C%3E%5C%7C%5C%3A%5D%29/g,%20%5C%5C$1%29;A%7DAA/**A%20*%20Calls%20%7Ccallback%7C%20and%20stops%20listening%20the%20first%20time%20any%20event%20in%20%7CeventNames%7CA%20*%20is%20triggered%20on%20%7Ctarget%7C.A%20*%20@param%20%7B!EventTarget%7D%20targetA%20*%20@param%20%7B!Array%3Cstring%3E%7Cstring%7D%20eventNames%20Array%20or%20space-delimited%20string%20ofA%20*%20%20%20%20%20event%20names%20to%20listen%20to%20%28e.g.%20click%20mousedown%29.A%20*%20@param%20%7Bfunction%28!Event%29%7D%20callback%20Called%20at%20most%20once.%20TheA%20*%20%20%20%20%20optional%20return%20value%20is%20passed%20on%20by%20the%20listener.A%20*/Afunction%20listenOnce%28target,%20eventNames,%20callback%29%20%7BA%20%20if%20%28!Array.isArray%28eventNames%29%29A%20%20%20%20eventNames%20=%20eventNames.split%28/%20+/%29;AA%20%20var%20removeAllAndCallCallback%20=%20function%28event%29%20%7BA%20%20%20%20eventNames.forEach%28function%28eventName%29%20%7BA%20%20%20%20%20%20target.removeEventListener%28eventName,%20removeAllAndCallCallback,%20false%29;A%20%20%20%20%7D%29;A%20%20%20%20return%20callback%28event%29;A%20%20%7D;AA%20%20eventNames.forEach%28function%28eventName%29%20%7BA%20%20%20%20target.addEventListener%28eventName,%20removeAllAndCallCallback,%20false%29;A%20%20%7D%29;A%7DAA//%20%20%20/*%20is_ios%20*/AA/**A%20*%20@param%20%7B!Event%7D%20eA%20*%20@return%20%7Bboolean%7D%20Whether%20a%20modifier%20key%20was%20down%20when%20processing%20%7Ce%7C.A%20*/Afunction%20hasKeyModifiers%28e%29%20%7BA%20%20return%20!!%28e.altKey%20%7C%7C%20e.ctrlKey%20%7C%7C%20e.metaKey%20%7C%7C%20e.shiftKey%29;A%7DA%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202014%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AAvar%20CAPTIVEPORTAL_CMD_OPEN_LOGIN_PAGE%20=%20openLoginPage;A%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202014%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AAfunction%20setupSSLDebuggingInfo%28%29%20%7BA%20%20if%20%28loadTimeData.getString%28type%29%20!=%20SSL%29A%20%20%20%20return;AA%20%20//%20The%20titles%20are%20not%20internationalized%20because%20this%20is%20debugging%20informationA%20%20//%20for%20bug%20reports,%20help%20center%20posts,%20etc.A%20%20appendDebuggingField%28Subject,%20loadTimeData.getString%28subject%29%29;A%20%20appendDebuggingField%28Issuer,%20loadTimeData.getString%28issuer%29%29;A%20%20appendDebuggingField%28Expires%20on,%20loadTimeData.getString%28expirationDate%29%29;A%20%20appendDebuggingField%28Current%20date,%20loadTimeData.getString%28currentDate%29%29;A%20%20appendDebuggingField%28PEM%20encoded%20chain,%20loadTimeData.getString%28pem%29,A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20true%29;AA%20%20$%28error-code%29.addEventListener%28click,%20toggleDebuggingInfo%29;A%7DA%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202015%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AAuse%20strict;AA//%20Other%20constants%20defined%20in%20security_interstitial_page.h.Avar%20SB_BOX_CHECKED%20=%20boxchecked;Avar%20SB_DISPLAY_CHECK_BOX%20=%20displaycheckbox;AA//%20This%20sets%20up%20the%20Extended%20Safe%20Browsing%20Reporting%20opt-in,%20either%20forA//%20reporting%20malware%20or%20invalid%20certificate%20chains.%20Does%20nothing%20if%20theA//%20interstitial%20type%20is%20not%20SAFEBROWSING%20or%20SSL%20or%20CAPTIVE_PORTAL.Afunction%20setupExtendedReportingCheckbox%28%29%20%7BA%20%20var%20interstitialType%20=%20loadTimeData.getString%28type%29;A%20%20if%20%28interstitialType%20!=%20SAFEBROWSING%20&&%20interstitialType%20!=%20SSL%20&&A%20%20%20%20%20%20interstitialType%20!=%20CAPTIVE_PORTAL%29%20%7BA%20%20%20%20return;A%20%20%7DAA%20%20if%20%28!loadTimeData.getBoolean%28SB_DISPLAY_CHECK_BOX%29%29%20%7BA%20%20%20%20return;A%20%20%7DAA%20%20$%28opt-in-label%29.innerHTML%20=%20loadTimeData.getString%28optInLink%29;A%20%20$%28opt-in-checkbox%29.checked%20=%20loadTimeData.getBoolean%28SB_BOX_CHECKED%29;A%20%20$%28extended-reporting-opt-in%29.classList.remove%28hidden%29;AA%20%20var%20className%20=%20interstitialType%20==%20SAFEBROWSING%20%3FA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20safe-browsing-opt-in%20%3AA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ssl-opt-in;A%20%20$%28extended-reporting-opt-in%29.classList.add%28className%29;AA%20%20$%28body%29.classList.add%28extended-reporting-has-checkbox%29;AA%20%20if%20%28$%28whitepaper-link%29%29%20%7BA%20%20%20%20$%28whitepaper-link%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_OPEN_WHITEPAPER%29;A%20%20%20%20%7D%29;A%20%20%7DAA%20%20$%28opt-in-checkbox%29.addEventListener%28click,%20function%28%29%20%7BA%20%20%20%20sendCommand%28$%28opt-in-checkbox%29.checked%20%3FA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SecurityInterstitialCommandId.CMD_DO_REPORT%20%3AA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SecurityInterstitialCommandId.CMD_DONT_REPORT%29;A%20%20%7D%29;A%7DA%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202015%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AAvar%20mobileNav%20=%20false;AA/**A%20*%20For%20small%20screen%20mobile%20the%20navigation%20buttons%20are%20movedA%20*%20below%20the%20advanced%20text.A%20*/Afunction%20onResize%28%29%20%7BA%20%20var%20helpOuterBox%20=%20document.querySelector%28%23details%29;A%20%20var%20mainContent%20=%20document.querySelector%28%23main-content%29;A%20%20var%20mediaQuery%20=%20%28min-width%3A%20240px%29%20and%20%28max-width%3A%20420px%29%20and%20%20+A%20%20%20%20%20%20%28min-height%3A%20401px%29,%20%20+A%20%20%20%20%20%20%28max-height%3A%20560px%29%20and%20%28min-height%3A%20240px%29%20and%20%20+A%20%20%20%20%20%20%28min-width%3A%20421px%29;AA%20%20var%20detailsHidden%20=%20helpOuterBox.classList.contains%28HIDDEN_CLASS%29;A%20%20var%20runnerContainer%20=%20document.querySelector%28.runner-container%29;AA%20%20//%20Check%20for%20change%20in%20nav%20status.A%20%20if%20%28mobileNav%20!=%20window.matchMedia%28mediaQuery%29.matches%29%20%7BA%20%20%20%20mobileNav%20=%20!mobileNav;AA%20%20%20%20//%20Handle%20showing%20the%20top%20content%20/%20details%20sections%20according%20to%20state.A%20%20%20%20if%20%28mobileNav%29%20%7BA%20%20%20%20%20%20mainContent.classList.toggle%28HIDDEN_CLASS,%20!detailsHidden%29;A%20%20%20%20%20%20helpOuterBox.classList.toggle%28HIDDEN_CLASS,%20detailsHidden%29;A%20%20%20%20%20%20if%20%28runnerContainer%29%20%7BA%20%20%20%20%20%20%20%20runnerContainer.classList.toggle%28HIDDEN_CLASS,%20!detailsHidden%29;A%20%20%20%20%20%20%7DA%20%20%20%20%7D%20else%20if%20%28!detailsHidden%29%20%7BA%20%20%20%20%20%20//%20Non%20mobile%20nav%20with%20visible%20details.A%20%20%20%20%20%20mainContent.classList.remove%28HIDDEN_CLASS%29;A%20%20%20%20%20%20helpOuterBox.classList.remove%28HIDDEN_CLASS%29;A%20%20%20%20%20%20if%20%28runnerContainer%29%20%7BA%20%20%20%20%20%20%20%20runnerContainer.classList.remove%28HIDDEN_CLASS%29;A%20%20%20%20%20%20%7DA%20%20%20%20%7DA%20%20%7DA%7DAAfunction%20setupMobileNav%28%29%20%7BA%20%20window.addEventListener%28resize,%20onResize%29;A%20%20onResize%28%29;A%7DAAdocument.addEventListener%28DOMContentLoaded,%20setupMobileNav%29;A%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA//%20This%20is%20the%20shared%20code%20for%20security%20interstitials.%20It%20is%20used%20for%20both%20SSLA//%20interstitials%20and%20Safe%20Browsing%20interstitials.AA//%20Should%20match%20security_interstitials%3A%3ASecurityInterstitialCommandA/**%20@enum%7C%20%7Bstring%7D%20*/Avar%20SecurityInterstitialCommandId%20=%20%7BA%20%20CMD_DONT_PROCEED%3A%200,A%20%20CMD_PROCEED%3A%201,A%20%20//%20Ways%20for%20user%20to%20get%20more%20informationA%20%20CMD_SHOW_MORE_SECTION%3A%202,A%20%20CMD_OPEN_HELP_CENTER%3A%203,A%20%20CMD_OPEN_DIAGNOSTIC%3A%204,A%20%20//%20Primary%20button%20actionsA%20%20CMD_RELOAD%3A%205,A%20%20CMD_OPEN_DATE_SETTINGS%3A%206,A%20%20CMD_OPEN_LOGIN%3A%207,A%20%20//%20Safe%20Browsing%20Extended%20ReportingA%20%20CMD_DO_REPORT%3A%208,A%20%20CMD_DONT_REPORT%3A%209,A%20%20CMD_OPEN_REPORTING_PRIVACY%3A%2010,A%20%20CMD_OPEN_WHITEPAPER%3A%2011,A%20%20//%20Report%20a%20phishing%20error.A%20%20CMD_REPORT_PHISHING_ERROR%3A%2012A%7D;AAvar%20HIDDEN_CLASS%20=%20hidden;AA/**A%20*%20A%20convenience%20method%20for%20sending%20commands%20to%20the%20parent%20page.A%20*%20@param%20%7Bstring%7D%20cmd%20%20The%20command%20to%20send.A%20*/Afunction%20sendCommand%28cmd%29%20%7BA%20%20if%20%28window.certificateErrorPageController%29%20%7BA%20%20%20%20switch%20%28cmd%29%20%7BA%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_DONT_PROCEED%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.dontProceed%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_PROCEED%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.proceed%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_SHOW_MORE_SECTION%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.showMoreSection%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_HELP_CENTER%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openHelpCenter%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_DIAGNOSTIC%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openDiagnostic%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_RELOAD%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.reload%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_DATE_SETTINGS%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openDateSettings%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_LOGIN%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openLogin%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_DO_REPORT%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.doReport%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_DONT_REPORT%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.dontReport%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_REPORTING_PRIVACY%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openReportingPrivacy%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_OPEN_WHITEPAPER%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.openWhitepaper%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%20%20case%20SecurityInterstitialCommandId.CMD_REPORT_PHISHING_ERROR%3AA%20%20%20%20%20%20%20%20certificateErrorPageController.reportPhishingError%28%29;A%20%20%20%20%20%20%20%20break;A%20%20%20%20%7DA%20%20%20%20return;A%20%20%7DA//%20A%20%20window.domAutomationController.send%28cmd%29;A//%20A//%20A%7DAA/**A%20*%20Call%20this%20to%20stop%20clicks%20on%20%3Ca%20href=%23%3E%20links%20from%20scrolling%20to%20the%20top%20ofA%20*%20the%20page%20%28and%20possibly%20showing%20a%20%23%20in%20the%20link%29.A%20*/Afunction%20preventDefaultOnPoundLinkClicks%28%29%20%7BA%20%20document.addEventListener%28click,%20function%28e%29%20%7BA%20%20%20%20var%20anchor%20=%20findAncestor%28/**%20@type%20%7BNode%7D%20*/%20%28e.target%29,%20function%28el%29%20%7BA%20%20%20%20%20%20return%20el.tagName%20==%20A;A%20%20%20%20%7D%29;A%20%20%20%20//%20Use%20getAttribute%28%29%20to%20prevent%20URL%20normalization.A%20%20%20%20if%20%28anchor%20&&%20anchor.getAttribute%28href%29%20==%20%23%29A%20%20%20%20%20%20e.preventDefault%28%29;A%20%20%7D%29;A%7DA%3C/script%3EA%20%20%3Cscript%3E//%20Copyright%202014%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA//%20This%20is%20the%20shared%20code%20for%20the%20new%20%28Chrome%2037%29%20security%20interstitials.%20It%20isA//%20used%20for%20both%20SSL%20interstitials%20and%20Safe%20Browsing%20interstitials.AAvar%20expandedDetails%20=%20false;Avar%20keyPressState%20=%200;AA/**A%20*%20This%20allows%20errors%20to%20be%20skippped%20by%20typing%20a%20secret%20phrase%20into%20the%20page.A%20*%20@param%20%7Bstring%7D%20e%20The%20key%20that%20was%20just%20pressed.A%20*/Afunction%20handleKeypress%28e%29%20%7BA%20%20//%20HTTPS%20errors%20are%20serious%20and%20should%20not%20be%20ignored.%20For%20testing%20purposes,A%20%20//%20other%20approaches%20are%20both%20safer%20and%20have%20fewer%20side-effects.A%20%20//%20See%20https%3A//goo.gl/ZcZixP%20for%20more%20details.A%20%20var%20BYPASS_SEQUENCE%20=%20window.atob%28dGhpc2lzdW5zYWZl%29;A%20%20if%20%28BYPASS_SEQUENCE.charCodeAt%28keyPressState%29%20==%20e.keyCode%29%20%7BA%20%20%20%20keyPressState++;A%20%20%20%20if%20%28keyPressState%20==%20BYPASS_SEQUENCE.length%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_PROCEED%29;A%20%20%20%20%20%20keyPressState%20=%200;A%20%20%20%20%7DA%20%20%7D%20else%20%7BA%20%20%20%20keyPressState%20=%200;A%20%20%7DA%7DAA/**A%20*%20This%20appends%20a%20piece%20of%20debugging%20information%20to%20the%20end%20of%20the%20warning.A%20*%20When%20complete,%20the%20caller%20must%20also%20make%20the%20debugging%20divA%20*%20%28error-debugging-info%29%20visible.A%20*%20@param%20%7Bstring%7D%20title%20%20The%20name%20of%20this%20debugging%20field.A%20*%20@param%20%7Bstring%7D%20value%20%20The%20value%20of%20the%20debugging%20field.A%20*%20@param%20%7Bboolean=%7D%20fixedWidth%20If%20true,%20the%20value%20field%20is%20displayed%20fixedA%20*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20width.A%20*/Afunction%20appendDebuggingField%28title,%20value,%20fixedWidth%29%20%7BA%20%20//%20The%20values%20input%20here%20are%20not%20trusted.%20Never%20use%20innerHTML%20on%20theseA%20%20//%20values!A%20%20var%20spanTitle%20=%20document.createElement%28span%29;A%20%20spanTitle.classList.add%28debugging-title%29;A%20%20spanTitle.innerText%20=%20title%20+%20%3A%20;AA%20%20var%20spanValue%20=%20document.createElement%28span%29;A%20%20spanValue.classList.add%28debugging-content%29;A%20%20if%20%28fixedWidth%29%20%7BA%20%20%20%20spanValue.classList.add%28debugging-content-fixed-width%29;A%20%20%7DA%20%20spanValue.innerText%20=%20value;AA%20%20var%20pElem%20=%20document.createElement%28p%29;A%20%20pElem.classList.add%28debugging-content%29;A%20%20pElem.appendChild%28spanTitle%29;A%20%20pElem.appendChild%28spanValue%29;A%20%20$%28error-debugging-info%29.appendChild%28pElem%29;A%7DAAfunction%20toggleDebuggingInfo%28%29%20%7BA%20%20$%28error-debugging-info%29.classList.toggle%28HIDDEN_CLASS%29;A%7DAAfunction%20setupEvents%28%29%20%7BA%20%20var%20overridable%20=%20loadTimeData.getBoolean%28overridable%29;A%20%20var%20interstitialType%20=%20loadTimeData.getString%28type%29;A%20%20var%20ssl%20=%20interstitialType%20==%20SSL;A%20%20var%20captivePortal%20=%20interstitialType%20==%20CAPTIVE_PORTAL;A%20%20var%20badClock%20=%20ssl%20&&%20loadTimeData.getBoolean%28bad_clock%29;A%20%20var%20hidePrimaryButton%20=%20loadTimeData.getBoolean%28hide_primary_button%29;AA%20%20if%20%28ssl%29%20%7BA%20%20%20%20$%28body%29.classList.add%28badClock%20%3F%20bad-clock%20%3A%20ssl%29;A%20%20%20%20$%28error-code%29.textContent%20=%20loadTimeData.getString%28errorCode%29;A%20%20%20%20$%28error-code%29.classList.remove%28HIDDEN_CLASS%29;A%20%20%7D%20else%20if%20%28captivePortal%29%20%7BA%20%20%20%20$%28body%29.classList.add%28captive-portal%29;A%20%20%7D%20else%20%7BA%20%20%20%20$%28body%29.classList.add%28safe-browsing%29;A%20%20%7DAA%20%20$%28icon%29.classList.add%28icon%29;AA%20%20if%20%28hidePrimaryButton%29%20%7BA%20%20%20%20$%28primary-button%29.classList.add%28HIDDEN_CLASS%29;A%20%20%7D%20else%20%7BA%20%20%20%20$%28primary-button%29.addEventListener%28click,%20function%28%29%20%7BA%20%20%20%20%20%20switch%20%28interstitialType%29%20%7BA%20%20%20%20%20%20%20%20case%20CAPTIVE_PORTAL%3AA%20%20%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_OPEN_LOGIN%29;A%20%20%20%20%20%20%20%20%20%20break;AA%20%20%20%20%20%20%20%20case%20SSL%3AA%20%20%20%20%20%20%20%20%20%20if%20%28badClock%29A%20%20%20%20%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_OPEN_DATE_SETTINGS%29;A%20%20%20%20%20%20%20%20%20%20else%20if%20%28overridable%29A%20%20%20%20%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_DONT_PROCEED%29;A%20%20%20%20%20%20%20%20%20%20elseA%20%20%20%20%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_RELOAD%29;A%20%20%20%20%20%20%20%20%20%20break;AA%20%20%20%20%20%20%20%20case%20SAFEBROWSING%3AA%20%20%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_DONT_PROCEED%29;A%20%20%20%20%20%20%20%20%20%20break;AA%20%20%20%20%20%20%20%20default%3AA%20%20%20%20%20%20%20%20%20%20throw%20Invalid%20interstitial%20type;A%20%20%20%20%20%20%7DA%20%20%20%20%7D%29;A%20%20%7DAA%20%20if%20%28overridable%29%20%7BA%20%20%20%20//%20Captive%20portal%20page%20isnt%20overridable.A%20%20%20%20$%28proceed-link%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_PROCEED%29;A%20%20%20%20%7D%29;A%20%20%7D%20else%20if%20%28!ssl%29%20%7BA%20%20%20%20$%28final-paragraph%29.classList.add%28HIDDEN_CLASS%29;A%20%20%7DAA%20%20if%20%28ssl%20&&%20overridable%29%20%7BA%20%20%20%20$%28proceed-link%29.classList.add%28small-link%29;A%20%20%7DAA%20%20if%20%28$%28diagnostic-link%29%29%20%7BA%20%20%20%20$%28diagnostic-link%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_OPEN_DIAGNOSTIC%29;A%20%20%20%20%7D%29;A%20%20%7DAA%20%20if%20%28$%28learn-more-link%29%29%20%7BA%20%20%20%20$%28learn-more-link%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_OPEN_HELP_CENTER%29;A%20%20%20%20%7D%29;A%20%20%7DAA%20%20if%20%28captivePortal%29%20%7BA%20%20%20%20//%20Captive%20portal%20page%20doesnt%20have%20details%20button.A%20%20%20%20$%28details-button%29.classList.add%28hidden%29;A%20%20%7D%20else%20%7BA%20%20%20%20$%28details-button%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20var%20hiddenDetails%20=%20$%28details%29.classList.toggle%28HIDDEN_CLASS%29;AA%20%20%20%20%20%20if%20%28mobileNav%29%20%7BA%20%20%20%20%20%20%20%20//%20Details%20appear%20over%20the%20main%20content%20on%20small%20screens.A%20%20%20%20%20%20%20%20$%28main-content%29.classList.toggle%28HIDDEN_CLASS,%20!hiddenDetails%29;A%20%20%20%20%20%20%7D%20else%20%7BA%20%20%20%20%20%20%20%20$%28main-content%29.classList.remove%28HIDDEN_CLASS%29;A%20%20%20%20%20%20%7DAA%20%20%20%20%20%20$%28details-button%29.innerText%20=%20hiddenDetails%20%3FA%20%20%20%20%20%20%20%20%20%20loadTimeData.getString%28openDetails%29%20%3AA%20%20%20%20%20%20%20%20%20%20loadTimeData.getString%28closeDetails%29;A%20%20%20%20%20%20if%20%28!expandedDetails%29%20%7BA%20%20%20%20%20%20%20%20//%20Record%20a%20histogram%20entry%20only%20the%20first%20time%20that%20details%20is%20opened.A%20%20%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_SHOW_MORE_SECTION%29;A%20%20%20%20%20%20%20%20expandedDetails%20=%20true;A%20%20%20%20%20%20%7DA%20%20%20%20%7D%29;A%20%20%7DAA%20%20if%20%28$%28report-error-link%29%29%20%7BA%20%20%20%20$%28report-error-link%29.addEventListener%28click,%20function%28event%29%20%7BA%20%20%20%20%20%20sendCommand%28SecurityInterstitialCommandId.CMD_REPORT_PHISHING_ERROR%29;A%20%20%20%20%7D%29;A%20%20%7DAA%20%20preventDefaultOnPoundLinkClicks%28%29;A%20%20setupExtendedReportingCheckbox%28%29;A%20%20setupSSLDebuggingInfo%28%29;A%20%20document.addEventListener%28keypress,%20handleKeypress%29;A%7DAAdocument.addEventListener%28DOMContentLoaded,%20setupEvents%29;A%3C/script%3EA%3C/head%3EA%3Cbody%20id=body%3EA%20%20%3Cdiv%20class=interstitial-wrapper%3EA%20%20%20%20%3Cdiv%20id=main-content%3EA%20%20%20%20%20%20%3Cdiv%20class=icon%20id=icon%3E%3C/div%3EA%20%20%20%20%20%20%3Cdiv%20id=main-message%3EA%20%20%20%20%20%20%20%20%3Ch1%3EYour%20connection%20is%20not%20private%3C/h1%3EA%20%20%20%20%20%20%20%20%3Cp%3EAttackers%20might%20be%20trying%20to%20steal%20your%20information%20from%20%3Cstrong%3Edevelopers.maxon.net%3C/strong%3E%20%28for%20example,%20passwords,%20messages,%20or%20credit%20cards%29.%20%3Ca%20href=%23%20id=learn-more-link%3ELearn%20more%3C/a%3E%3C/p%3EA%20%20%20%20%20%20%20%20%3Cdiv%20id=debugging%3EA%20%20%20%20%20%20%20%20%20%20%3Cdiv%20id=error-code%20class=error-code%3E%3C/div%3EA%20%20%20%20%20%20%20%20%20%20%3Cdiv%20id=error-debugging-info%20class=hidden%3E%3C/div%3EA%20%20%20%20%20%20%20%20%3C/div%3EA%20%20%20%20%20%20%3C/div%3EA%20%20%20%20%20%20%3Cdiv%20id=extended-reporting-opt-in%20class=hidden%3EA%20%20%20%20%20%20%20%20%3Clabel%3EA%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class=checkboxes%3EA%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type=checkbox%20id=opt-in-checkbox%3EA%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class=checkbox%3E%3C/span%3EA%20%20%20%20%20%20%20%20%20%20%3C/div%3EA%20%20%20%20%20%20%20%20%20%20%3Cspan%20id=opt-in-label%3E%3C/span%3EA%20%20%20%20%20%20%20%20%3C/label%3EA%20%20%20%20%20%20%3C/div%3EA%20%20%20%20%3C/div%3EA%20%20%20%20%3Cdiv%20class=nav-wrapper%3EA%20%20%20%20%20%20%3Cbutton%20id=primary-button%3EReload%3C/button%3EA%20%20%20%20%20%20%3Cbutton%20id=details-button%20class=small-link%3EA%20%20%20%20%20%20%20%20AdvancedA%20%20%20%20%20%20%3C/button%3EA%20%20%20%20%3C/div%3EA%20%20%20%20%3Cdiv%20id=details%20class=hidden%3EA%20%20%20%20%20%20%3Cp%3Edevelopers.maxon.net%20normally%20uses%20encryption%20to%20protect%20your%20information.%20When%20Google%20Chrome%20tried%20to%20connect%20to%20developers.maxon.net%20this%20time,%20the%20website%20sent%20back%20unusual%20and%20incorrect%20credentials.%20This%20may%20happen%20when%20an%20attacker%20is%20trying%20to%20pretend%20to%20be%20developers.maxon.net,%20or%20a%20Wi-Fi%20sign-in%20screen%20has%20interrupted%20the%20connection.%20Your%20information%20is%20still%20secure%20because%20Google%20Chrome%20stopped%20the%20connection%20before%20any%20data%20was%20exchanged.%3C/p%3EA%20%20%20%20%20%20%3Cp%20id=final-paragraph%3EYou%20cannot%20visit%20developers.maxon.net%20right%20now%20because%20the%20website%20uses%20certificate%20pinning.%20Network%20errors%20and%20attacks%20are%20usually%20temporary,%20so%20this%20page%20will%20probably%20work%20later.%3C/p%3EA%20%20%20%20%3C/div%3EA%20%20%3C/div%3EA%3C/body%3EA%3C/html%3EA%3Cstyle%3E/*%20Copyright%202014%20The%20Chromium%20Authors.%20All%20rights%20reserved.A%20*%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA%20*%20found%20in%20the%20LICENSE%20file.%20*/AA/*%20This%20file%20is%20dynamically%20processed%20by%20a%20C++%20data%20source%20handler%20to%20fill%20inA%20*%20some%20per-platform/locale%20styles%20that%20dramatically%20alter%20the%20page.%20This%20isA%20*%20done%20to%20reduce%20flicker,%20as%20JS%20may%20not%20run%20before%20the%20page%20is%20rendered.A%20*A%20*%20There%20are%20two%20ways%20to%20include%20this%20stylesheet%3AA%20*%201.%20via%20its%20chrome%3A//resources/%20URL%20in%20HTML,%20i.e.%3AA%20*A%20*%20%20%20%3Clink%20rel=stylesheet%20href=chrome%3A//resources/css/text_defaults.css%3EA%20*A%20*%202.%20via%20the%20webui%3A%3AAppendWebUICSSTextDefaults%28%29%20method%20to%20directly%20append%20itA%20*%20to%20an%20HTML%20string.A%20*%20Otherwise%20its%20placeholders%20wont%20be%20expanded.%20*/AAhtml%20%7BA%20%20direction%3A%20ltr;A%7DAAbody%20%7BA%20%20font-family%3A%20Segoe%20UI,%20Tahoma,%20sans-serif;A%20%20font-size%3A%2075%25;A%7DAAbutton%20%7BA%20%20font-family%3A%20Segoe%20UI,%20Tahoma,%20sans-serif;A%7DA%3C/style%3E%3Cscript%3E//%20Copyright%20%28c%29%202012%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA/**A%20*%20@fileoverview%20This%20file%20defines%20a%20singleton%20which%20provides%20access%20to%20all%20dataA%20*%20that%20is%20available%20as%20soon%20as%20the%20pages%20resources%20are%20loaded%20%28before%20DOMA%20*%20content%20has%20finished%20loading%29.%20This%20data%20includes%20both%20localized%20strings%20andA%20*%20any%20data%20that%20is%20important%20to%20have%20ready%20from%20a%20very%20early%20stage%20%28e.g.%20thingsA%20*%20that%20must%20be%20displayed%20right%20away%29.A%20*A%20*%20Note%20that%20loadTimeData%20is%20not%20guaranteed%20to%20be%20consistent%20between%20pageA%20*%20refreshes%20%28https%3A//crbug.com/740629%29%20and%20should%20not%20contain%20values%20that%20mightA%20*%20change%20if%20the%20page%20is%20re-opened%20later.A%20*/AA/**A%20*%20@typedef%20%7B%7BA%20*%20%20%20substitutions%3A%20%28Array%3Cstring%3E%7Cundefined%29,A%20*%20%20%20attrs%3A%20%28Object%3Cfunction%28Node,%20string%29%3Aboolean%3E%7Cundefined%29,A%20*%20%20%20tags%3A%20%28Array%3Cstring%3E%7Cundefined%29,A%20*%20%7D%7DA%20*/Avar%20SanitizeInnerHtmlOpts;AA/**%20@type%20%7B!LoadTimeData%7D%20*/%20var%20loadTimeData;AA//%20Expose%20this%20type%20globally%20as%20a%20temporary%20work%20around%20untilA//%20https%3A//github.com/google/closure-compiler/issues/544%20is%20fixed.A/**%20@constructor%20*/Afunction%20LoadTimeData%28%29%7B%7DAA%28function%28%29%20%7BA%20%20use%20strict;AA%20%20LoadTimeData.prototype%20=%20%7BA%20%20%20%20/**A%20%20%20%20%20*%20Sets%20the%20backing%20object.A%20%20%20%20%20*A%20%20%20%20%20*%20Note%20that%20there%20is%20no%20getter%20for%20%7Cdata_%7C%20to%20discourage%20abuse%20of%20the%20form%3AA%20%20%20%20%20*A%20%20%20%20%20*%20%20%20%20%20var%20value%20=%20loadTimeData.data%28%29%5Bkey%5D;A%20%20%20%20%20*A%20%20%20%20%20*%20@param%20%7BObject%7D%20value%20The%20de-serialized%20page%20data.A%20%20%20%20%20*/A%20%20%20%20set%20data%28value%29%20%7BA%20%20%20%20%20%20expect%28!this.data_,%20Re-setting%20data.%29;A%20%20%20%20%20%20this.data_%20=%20value;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Returns%20a%20JsEvalContext%20for%20%7Cdata_%7C.A%20%20%20%20%20*%20@returns%20%7BJsEvalContext%7DA%20%20%20%20%20*/A%20%20%20%20createJsEvalContext%3A%20function%28%29%20%7BA%20%20%20%20%20%20return%20new%20JsEvalContext%28this.data_%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20An%20ID%20of%20a%20value%20that%20might%20exist.A%20%20%20%20%20*%20@return%20%7Bboolean%7D%20True%20if%20%7Cid%7C%20is%20a%20key%20in%20the%20dictionary.A%20%20%20%20%20*/A%20%20%20%20valueExists%3A%20function%28id%29%20%7BA%20%20%20%20%20%20return%20id%20in%20this.data_;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Fetches%20a%20value,%20expecting%20that%20it%20exists.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20key%20that%20identifies%20the%20desired%20value.A%20%20%20%20%20*%20@return%20%7B*%7D%20The%20corresponding%20value.A%20%20%20%20%20*/A%20%20%20%20getValue%3A%20function%28id%29%20%7BA%20%20%20%20%20%20expect%28this.data_,%20No%20data.%20Did%20you%20remember%20to%20include%20strings.js%3F%29;A%20%20%20%20%20%20var%20value%20=%20this.data_%5Bid%5D;A%20%20%20%20%20%20expect%28typeof%20value%20!=%20undefined,%20Could%20not%20find%20value%20for%20%20+%20id%29;A%20%20%20%20%20%20return%20value;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20As%20above,%20but%20also%20makes%20sure%20that%20the%20value%20is%20a%20string.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20key%20that%20identifies%20the%20desired%20string.A%20%20%20%20%20*%20@return%20%7Bstring%7D%20The%20corresponding%20string%20value.A%20%20%20%20%20*/A%20%20%20%20getString%3A%20function%28id%29%20%7BA%20%20%20%20%20%20var%20value%20=%20this.getValue%28id%29;A%20%20%20%20%20%20expectIsType%28id,%20value,%20string%29;A%20%20%20%20%20%20return%20/**%20@type%20%7Bstring%7D%20*/%20%28value%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Returns%20a%20formatted%20localized%20string%20where%20$1%20to%20$9%20are%20replaced%20by%20theA%20%20%20%20%20*%20second%20to%20the%20tenth%20argument.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20ID%20of%20the%20string%20we%20want.A%20%20%20%20%20*%20@param%20%7B...%28string%7Cnumber%29%7D%20var_args%20The%20extra%20values%20to%20include%20in%20theA%20%20%20%20%20*%20%20%20%20%20formatted%20output.A%20%20%20%20%20*%20@return%20%7Bstring%7D%20The%20formatted%20string.A%20%20%20%20%20*/A%20%20%20%20getStringF%3A%20function%28id,%20var_args%29%20%7BA%20%20%20%20%20%20var%20value%20=%20this.getString%28id%29;A%20%20%20%20%20%20if%20%28!value%29A%20%20%20%20%20%20%20%20return%20;AA%20%20%20%20%20%20var%20args%20=%20Array.prototype.slice.call%28arguments%29;A%20%20%20%20%20%20args%5B0%5D%20=%20value;A%20%20%20%20%20%20return%20this.substituteString.apply%28this,%20args%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Make%20a%20string%20safe%20for%20use%20with%20with%20Polymer%20bindings%20that%20areA%20%20%20%20%20*%20inner-h-t-m-l%20%28or%20other%20innerHTML%20use%29.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20rawString%20The%20unsanitized%20string.A%20%20%20%20%20*%20@param%20%7BSanitizeInnerHtmlOpts=%7D%20opts%20Optional%20additional%20allowed%20tags%20andA%20%20%20%20%20*%20%20%20%20%20attributes.A%20%20%20%20%20*%20@return%20%7Bstring%7DA%20%20%20%20%20*/A%20%20%20%20sanitizeInnerHtml%3A%20function%28rawString,%20opts%29%20%7BA%20%20%20%20%20%20opts%20=%20opts%20%7C%7C%20%7B%7D;A%20%20%20%20%20%20return%20parseHtmlSubset%28%3Cb%3E%20+%20rawString%20+%20%3C/b%3E,%20opts.tags,%20opts.attrs%29A%20%20%20%20%20%20%20%20%20%20.firstChild.innerHTML;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Returns%20a%20formatted%20localized%20string%20where%20$1%20to%20$9%20are%20replaced%20by%20theA%20%20%20%20%20*%20second%20to%20the%20tenth%20argument.%20Any%20standalone%20$%20signs%20must%20be%20escaped%20asA%20%20%20%20%20*%20$$.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20label%20The%20label%20to%20substitute%20through.A%20%20%20%20%20*%20%20%20%20%20This%20is%20not%20an%20resource%20ID.A%20%20%20%20%20*%20@param%20%7B...%28string%7Cnumber%29%7D%20var_args%20The%20extra%20values%20to%20include%20in%20theA%20%20%20%20%20*%20%20%20%20%20formatted%20output.A%20%20%20%20%20*%20@return%20%7Bstring%7D%20The%20formatted%20string.A%20%20%20%20%20*/A%20%20%20%20substituteString%3A%20function%28label,%20var_args%29%20%7BA%20%20%20%20%20%20var%20varArgs%20=%20arguments;A%20%20%20%20%20%20return%20label.replace%28/%5C$%28.%7C$%7C%5Cn%29/g,%20function%28m%29%20%7BA%20%20%20%20%20%20%20%20assert%28m.match%28/%5C$%5B$1-9%5D/%29,%20Unescaped%20$%20found%20in%20localized%20string.%29;A%20%20%20%20%20%20%20%20return%20m%20==%20$$%20%3F%20$%20%3A%20varArgs%5Bm%5B1%5D%5D;A%20%20%20%20%20%20%7D%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Returns%20a%20formatted%20string%20where%20$1%20to%20$9%20are%20replaced%20by%20the%20second%20toA%20%20%20%20%20*%20tenth%20argument,%20split%20apart%20into%20a%20list%20of%20pieces%20describing%20how%20theA%20%20%20%20%20*%20substitution%20was%20performed.%20Any%20standalone%20$%20signs%20must%20be%20escaped%20as%20$$.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20label%20A%20localized%20string%20to%20substitute%20through.A%20%20%20%20%20*%20%20%20%20%20This%20is%20not%20an%20resource%20ID.A%20%20%20%20%20*%20@param%20%7B...%28string%7Cnumber%29%7D%20var_args%20The%20extra%20values%20to%20include%20in%20theA%20%20%20%20%20*%20%20%20%20%20formatted%20output.A%20%20%20%20%20*%20@return%20%7B!Array%3C!%7Bvalue%3A%20string,%20arg%3A%20%28null%7Cstring%29%7D%3E%7D%20The%20formattedA%20%20%20%20%20*%20%20%20%20%20string%20pieces.A%20%20%20%20%20*/A%20%20%20%20getSubstitutedStringPieces%3A%20function%28label,%20var_args%29%20%7BA%20%20%20%20%20%20var%20varArgs%20=%20arguments;A%20%20%20%20%20%20//%20Split%20the%20string%20by%20separately%20matching%20all%20occurrences%20of%20$1-9%20and%20ofA%20%20%20%20%20%20//%20non%20$1-9%20pieces.A%20%20%20%20%20%20var%20pieces%20=%20%28label.match%28/%28%5C$%5B1-9%5D%29%7C%28%28%5B%5E$%5D%7C%5C$%28%5B%5E1-9%5D%7C$%29%29+%29/g%29%20%7C%7CA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5D%29.map%28function%28p%29%20%7BA%20%20%20%20%20%20%20%20//%20Pieces%20that%20are%20not%20$1-9%20should%20be%20returned%20after%20replacing%20$$A%20%20%20%20%20%20%20%20//%20with%20$.A%20%20%20%20%20%20%20%20if%20%28!p.match%28/%5E%5C$%5B1-9%5D$/%29%29%20%7BA%20%20%20%20%20%20%20%20%20%20assert%28A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28p.match%28/%5C$/g%29%20%7C%7C%20%5B%5D%29.length%20%25%202%20==%200,A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Unescaped%20$%20found%20in%20localized%20string.%29;A%20%20%20%20%20%20%20%20%20%20return%20%7Bvalue%3A%20p.replace%28/%5C$%5C$/g,%20$%29,%20arg%3A%20null%7D;A%20%20%20%20%20%20%20%20%7DAA%20%20%20%20%20%20%20%20//%20Otherwise,%20return%20the%20substitution%20value.A%20%20%20%20%20%20%20%20return%20%7Bvalue%3A%20varArgs%5Bp%5B1%5D%5D,%20arg%3A%20p%7D;A%20%20%20%20%20%20%7D%29;AA%20%20%20%20%20%20return%20pieces;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20As%20above,%20but%20also%20makes%20sure%20that%20the%20value%20is%20a%20boolean.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20key%20that%20identifies%20the%20desired%20boolean.A%20%20%20%20%20*%20@return%20%7Bboolean%7D%20The%20corresponding%20boolean%20value.A%20%20%20%20%20*/A%20%20%20%20getBoolean%3A%20function%28id%29%20%7BA%20%20%20%20%20%20var%20value%20=%20this.getValue%28id%29;A%20%20%20%20%20%20expectIsType%28id,%20value,%20boolean%29;A%20%20%20%20%20%20return%20/**%20@type%20%7Bboolean%7D%20*/%20%28value%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20As%20above,%20but%20also%20makes%20sure%20that%20the%20value%20is%20an%20integer.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20key%20that%20identifies%20the%20desired%20number.A%20%20%20%20%20*%20@return%20%7Bnumber%7D%20The%20corresponding%20number%20value.A%20%20%20%20%20*/A%20%20%20%20getInteger%3A%20function%28id%29%20%7BA%20%20%20%20%20%20var%20value%20=%20this.getValue%28id%29;A%20%20%20%20%20%20expectIsType%28id,%20value,%20number%29;A%20%20%20%20%20%20expect%28value%20==%20Math.floor%28value%29,%20Number%20isn%5Ct%20integer%3A%20%20+%20value%29;A%20%20%20%20%20%20return%20/**%20@type%20%7Bnumber%7D%20*/%20%28value%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20Override%20values%20in%20loadTimeData%20with%20the%20values%20found%20in%20%7Creplacements%7C.A%20%20%20%20%20*%20@param%20%7BObject%7D%20replacements%20The%20dictionary%20object%20of%20keys%20to%20replace.A%20%20%20%20%20*/A%20%20%20%20overrideValues%3A%20function%28replacements%29%20%7BA%20%20%20%20%20%20expect%28A%20%20%20%20%20%20%20%20%20%20typeof%20replacements%20==%20object,A%20%20%20%20%20%20%20%20%20%20Replacements%20must%20be%20a%20dictionary%20object.%29;A%20%20%20%20%20%20for%20%28var%20key%20in%20replacements%29%20%7BA%20%20%20%20%20%20%20%20this.data_%5Bkey%5D%20=%20replacements%5Bkey%5D;A%20%20%20%20%20%20%7DA%20%20%20%20%7DA%20%20%7D;AA%20%20/**A%20%20%20*%20Checks%20condition,%20displays%20error%20message%20if%20expectation%20fails.A%20%20%20*%20@param%20%7B*%7D%20condition%20The%20condition%20to%20check%20for%20truthiness.A%20%20%20*%20@param%20%7Bstring%7D%20message%20The%20message%20to%20display%20if%20the%20check%20fails.A%20%20%20*/A%20%20function%20expect%28condition,%20message%29%20%7BA%20%20%20%20if%20%28!condition%29%20%7BA%20%20%20%20%20%20console.error%28A%20%20%20%20%20%20%20%20%20%20Unexpected%20condition%20on%20%20+%20document.location.href%20+%20%3A%20%20+%20message%29;A%20%20%20%20%7DA%20%20%7DAA%20%20/**A%20%20%20*%20Checks%20that%20the%20given%20value%20has%20the%20given%20type.A%20%20%20*%20@param%20%7Bstring%7D%20id%20The%20id%20of%20the%20value%20%28only%20used%20for%20error%20message%29.A%20%20%20*%20@param%20%7B*%7D%20value%20The%20value%20to%20check%20the%20type%20on.A%20%20%20*%20@param%20%7Bstring%7D%20type%20The%20type%20we%20expect%20%7Cvalue%7C%20to%20be.A%20%20%20*/A%20%20function%20expectIsType%28id,%20value,%20type%29%20%7BA%20%20%20%20expect%28A%20%20%20%20%20%20%20%20typeof%20value%20==%20type,%20%5B%20+%20value%20+%20%5D%20%28%20+%20id%20+%20%29%20is%20not%20a%20%20+%20type%29;A%20%20%7DAA%20%20expect%28!loadTimeData,%20should%20only%20include%20this%20file%20once%29;A%20%20loadTimeData%20=%20new%20LoadTimeData;A%7D%29%28%29;A%3C/script%3E%3Cscript%3EloadTimeData.data%20=%20%7Bbad_clock%3Afalse,boxchecked%3Afalse,closeDetails%3AHide%20advanced,currentDate%3AMar%2022,%202018,displaycheckbox%3Atrue,errorCode%3Anet%3A%3AERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN,errorType%3A13,expirationDate%3AMar%2023,%202020,explanationParagraph%3Adevelopers.maxon.net%20normally%20uses%20encryption%20to%20protect%20your%20information.%20When%20Google%20Chrome%20tried%20to%20connect%20to%20developers.maxon.net%20this%20time,%20the%20website%20sent%20back%20unusual%20and%20incorrect%20credentials.%20This%20may%20happen%20when%20an%20attacker%20is%20trying%20to%20pretend%20to%20be%20developers.maxon.net,%20or%20a%20Wi-Fi%20sign-in%20screen%20has%20interrupted%20the%20connection.%20Your%20information%20is%20still%20secure%20because%20Google%20Chrome%20stopped%20the%20connection%20before%20any%20data%20was%20exchanged.,finalParagraph%3AYou%20cannot%20visit%20developers.maxon.net%20right%20now%20because%20the%20website%20uses%20certificate%20pinning.%20Network%20errors%20and%20attacks%20are%20usually%20temporary,%20so%20this%20page%20will%20probably%20work%20later.,fontfamily%3ASegoe%20UI,%20Tahoma,%20sans-serif,fontsize%3A75%25,heading%3AYour%20connection%20is%20not%20private,hide_primary_button%3Afalse,issuer%3ACOMODO%20RSA%20Domain%20Validation%20Secure%20Server%20CA,language%3Aen,openDetails%3AAdvanced,optInLink%3AAutomatically%20send%20some%20%5Cu003Ca%20href=%5C%23%5C%20id=%5Cwhitepaper-link%5C%3Esystem%20information%20and%20page%20content%5Cu003C/a%3E%20to%20Google%20to%20help%20detect%20dangerous%20apps%20and%20sites.%20%5Cu003Ca%20id=%5Cprivacy-link%5C%20href=%5C%23%5C%20onclick=%5CsendCommand%2810%29;%20return%20false;%5C%20onmousedown=%5Creturn%20false;%5C%3EPrivacy%20policy%5Cu003C/a%3E,overridable%3Afalse,pem%3A-----BEGIN%20CERTIFICATE-----%5CnMIIFSDCCBDCgAwIBAgIRANvlVkAorT5yAY7BblAuQ5UwDQYJKoZIhvcNAQELBQAw%5CngZAxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO%5CnBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTYwNAYD%5CnVQQDEy1DT01PRE8gUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIg%5CnQ0EwHhcNMTgwMjIxMDAwMDAwWhcNMjAwMzIyMjM1OTU5WjBXMSEwHwYDVQQLExhE%5Cnb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxHDAaBgNVBAsTE0NPTU9ETyBTU0wgV2ls%5CnZGNhcmQxFDASBgNVBAMMCyoubWF4b24ubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOC%5CnAQ8AMIIBCgKCAQEAtsQ9GjybxbBBHxk1RfR3oGxHWKEUZyvMnFZBpwkQ/77jwoUA%5CnGYnKBx8a65xpyBmnQBqk8YXjPyGt5pmq2MJ4fC7Ws9yWOqC60ItzZoFjCdnXXCAX%5Cn8CufCW0T8HPoDUncDfgDwCnKjoTB3tYdhyCT+KoqCnfVjm3oGAPgmzD/YpEOgySs%5CnmSXPZf54gsOxHJBizkHvCeoB8cmMbwNkkhkJ0HrG5QUKhM6z+U81kAELhhaODU+K%5Cnksk8SQIb78XvTzIUyydBbfjKuEGwLxTleH5jEYJ03Dwe6C6vqyRrNERfBdaFWbJ8%5CnaNbbS7sTbvcya4AUe11K1/OhGuRomnfbf6quyQIDAQABo4IB0zCCAc8wHwYDVR0j%5CnBBgwFoAUkK9qOpRaC9iQ6hJWc99DtDoo2ucwHQYDVR0OBBYEFBW1C9HxqnGCCq5e%5Cnyh4HP1XSPBTNMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQW%5CnMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBPBgNVHSAESDBGMDoGCysGAQQBsjEBAgIH%5CnMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMAgG%5CnBmeBDAECATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLmNvbW9kb2NhLmNv%5CnbS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGF%5CnBggrBgEFBQcBAQR5MHcwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuY29tb2RvY2Eu%5CnY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQw%5CnJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAhBgNVHREEGjAY%5CnggsqLm1heG9uLm5ldIIJbWF4b24ubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQB236WT%5CnFopniOFYDdPvYGNChe7mPMZsshvUCdJUj6IbGuR3klvZdagX7uoZObUogOb6EMOk%5CnMGy2R9CKkWVsPe6fNXp8A/8V6atQ4g/X0AsSUSEAvPaDKJgCNwqTpeswf0OPw+Pn%5CnUpvbEJ/Bgrp9SI7N7aHwQ8dDPs6frO08E2Ov1Z0Gp1/HOWIEzVJUUJgf9QKUaJJ1%5CnjqQWt3WdJ96uuV1FZDWvUrrSa22D2TtUx6Yac6McjoWOzggsyDJ8fFR+V0BWyQqx%5CnIUqaYJv4eIuLe8Gbg8vjkst6/TbwO7XU0PsMGIySjj9aX+4dja3m1MpJF3CfGr9e%5Cn9OnJnSFN3HHlWUSO%5Cn-----END%20CERTIFICATE-----%5Cn-----BEGIN%20CERTIFICATE-----%5CnMIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB%5CnhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G%5CnA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV%5CnBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy%5CnMDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT%5CnEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR%5CnQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh%5CnbGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP%5CnADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh%5CnbXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0%5CnQa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6%5CnytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51%5CnUHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n%5Cnc13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY%5CnMBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz%5Cn30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV%5CnHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG%5CnBmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv%5CnbS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB%5CnAQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E%5CnT1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v%5CnZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p%5Cnmj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/%5Cne+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps%5CnP0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY%5CndVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc%5Cn2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG%5CnV/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4%5CnHyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX%5Cnj4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII%5Cn0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap%5CnlBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf%5Cn+AZxAeKCINT+b72x%5Cn-----END%20CERTIFICATE-----%5Cn-----BEGIN%20CERTIFICATE-----%5CnMIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB%5CnhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G%5CnA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV%5CnBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5%5CnMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT%5CnEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR%5CnQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh%5CndGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR%5Cn6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X%5Cnpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC%5Cn9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV%5Cn/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf%5CnZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z%5Cn+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w%5CnqP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah%5CnSL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC%5Cnu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf%5CnFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq%5CncrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E%5CnFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB%5Cn/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl%5CnwFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM%5Cn4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV%5Cn2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna%5CnFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ%5CnCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK%5CnboHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke%5Cnjkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL%5CnS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb%5CnQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl%5Cn0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB%5CnNVOFBkpdn627G190%5Cn-----END%20CERTIFICATE-----%5Cn,primaryButtonText%3AReload,primaryParagraph%3AAttackers%20might%20be%20trying%20to%20steal%20your%20information%20from%20%5Cu003Cstrong%3Edevelopers.maxon.net%5Cu003C/strong%3E%20%28for%20example,%20passwords,%20messages,%20or%20credit%20cards%29.%20%5Cu003Ca%20href=%5C%23%5C%20id=%5Clearn-more-link%5C%3ELearn%20more%5Cu003C/a%3E,subject%3A*.maxon.net,tabTitle%3APrivacy%20error,textdirection%3Altr,type%3ASSL%7D;%3C/script%3E%3Cscript%3E//%20Copyright%20%28c%29%202012%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA//%20Note%3A%20vulcanize%20sometimes%20disables%20GRIT%20processing.%20If%20youre%20importing%20i18nA//%20stuff%20with%20%3Clink%20rel=import%3E,%20you%20should%20probably%20be%20usingA//%20html/i18n_template.html%20instead%20of%20this%20file.AA//%20//%20Copyright%20%28c%29%202012%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AA/**%20@typedef%20%7BDocument%7CDocumentFragment%7CElement%7D%20*/Avar%20ProcessingRoot;AA/**A%20*%20@fileoverview%20This%20is%20a%20simple%20template%20engine%20inspired%20by%20JsTemplatesA%20*%20optimized%20for%20i18n.A%20*A%20*%20It%20currently%20supports%20three%20handlers%3AA%20*A%20*%20%20%20*%20i18n-content%20which%20sets%20the%20textContent%20of%20the%20element.A%20*A%20*%20%20%20%20%20%3Cspan%20i18n-content=myContent%3E%3C/span%3EA%20*A%20*%20%20%20*%20i18n-options%20which%20generates%20%3Coption%3E%20elements%20for%20a%20%3Cselect%3E.A%20*A%20*%20%20%20%20%20%3Cselect%20i18n-options=myOptionList%3E%3C/select%3EA%20*A%20*%20%20%20*%20i18n-values%20is%20a%20list%20of%20attribute-value%20or%20property-value%20pairs.A%20*%20%20%20%20%20Properties%20are%20prefixed%20with%20a%20.%20and%20can%20contain%20nested%20properties.A%20*A%20*%20%20%20%20%20%3Cspan%20i18n-values=title%3AmyTitle;.style.fontSize%3AfontSize%3E%3C/span%3EA%20*A%20*%20This%20file%20is%20a%20copy%20of%20i18n_template.js,%20with%20minor%20tweaks%20to%20support%20usingA%20*%20load_time_data.js.%20It%20should%20replace%20i18n_template.js%20eventually.A%20*/AAvar%20i18nTemplate%20=%20%28function%28%29%20%7BA%20%20/**A%20%20%20*%20This%20provides%20the%20handlers%20for%20the%20templating%20engine.%20The%20key%20is%20used%20asA%20%20%20*%20the%20attribute%20name%20and%20the%20value%20is%20the%20function%20that%20gets%20called%20for%20everyA%20%20%20*%20single%20node%20that%20has%20this%20attribute.A%20%20%20*%20@type%20%7B!Object%7DA%20%20%20*/A%20%20var%20handlers%20=%20%7BA%20%20%20%20/**A%20%20%20%20%20*%20This%20handler%20sets%20the%20textContent%20of%20the%20element.A%20%20%20%20%20*%20@param%20%7B!HTMLElement%7D%20element%20The%20node%20to%20modify.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20key%20The%20name%20of%20the%20value%20in%20%7Cdata%7C.A%20%20%20%20%20*%20@param%20%7B!LoadTimeData%7D%20data%20The%20data%20source%20to%20draw%20from.A%20%20%20%20%20*%20@param%20%7B!Set%3CProcessingRoot%3E%7D%20visitedA%20%20%20%20%20*/A%20%20%20%20i18n-content%3A%20function%28element,%20key,%20data,%20visited%29%20%7BA%20%20%20%20%20%20element.textContent%20=%20data.getString%28key%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20This%20handler%20adds%20options%20to%20a%20%3Cselect%3E%20element.A%20%20%20%20%20*%20@param%20%7B!HTMLElement%7D%20select%20The%20node%20to%20modify.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20key%20The%20name%20of%20the%20value%20in%20%7Cdata%7C.%20It%20shouldA%20%20%20%20%20*%20%20%20%20%20identify%20an%20array%20of%20values%20to%20initialize%20an%20%3Coption%3E.%20Each%20value,A%20%20%20%20%20*%20%20%20%20%20if%20a%20pair,%20represents%20%5Bcontent,%20value%5D.%20Otherwise,%20it%20should%20be%20aA%20%20%20%20%20*%20%20%20%20%20content%20string%20with%20no%20value.A%20%20%20%20%20*%20@param%20%7B!LoadTimeData%7D%20data%20The%20data%20source%20to%20draw%20from.A%20%20%20%20%20*%20@param%20%7B!Set%3CProcessingRoot%3E%7D%20visitedA%20%20%20%20%20*/A%20%20%20%20i18n-options%3A%20function%28select,%20key,%20data,%20visited%29%20%7BA%20%20%20%20%20%20var%20options%20=%20data.getValue%28key%29;A%20%20%20%20%20%20options.forEach%28function%28optionData%29%20%7BA%20%20%20%20%20%20%20%20var%20option%20=%20typeof%20optionData%20==%20string%20%3FA%20%20%20%20%20%20%20%20%20%20%20%20new%20Option%28optionData%29%20%3AA%20%20%20%20%20%20%20%20%20%20%20%20new%20Option%28optionData%5B1%5D,%20optionData%5B0%5D%29;A%20%20%20%20%20%20%20%20select.appendChild%28option%29;A%20%20%20%20%20%20%7D%29;A%20%20%20%20%7D,AA%20%20%20%20/**A%20%20%20%20%20*%20This%20is%20used%20to%20set%20HTML%20attributes%20and%20DOM%20properties.%20The%20syntax%20is%3AA%20%20%20%20%20*%20%20%20attributename%3Akey;A%20%20%20%20%20*%20%20%20.domProperty%3Akey;A%20%20%20%20%20*%20%20%20.nested.dom.property%3AkeyA%20%20%20%20%20*%20@param%20%7B!HTMLElement%7D%20element%20The%20node%20to%20modify.A%20%20%20%20%20*%20@param%20%7Bstring%7D%20attributeAndKeys%20The%20path%20of%20the%20attribute%20to%20modifyA%20%20%20%20%20*%20%20%20%20%20followed%20by%20a%20colon,%20and%20the%20name%20of%20the%20value%20in%20%7Cdata%7C.A%20%20%20%20%20*%20%20%20%20%20Multiple%20attribute/key%20pairs%20may%20be%20separated%20by%20semicolons.A%20%20%20%20%20*%20@param%20%7B!LoadTimeData%7D%20data%20The%20data%20source%20to%20draw%20from.A%20%20%20%20%20*%20@param%20%7B!Set%3CProcessingRoot%3E%7D%20visitedA%20%20%20%20%20*/A%20%20%20%20i18n-values%3A%20function%28element,%20attributeAndKeys,%20data,%20visited%29%20%7BA%20%20%20%20%20%20var%20parts%20=%20attributeAndKeys.replace%28/%5Cs/g,%20%29.split%28/;/%29;A%20%20%20%20%20%20parts.forEach%28function%28part%29%20%7BA%20%20%20%20%20%20%20%20if%20%28!part%29A%20%20%20%20%20%20%20%20%20%20return;AA%20%20%20%20%20%20%20%20var%20attributeAndKeyPair%20=%20part.match%28/%5E%28%5B%5E%3A%5D+%29%3A%28.+%29$/%29;A%20%20%20%20%20%20%20%20if%20%28!attributeAndKeyPair%29A%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28malformed%20i18n-values%3A%20%20+%20attributeAndKeys%29;AA%20%20%20%20%20%20%20%20var%20propName%20=%20attributeAndKeyPair%5B1%5D;A%20%20%20%20%20%20%20%20var%20propExpr%20=%20attributeAndKeyPair%5B2%5D;AA%20%20%20%20%20%20%20%20var%20value%20=%20data.getValue%28propExpr%29;AA%20%20%20%20%20%20%20%20//%20Allow%20a%20property%20of%20the%20form%20.foo.bar%20to%20assign%20a%20value%20intoA%20%20%20%20%20%20%20%20//%20element.foo.bar.A%20%20%20%20%20%20%20%20if%20%28propName%5B0%5D%20==%20.%29%20%7BA%20%20%20%20%20%20%20%20%20%20var%20path%20=%20propName.slice%281%29.split%28.%29;A%20%20%20%20%20%20%20%20%20%20var%20targetObject%20=%20element;A%20%20%20%20%20%20%20%20%20%20while%20%28targetObject%20&&%20path.length%20%3E%201%29%20%7BA%20%20%20%20%20%20%20%20%20%20%20%20targetObject%20=%20targetObject%5Bpath.shift%28%29%5D;A%20%20%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%20%20%20%20if%20%28targetObject%29%20%7BA%20%20%20%20%20%20%20%20%20%20%20%20targetObject%5Bpath%5D%20=%20value;A%20%20%20%20%20%20%20%20%20%20%20%20//%20In%20case%20we%20set%20innerHTML%20%28ignoring%20others%29%20we%20need%20to%20recursivelyA%20%20%20%20%20%20%20%20%20%20%20%20//%20check%20the%20content.A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28path%20==%20innerHTML%29%20%7BA%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20element.children.length;%20++i%29%20%7BA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20processWithoutCycles%28element.children%5Bi%5D,%20data,%20visited,%20false%29;A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%20%20%7D%20else%20%7BA%20%20%20%20%20%20%20%20%20%20element.setAttribute%28propName,%20/**%20@type%20%7Bstring%7D%20*/%20%28value%29%29;A%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%7D%29;A%20%20%20%20%7DA%20%20%7D;AA%20%20var%20prefixes%20=%20%5B%5D;AA%20%20//%20Only%20look%20through%20shadow%20DOM%20when%20its%20supported.%20As%20of%20April%202015,%20iOSA%20%20//%20Chrome%20doesnt%20support%20shadow%20DOM.A%20%20if%20%28Element.prototype.createShadowRoot%29A%20%20%20%20prefixes.push%28*%20/deep/%20%29;AA%20%20var%20attributeNames%20=%20Object.keys%28handlers%29;A%20%20var%20selector%20=%20prefixesA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.map%28function%28prefix%29%20%7BA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20prefix%20+%20%5B%20+A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20attributeNames.join%28%5D,%20%20+%20prefix%20+%20%5B%29%20+%20%5D;A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.join%28,%20%29;AA%20%20/**A%20%20%20*%20Processes%20a%20DOM%20tree%20using%20a%20%7Cdata%7C%20source%20to%20populate%20template%20values.A%20%20%20*%20@param%20%7B!ProcessingRoot%7D%20root%20The%20root%20of%20the%20DOM%20tree%20to%20process.A%20%20%20*%20@param%20%7B!LoadTimeData%7D%20data%20The%20data%20to%20draw%20from.A%20%20%20*/A%20%20function%20process%28root,%20data%29%20%7BA%20%20%20%20processWithoutCycles%28root,%20data,%20new%20Set%28%29,%20true%29;A%20%20%7DAA%20%20/**A%20%20%20*%20Internal%20process%28%29%20method%20that%20stops%20cycles%20while%20processing.A%20%20%20*%20@param%20%7B!ProcessingRoot%7D%20rootA%20%20%20*%20@param%20%7B!LoadTimeData%7D%20dataA%20%20%20*%20@param%20%7B!Set%3CProcessingRoot%3E%7D%20visited%20Already%20visited%20roots.A%20%20%20*%20@param%20%7Bboolean%7D%20mark%20Whether%20nodes%20should%20be%20marked%20processed.A%20%20%20*/A%20%20function%20processWithoutCycles%28root,%20data,%20visited,%20mark%29%20%7BA%20%20%20%20if%20%28visited.has%28root%29%29%20%7BA%20%20%20%20%20%20//%20Found%20a%20cycle.%20Stop%20it.A%20%20%20%20%20%20return;A%20%20%20%20%7DAA%20%20%20%20//%20Mark%20the%20node%20as%20visited%20before%20recursing.A%20%20%20%20visited.add%28root%29;AA%20%20%20%20var%20importLinks%20=%20root.querySelectorAll%28link%5Brel=import%5D%29;A%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20importLinks.length;%20++i%29%20%7BA%20%20%20%20%20%20var%20importLink%20=%20/**%20@type%20%7B!HTMLLinkElement%7D%20*/%20%28importLinks%5Bi%5D%29;A%20%20%20%20%20%20if%20%28!importLink.import%29%20%7BA%20%20%20%20%20%20%20%20//%20Happens%20when%20a%20%3Clink%20rel=import%3E%20is%20inside%20a%20%3Ctemplate%3E.A%20%20%20%20%20%20%20%20//%20TODO%28dbeam%29%3A%20should%20we%20log%20an%20error%20if%20we%20detect%20that%20here%3FA%20%20%20%20%20%20%20%20continue;A%20%20%20%20%20%20%7DA%20%20%20%20%20%20processWithoutCycles%28importLink.import,%20data,%20visited,%20mark%29;A%20%20%20%20%7DAA%20%20%20%20var%20templates%20=%20root.querySelectorAll%28template%29;A%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20templates.length;%20++i%29%20%7BA%20%20%20%20%20%20var%20template%20=%20/**%20@type%20%7BHTMLTemplateElement%7D%20*/%20%28templates%5Bi%5D%29;A%20%20%20%20%20%20if%20%28!template.content%29A%20%20%20%20%20%20%20%20continue;A%20%20%20%20%20%20processWithoutCycles%28template.content,%20data,%20visited,%20mark%29;A%20%20%20%20%7DAA%20%20%20%20var%20isElement%20=%20root%20instanceof%20Element;A%20%20%20%20if%20%28isElement%20&&%20root.webkitMatchesSelector%28selector%29%29A%20%20%20%20%20%20processElement%28/**%20@type%20%7B!Element%7D%20*/%20%28root%29,%20data,%20visited%29;AA%20%20%20%20var%20elements%20=%20root.querySelectorAll%28selector%29;A%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20elements.length;%20++i%29%20%7BA%20%20%20%20%20%20processElement%28elements%5Bi%5D,%20data,%20visited%29;A%20%20%20%20%7DAA%20%20%20%20if%20%28mark%29%20%7BA%20%20%20%20%20%20var%20processed%20=%20isElement%20%3F%20%5Broot%5D%20%3A%20root.children;A%20%20%20%20%20%20if%20%28processed%29%20%7BA%20%20%20%20%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20processed.length;%20++i%29%20%7BA%20%20%20%20%20%20%20%20%20%20processed%5Bi%5D.setAttribute%28i18n-processed,%20%29;A%20%20%20%20%20%20%20%20%7DA%20%20%20%20%20%20%7DA%20%20%20%20%7DA%20%20%7DAA%20%20/**A%20%20%20*%20Run%20through%20various%20%5Bi18n-*%5D%20attributes%20and%20populate.A%20%20%20*%20@param%20%7B!Element%7D%20elementA%20%20%20*%20@param%20%7B!LoadTimeData%7D%20dataA%20%20%20*%20@param%20%7B!Set%3CProcessingRoot%3E%7D%20visitedA%20%20%20*/A%20%20function%20processElement%28element,%20data,%20visited%29%20%7BA%20%20%20%20for%20%28var%20i%20=%200;%20i%20%3C%20attributeNames.length;%20i++%29%20%7BA%20%20%20%20%20%20var%20name%20=%20attributeNames%5Bi%5D;A%20%20%20%20%20%20var%20attribute%20=%20element.getAttribute%28name%29;A%20%20%20%20%20%20if%20%28attribute%20!=%20null%29A%20%20%20%20%20%20%20%20handlers%5Bname%5D%28element,%20attribute,%20data,%20visited%29;A%20%20%20%20%7DA%20%20%7DAA%20%20return%20%7Bprocess%3A%20process%7D;A%7D%28%29%29;AA//%20//%20Copyright%202017%20The%20Chromium%20Authors.%20All%20rights%20reserved.A//%20Use%20of%20this%20source%20code%20is%20governed%20by%20a%20BSD-style%20license%20that%20can%20beA//%20found%20in%20the%20LICENSE%20file.AAi18nTemplate.process%28document,%20loadTimeData%29;AA%3C/script%3E#)
    NET::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN

    -Pim



  • On 23/03/2018 at 03:03, xxxxxxxx wrote:

    I get the same error with Firefox. I can only visit the PluginCafe via the Private Browsing mode.



  • On 23/03/2018 at 06:08, xxxxxxxx wrote:

    Hi,

    at first I thought, it was the same issue as discussed here: Cannot access developers.maxon.net

    Now, that Niklas mentions he has the same issue with www.plugincafe.com, I'm a bit confused.
    Here we experienced the same issues on developers.maxon.net, labs.maxon.net and also help.maxon.net. The link provided by Sebastian (clearing the HSTS cache for above domains ) in above mentioned thread (https://www.thesslstore.com/blog/clear-hsts-settings-chrome-firefox/) solved the issues completely for us. And we never experienced or heard about such issues on Plugin Café.

    Can you both please try, if clearing the HSTS cache helps nevertheless?
    By the way, here we use Chrome, Firefox, Edge and Safari to browse these domains, currently without any issues.



  • On 23/03/2018 at 12:44, xxxxxxxx wrote:

    Yes, that solved the issue at my side.
    Thanks.

    I just insert developers.maxon.net and clicked Add!

    -Pim