<commit_before><!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Mozilla | Log in</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      body,html {
        padding:0;
        margin:0;
      }
      .table {
        display:table;
        position:absolute;
        height:100%;
        width:100%;
        background:linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,0));
        background-color:#e8ebef;
      }
      .cell {
        display:table-cell;
        vertical-align:middle;
      }
      .content {
        padding:25px 0;
        margin-left:auto;
        margin-right:auto;
        width:280px;
      }
      #widget-container .auth0-lock-header-bg {
        background: #d7d3c8;
      }
      .auth0-label-submit {
        color:#4d4e53;
        font-weight:600;
      }
      .auth0-lock-form > div > div {display: none;}
      #widget-container button.auth0-lock-submit {display: none;}

      .auth0-lock-form > div > div.auth0-lock-pane-separator {display: none;}
      .auth0-lock-form > div > div.auth-lock-social-buttons-pane {display: inherit;}
      .auth0-lock-form > div > div.auth-lock-ldap-button {display: inherit;}
      .auth0-lock-ldap-button.auth0-lock-ldap-big-button {
        display: block;
        margin: 10px 0 0;
        width: 100%;
      }
      #widget-container .auth0-lock-ldap-button {
        border: 0;
        padding: 0;
        box-sizing: border-box;
        overflow: hidden;
        border-radius: 3px;
        position: relative;
        height: 40px;
        background-color:#c13832;
        text-align: center;
        transition:background-color 0.3s;
        -webkit-transition:background-color 0.3s;
      }
      .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-text, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-text:focus, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-icon, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-icon:focus {
        background-color:rgba(0,0,0,0.3);
      }
      .auth0-lock-ldap-button-icon {
        background-color: rgba(0,0,0,0.3);
        width: 40px;
        height: 40px;
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transition: background-color 0.3s;
            background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTQuOTk2IiBoZWlnaHQ9IjE5Ny41NjMiPjxwYXRoIGQ9Ik00NS45NjggMGMzLjM4IDUuMjIgNC44NzIgOS44NzYgNi43NiAxOS43QzY1Ljk1NCA2Ljc5MiA4Mi4yNiAwIDEwMC4wNTcgMGMxNi4wNzQgMCAyOS4yNjUgNS4yMiAzOS40NzMgMTUuODc0IDIuNzUgMi42NyA1LjQgNi4xMTUgNy42OSA5LjQ5NkMxNjQuOTggNy4xNzYgMTgwLjg5IDAgMjAyLjIgMGMxNS4xOCAwIDI5LjU2NCA0LjU0IDM4LjM0OCAxMi4wOTYgMTAuOTcgOS40OCAxNC40NDggMjAuODc4IDE0LjQ0OCA0Ny40MTN2MTM4LjA1M0gyMDUuNjhWNjkuNGMwLTIzLjIzMy0yLjc1LTI3LjcyNS0xNS45NzQtMjcuNzI1LTkuNDc4IDAtMjIuOCA2LjQ2NS0zMy43MzggMTYuMzI0djEzOS41NjNoLTQ4LjEyNFY3MS4yMmMwLTI0LjIyNC0zLjUxLTI5LjkxLTE3LjYzLTI5LjkxLTkuMzggMC0yMi4zNzMgNC44NTctMzMuMzEgMTQuNzY2djE0MS40ODdINy4yNThWNjIuMTRDNy4yNTggMzQuMSA1LjMzNiAyMS45OSAwIDEyLjQ2Mkw0NS45NjggMCIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=");
        background-repeat: no-repeat;
        background-size: 50%;
        background-position: center center;
      }
      .auth0-lock-ldap-button-text {
        box-sizing: border-box;
        display: block;
        overflow: hidden;
        width: 100%;
        padding-left: 54px;
        padding-right: 15px;
        line-height: 40px;
        text-align: left;
        text-transform: uppercase;
        text-overflow: ellipsis;
        font-size: 10px;
        font-weight: 600;
        letter-spacing: 0.7px;
        color: #fff;
        white-space: nowrap;
        -webkit-transition: background 0.3s;
      }
  </style>
</head>
<body>

 <div class="table">
   <div class="cell">
     <div class="content">
       <!-- WIDGET -->
       <div id="widget-container"></div>
       <!-- TOS -->
       <p id="tos" style="padding-top:10px;visibility:hidden">
         When using this website, you agree to the <a id="tosurl" href="https://example.com/link/to/specific/terms-of-service">terms of service</a><!-- This is a placeholder link until there is a specific ToS and site which requires it -->
       </p>
     </div>
   </div>
 </div>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 <!--[if IE 8]>
 <script src="//cdnjs.cloudflare.com/ajax/libs/ie8/0.2.5/ie8.js"></script>
 <![endif]-->

 <!--[if lte IE 9]>
 <script src="https://cdn.auth0.com/js/base64.js"></script>
 <script src="https://cdn.auth0.com/js/es5-shim.min.js"></script>
 <![endif]-->

 <!-- This URL is to be manually updated -->
 <script src="https://cdn.auth0.com/js/lock/10.5/lock.min.js"></script>
 <script>
    var APPS_WITH_TOS = [['phonebook-dev', 'https://www.mozilla.org/en-US/privacy/']];
    // See https://auth0.com/docs/libraries/lock/v10/api and https://auth0.com/docs/libraries/lock/v10/customization for setup
    // Decode utf8 characters properly
    var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@'))));

    // Example contents of the @@config@@ template variable
    //{
    //  "auth0Domain":"auth-dev.mozilla.auth0.com",
    //  "callbackOnLocationHash":false,
    //  "callbackURL":"{YOUR_APP_CALLBACK_URL}",
    //  "cdn":"https://rta-dev.mozilla.auth0.com/",
    //  "clientID":"{YOUR_CLIENT_ID}",
    //  "dict":{
    //    "signin":{
    //      "title":"Default App"
    //    }
    //  },
    //  "extraParams":{
    //
    //  },
    //  "internalOptions":{
    //
    //  },
    //  "prompt":false,
    //  "widgetUrl":"https://cdn.auth0.com/w2/auth0-widget-5.2.min.js"
    //}

    var connection = config.connection;
    var prompt = config.prompt;
    var logo = '<svg xmlns="http://www.w3.org/2000/svg" width="1412.487" height="571.237"><g fill="#4e4f57"><path d="M194.407 214.46c3.382 5.22 4.873 9.876 6.762 19.7 13.223-12.908 29.53-19.7 47.326-19.7 16.074 0 29.265 5.22 39.473 15.874 2.75 2.67 5.4 6.115 7.69 9.496 17.76-18.194 33.67-25.37 54.98-25.37 15.18 0 29.564 4.54 38.348 12.096 10.97 9.48 14.448 20.878 14.448 47.413V412.02H354.12V283.86c0-23.233-2.75-27.725-15.974-27.725-9.48 0-22.8 6.465-33.74 16.324l.002 139.563h-48.124V285.68c0-24.224-3.51-29.91-17.63-29.91-9.38 0-22.373 4.858-33.31 14.766v141.487H155.7V276.6c0-28.04-1.923-40.15-7.258-49.678l45.968-12.462M493.62 271.297c-3.483 10.275-5.336 23.914-5.336 43.27 0 22.32 2.285 39.092 6.427 48.917 4.575 10.624 16.01 15.926 25.785 15.926 22.01 0 31.42-19.703 31.42-65.588 0-26.186-3.414-43.286-10.206-52.033-4.876-6.4-12.795-10.21-21.943-10.21-12.162 0-22.04 7.555-26.148 19.717zm91.37-28.036c15.51 18.196 22.44 39.422 22.44 70.894 0 33.373-7.656 56.172-24.395 75.098-14.714 16.672-34.102 26.947-63.997 26.947-52.795 0-87.23-39.46-87.23-100.49 0-61.085 34.798-101.683 87.23-101.683 27.673 0 49.283 9.514 65.952 29.234M770.885 217.84v34.896l-85.77 124.005h89.12l-12.165 35.282H619.162v-31.468l91.308-127.05h-83.688V217.84h144.103M850.862 213.266v198.756h-50.81v-190.77l50.81-7.986zm5.964-48.886c0 17.47-13.887 31.42-31.45 31.42-17.005 0-30.988-13.95-30.988-31.42 0-17.433 14.45-31.5 31.845-31.5 17.037 0 30.593 14.067 30.593 31.5M943.394 181.85v151.294c0 33.422.398 37.915 3.448 43.217 1.922 3.446 6.03 5.305 10.274 5.305 1.823 0 2.915 0 5.666-.7l8.684 30.31c-8.684 3.396-19.32 5.29-30.322 5.29-21.678 0-39.11-10.213-45.145-26.485-3.81-9.875-4.64-15.973-4.64-43.646V201.5c0-25.388-.66-40.9-2.554-58.414l51.97-11.75c1.823 10.61 2.618 23.135 2.618 50.514M1048.785 181.85v151.294c0 33.422.434 37.915 3.55 43.217 1.788 3.446 5.896 5.305 10.14 5.305 1.923 0 3.083 0 5.766-.7l8.654 30.31c-8.653 3.396-19.293 5.29-30.33 5.29-21.638 0-39.104-10.213-45.17-26.485-3.876-9.875-4.508-15.973-4.508-43.646V201.5c0-25.388-.76-40.9-2.717-58.414l51.9-11.75c2.09 10.61 2.715 23.135 2.715 50.514M1194.38 327.08c-35.13 0-47.458 6.395-47.458 29.627 0 15.112 9.612 25.353 22.502 25.353 9.446 0 18.993-4.938 26.517-13.256l.83-41.725h-2.39zm-65.854-102.016c18.894-7.988 35.136-11.37 53.03-11.37 32.68 0 55.018 12.1 62.67 33.74 2.52 7.957 3.68 14.022 3.45 34.898l-1.228 65.195v3.444c0 20.85 3.448 28.836 18.302 39.81l-26.983 31.15c-11.868-4.97-22.437-13.72-27.378-23.548-3.745 3.83-7.955 7.542-11.8 10.225-9.41 6.83-23.164 10.64-39.075 10.64-43.248 0-66.745-22.04-66.745-60.65 0-45.587 31.55-66.85 93.325-66.85 3.714 0 7.226 0 11.436.432v-7.92c0-21.66-4.21-28.87-22.9-28.87-16.108 0-35.23 7.92-56.046 21.99l-21.642-36.422c10.308-6.465 17.9-10.225 31.584-15.894"/></g></svg>';

    var options = {
      allowForgotPassword: false,
      allowSignUp: false,
      auth: {
        redirectUrl: config.callbackURL,
        responseType: config.callbackOnLocationHash ? 'token' : 'code',
        params: config.internalOptions
      },
      assetsUrl: config.cdn.slice(0,-1),     // The next version of lock will deprecate this property
      clientBaseUrl: config.cdn.slice(0,-1), // This doesn't work now but will in the next release of Lock
      avatar: null,
      container: 'widget-container',
      rememberLastLogin: true,
      connections: config.connection ? [config.connection] : null,
      mustAcceptTerms: true,
      languageDictionary: { // see https://github.com/auth0/lock/blob/master/src/i18n/en.js
        emailInputPlaceholder: "<EMAIL>",
        title: ""
      },
      theme: {
        logo: 'data:image/svg+xml;base64,' + window.btoa(logo),
        primaryColor: "#d7d3c8"
      },
      closable: false
    };

    var lock = new Auth0Lock(config.clientID, config.auth0Domain, options);
    var addLDAPButton = function() {
      document.querySelector(".auth0-lock-form > div > div.auth0-lock-pane-separator").insertAdjacentHTML('afterend', '<button class="auth0-lock-ldap-button auth0-lock-ldap-big-button" type="button"><div class="auth0-lock-ldap-button-icon"></div><div class="auth0-lock-ldap-button-text">Log in with LDAP</div></button>');
      $(".auth0-lock-form > div > div:not([class]) > p ").html("<hr />");
      $("button.auth0-lock-ldap-button").click(function() {
        $("button.auth0-lock-submit").wrap("<div class='auth0-lock-submit-container' style='display: none;'></div>").show();
        $("button.auth0-lock-ldap-button").slideToggle();
        $(".auth0-lock-form > div > div:not([class])").slideToggle();
        $("div.auth0-lock-submit-container").slideToggle();
      });
    };
    lock.on("signin ready", addLDAPButton);
    lock.show();
    for (app in APPS_WITH_TOS) {
      if (APPS_WITH_TOS[app][0] == config.dict.signin.title) {
        tosurl.href=APPS_WITH_TOS[app][1];
        tos.style.visibility="visible";
      }
    }
</script>
</body>
</html><commit_msg>Add passwordless authentication Add a back button to navigate back to the connection selection buttons Change UI to clear all buttons when a user chooses passwordless or LDAP<commit_after><!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Mozilla | Log in</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      body,html {
        padding:0;
        margin:0;
      }
      .table {
        display:table;
        position:absolute;
        height:100%;
        width:100%;
        background:linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,0));
        background-color:#e8ebef;
      }
      .cell {
        display:table-cell;
        vertical-align:middle;
      }
      .content {
        padding:25px 0;
        margin-left:auto;
        margin-right:auto;
        width:280px;
      }
      #widget-container .auth0-lock-header-bg {
        background: #d7d3c8;
      }
      .auth0-label-submit {
        color:#4d4e53;
        font-weight:600;
      }
      .auth0-lock-form > div > div {display: none;}
      #widget-container button.auth0-lock-submit {display: none;}
      .auth0-lock-form > div > div.auth0-lock-pane-separator {display: none;}
      .auth0-lock-form > div > div.auth-lock-social-buttons-pane {display: inherit;}
      .auth0-lock-form > div > div.auth-lock-ldap-button {display: inherit;}
      .auth0-lock-form > div > div.auth-lock-passwordless-button {display: inherit;}
      .auth0-lock-form > div > div.auth0-lock-back {display: none;}
      .auth0-lock-ldap-button.auth0-lock-ldap-big-button, .auth0-lock-passwordless-button.auth0-lock-passwordless-big-button {
        display: block;
        margin-top: 10px;
        width: 100%;
      }


      #widget-container .auth0-lock-back {
          overflow: hidden;
      }

      #widget-container .auth0-lock-back-button {
          padding: 10px;
          text-align: right;
          text-transform: uppercase;
          letter-spacing: 1px;
          font-size: 14px;
          font-weight: 600;
          color: #4d4e53;
          position: static;
          float: right;
          width: unset;
          border: none;
          box-shadow: none;
          height: 100%;
      }

      #widget-container .auth0-lock-ldap-button {
          background-color: #c13832;
      }
      #widget-container .auth0-lock-passwordless-button {
          background-color: #667761;
      }
      #widget-container .auth0-lock-ldap-button, #widget-container .auth0-lock-passwordless-button {
        border: 0;
        padding: 0;
        box-sizing: border-box;
        overflow: hidden;
        border-radius: 3px;
        position: relative;
        height: 40px;
        text-align: center;
        transition:background-color 0.3s;
        -webkit-transition:background-color 0.3s;
      }
      .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-text, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-text:focus, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-icon, .auth0-lock-ldap-button:hover .auth0-lock-ldap-button-icon:focus, .auth0-lock-passwordless-button:hover .auth0-lock-passwordless-button-text, .auth0-lock-passwordless-button:hover .auth0-lock-passwordless-button-text:focus, .auth0-lock-passwordless-button:hover .auth0-lock-passwordless-button-icon, .auth0-lock-passwordless-button:hover .auth0-lock-passwordless-button-icon:focus {
        background-color:rgba(0,0,0,0.3);
      }

      .auth0-lock-ldap-button-icon {
        background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTQuOTk2IiBoZWlnaHQ9IjE5Ny41NjMiPjxwYXRoIGQ9Ik00NS45NjggMGMzLjM4IDUuMjIgNC44NzIgOS44NzYgNi43NiAxOS43QzY1Ljk1NCA2Ljc5MiA4Mi4yNiAwIDEwMC4wNTcgMGMxNi4wNzQgMCAyOS4yNjUgNS4yMiAzOS40NzMgMTUuODc0IDIuNzUgMi42NyA1LjQgNi4xMTUgNy42OSA5LjQ5NkMxNjQuOTggNy4xNzYgMTgwLjg5IDAgMjAyLjIgMGMxNS4xOCAwIDI5LjU2NCA0LjU0IDM4LjM0OCAxMi4wOTYgMTAuOTcgOS40OCAxNC40NDggMjAuODc4IDE0LjQ0OCA0Ny40MTN2MTM4LjA1M0gyMDUuNjhWNjkuNGMwLTIzLjIzMy0yLjc1LTI3LjcyNS0xNS45NzQtMjcuNzI1LTkuNDc4IDAtMjIuOCA2LjQ2NS0zMy43MzggMTYuMzI0djEzOS41NjNoLTQ4LjEyNFY3MS4yMmMwLTI0LjIyNC0zLjUxLTI5LjkxLTE3LjYzLTI5LjkxLTkuMzggMC0yMi4zNzMgNC44NTctMzMuMzEgMTQuNzY2djE0MS40ODdINy4yNThWNjIuMTRDNy4yNTggMzQuMSA1LjMzNiAyMS45OSAwIDEyLjQ2Mkw0NS45NjggMCIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=");
      }

      .auth0-lock-passwordless-button-icon {
        background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQuNTQxIiBoZWlnaHQ9Ijg1LjM3OCIgdmlld0JveD0iMCAwIDEwNC41NDExNSA4NS4zNzgxNTEiPjx0aXRsZT5TbGljZSAxPC90aXRsZT48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNODcuOSA4Ljc0TDQ4LjkwNyAzOS44M2MtLjY3My42NzItMS4zNDUgMS4wMDgtMi4xODUgMS4wMDgtLjg0IDAtMS41MTMtLjE2OC0yLjAxNy0uODRMNS44ODIgOC43NHY1OC40ODdjMCAxLjY4IDEuMzQ1IDIuODU3IDIuODU3IDIuODU3aDMxLjQyOHY1Ljg4MkgyLjg1OEMxLjE3NSA3NS45NjYgMCA3NC42MjIgMCA3My4xMVYyLjg1NmMwLS44NC4zMzYtMS41MTIuODQtMS44NS4xNjgtLjMzNS4xNjgtLjE2Ny4zMzYtLjMzNUMxLjY4LjMzNiAyLjE4NiAwIDIuNjkgMGg4OC4wNjVjMS44NSAwIDMuMDI3IDEuMzQ1IDMuMDI3IDIuODU3VjQ4Ljc0SDg3Ljl2LTQwek0xMS4wOSA1Ljg4bDM1LjYzIDI4LjU3MiAzNS42My0yOC41NzJoLTcxLjI2eiIvPjxwYXRoIGQ9Ik05MC40MiA1Ni45NzVoLS4xNjhjLTYuMzg2LjE2OC0xMS41OTcgNC41MzgtMTMuMjc3IDEwLjQybC0yMy4xOTMuMzM2Yy0xLjY4IDAtMy4wMjYgMS4zNDYtMy4wMjYgMy4wMjYgMCAxLjE3Ny42NzMgMi4xODUgMS44NSAyLjY5aC0uMTdsNS4yMSA1LjA0IDQuNzA3LTQuODczSDYwLjg0aDIuMDE3bDQuODc0IDQuNzA2IDQuNzA3LTQuODc1aC0xLjUxM2w1Ljg4My0uMTY4YzEuMDA4IDYuODkgNi44OSAxMi4xIDEzLjc4IDEyLjFoLjE3YzcuNzMtLjE2NyAxMy45NS02LjcyMiAxMy43OC0xNC40NTMtLjMzNS03LjczLTYuNTU0LTEzLjk1LTE0LjExNy0xMy45NXptMCAyMi41MmMtNC41MzggMC04LjA2Ny0zLjY5Ny04LjA2Ny04LjA2NiAwLTIuMTg2Ljg0LTQuMzcgMi4zNTMtNS44ODQgMS41MTItMS41MTIgMy41My0yLjM1MyA1LjU0Ni0yLjUyaC4xNjhjNC4zNyAwIDcuOSAzLjY5NyA3LjkgOC4wNjYgMCA0LjUzOC0zLjM2MiA4LjIzNi03LjkgOC40MDR6Ii8+PC9nPjwvc3ZnPgo=");
      }
      .auth0-lock-ldap-button-icon, .auth0-lock-passwordless-button-icon {
        background-color: rgba(0,0,0,0.3);
        width: 40px;
        height: 40px;
        position: absolute;
        top: 0;
        left: 0;
        -webkit-transition: background-color 0.3s;
        background-repeat: no-repeat;
        background-size: 50%;
        background-position: center center;
      }
      .auth0-lock-ldap-button-text, .auth0-lock-passwordless-button-text {
        box-sizing: border-box;
        display: block;
        overflow: hidden;
        width: 100%;
        padding-left: 54px;
        padding-right: 15px;
        line-height: 40px;
        text-align: left;
        text-transform: uppercase;
        text-overflow: ellipsis;
        font-size: 10px;
        font-weight: 600;
        letter-spacing: 0.7px;
        color: #fff;
        white-space: nowrap;
        -webkit-transition: background 0.3s;
      }
      #widget-container .auth0-lock-passwordless-submit {
        background-color: rgb(215, 211, 200);
        border: 0;
        padding: 14px;
        box-sizing: border-box;
        width: 100%;
        height: 70px;
        overflow: hidden;
        border-radius: 0 0 5px 5px;
        transition: 0.2s ease-in-out;
        color: #fff;
        letter-spacing: 1px;
        font-size: 14px;
        text-transform: uppercase;
      }

      #widget-container .auth0-lock-passwordless-submit:hover:not([disabled]) span {
         -webkit-transform:scale(1.05);
         transform:scale(1.05);
      }

      .auth0-lock-passwordless-confirmation {
        text-align: center;
        line-height: 2;
        font-size: 14px;
        color: #666;

      }
      .checkmark {
        width: 56px;
        height: 56px;
        border-radius: 50%;
        display: block;
        stroke-width: 2;
        stroke: #fff;
        stroke-miterlimit: 10;
        margin: 0 auto;
        box-shadow: inset 0 0 0 #7ac142;
        -webkit-animation: fill .4s ease-in-out .7s forwards,scale .3s ease-in-out 1.1s both;
        animation: fill .4s ease-in-out .7s forwards,scale .3s ease-in-out 1.1s both;
      }
  </style>
</head>
<body>

 <div class="table">
   <div class="cell">
     <div class="content">
       <!-- WIDGET -->
       <div id="widget-container"></div>
       <!-- TOS -->
       <p id="tos" style="padding-top:10px;visibility:hidden">
         When using this website, you agree to the <a id="tosurl" href="https://example.com/link/to/specific/terms-of-service">terms of service</a><!-- This is a placeholder link until there is a specific ToS and site which requires it -->
       </p>
     </div>
   </div>
 </div>

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 <!--[if IE 8]>
 <script src="//cdnjs.cloudflare.com/ajax/libs/ie8/0.2.5/ie8.js"></script>
 <![endif]-->

 <!--[if lte IE 9]>
 <script src="https://cdn.auth0.com/js/base64.js"></script>
 <script src="https://cdn.auth0.com/js/es5-shim.min.js"></script>
 <![endif]-->

 <!-- This URL is to be manually updated -->
 <script src="https://cdn.auth0.com/js/lock/10.5/lock.min.js"></script>
 <script src="https://cdn.auth0.com/w2/auth0-7.4.min.js"></script>
 <script>
    var APPS_WITH_TOS = [['phonebook-dev', 'https://www.mozilla.org/en-US/privacy/']];
    // See https://auth0.com/docs/libraries/lock/v10/api and https://auth0.com/docs/libraries/lock/v10/customization for setup
    // Decode utf8 characters properly
    var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@'))));

    // Example contents of the @@config@@ template variable
    //{
    //  "auth0Domain":"auth-dev.mozilla.auth0.com",
    //  "callbackOnLocationHash":false,
    //  "callbackURL":"{YOUR_APP_CALLBACK_URL}",
    //  "cdn":"https://rta-dev.mozilla.auth0.com/",
    //  "clientID":"{YOUR_CLIENT_ID}",
    //  "dict":{
    //    "signin":{
    //      "title":"Default App"
    //    }
    //  },
    //  "extraParams":{
    //
    //  },
    //  "internalOptions":{
    //
    //  },
    //  "prompt":false,
    //  "widgetUrl":"https://cdn.auth0.com/w2/auth0-widget-5.2.min.js"
    //}

    var connection = config.connection;
    var prompt = config.prompt;
    var logo = '<svg xmlns="http://www.w3.org/2000/svg" width="1412.487" height="571.237"><g fill="#4e4f57"><path d="M194.407 214.46c3.382 5.22 4.873 9.876 6.762 19.7 13.223-12.908 29.53-19.7 47.326-19.7 16.074 0 29.265 5.22 39.473 15.874 2.75 2.67 5.4 6.115 7.69 9.496 17.76-18.194 33.67-25.37 54.98-25.37 15.18 0 29.564 4.54 38.348 12.096 10.97 9.48 14.448 20.878 14.448 47.413V412.02H354.12V283.86c0-23.233-2.75-27.725-15.974-27.725-9.48 0-22.8 6.465-33.74 16.324l.002 139.563h-48.124V285.68c0-24.224-3.51-29.91-17.63-29.91-9.38 0-22.373 4.858-33.31 14.766v141.487H155.7V276.6c0-28.04-1.923-40.15-7.258-49.678l45.968-12.462M493.62 271.297c-3.483 10.275-5.336 23.914-5.336 43.27 0 22.32 2.285 39.092 6.427 48.917 4.575 10.624 16.01 15.926 25.785 15.926 22.01 0 31.42-19.703 31.42-65.588 0-26.186-3.414-43.286-10.206-52.033-4.876-6.4-12.795-10.21-21.943-10.21-12.162 0-22.04 7.555-26.148 19.717zm91.37-28.036c15.51 18.196 22.44 39.422 22.44 70.894 0 33.373-7.656 56.172-24.395 75.098-14.714 16.672-34.102 26.947-63.997 26.947-52.795 0-87.23-39.46-87.23-100.49 0-61.085 34.798-101.683 87.23-101.683 27.673 0 49.283 9.514 65.952 29.234M770.885 217.84v34.896l-85.77 124.005h89.12l-12.165 35.282H619.162v-31.468l91.308-127.05h-83.688V217.84h144.103M850.862 213.266v198.756h-50.81v-190.77l50.81-7.986zm5.964-48.886c0 17.47-13.887 31.42-31.45 31.42-17.005 0-30.988-13.95-30.988-31.42 0-17.433 14.45-31.5 31.845-31.5 17.037 0 30.593 14.067 30.593 31.5M943.394 181.85v151.294c0 33.422.398 37.915 3.448 43.217 1.922 3.446 6.03 5.305 10.274 5.305 1.823 0 2.915 0 5.666-.7l8.684 30.31c-8.684 3.396-19.32 5.29-30.322 5.29-21.678 0-39.11-10.213-45.145-26.485-3.81-9.875-4.64-15.973-4.64-43.646V201.5c0-25.388-.66-40.9-2.554-58.414l51.97-11.75c1.823 10.61 2.618 23.135 2.618 50.514M1048.785 181.85v151.294c0 33.422.434 37.915 3.55 43.217 1.788 3.446 5.896 5.305 10.14 5.305 1.923 0 3.083 0 5.766-.7l8.654 30.31c-8.653 3.396-19.293 5.29-30.33 5.29-21.638 0-39.104-10.213-45.17-26.485-3.876-9.875-4.508-15.973-4.508-43.646V201.5c0-25.388-.76-40.9-2.717-58.414l51.9-11.75c2.09 10.61 2.715 23.135 2.715 50.514M1194.38 327.08c-35.13 0-47.458 6.395-47.458 29.627 0 15.112 9.612 25.353 22.502 25.353 9.446 0 18.993-4.938 26.517-13.256l.83-41.725h-2.39zm-65.854-102.016c18.894-7.988 35.136-11.37 53.03-11.37 32.68 0 55.018 12.1 62.67 33.74 2.52 7.957 3.68 14.022 3.45 34.898l-1.228 65.195v3.444c0 20.85 3.448 28.836 18.302 39.81l-26.983 31.15c-11.868-4.97-22.437-13.72-27.378-23.548-3.745 3.83-7.955 7.542-11.8 10.225-9.41 6.83-23.164 10.64-39.075 10.64-43.248 0-66.745-22.04-66.745-60.65 0-45.587 31.55-66.85 93.325-66.85 3.714 0 7.226 0 11.436.432v-7.92c0-21.66-4.21-28.87-22.9-28.87-16.108 0-35.23 7.92-56.046 21.99l-21.642-36.422c10.308-6.465 17.9-10.225 31.584-15.894"/></g></svg>';

    var options = {
      allowForgotPassword: false,
      allowSignUp: false,
      auth: {
        redirectUrl: config.callbackURL,
        responseType: config.callbackOnLocationHash ? 'token' : 'code',
        params: config.internalOptions
      },
      assetsUrl: config.cdn.slice(0,-1),     // The next version of lock will deprecate this property
      clientBaseUrl: config.cdn.slice(0,-1), // This doesn't work now but will in the next release of Lock
      avatar: null,
      container: 'widget-container',
      rememberLastLogin: true,
      connections: config.connection ? [config.connection] : null,
      mustAcceptTerms: true,
      languageDictionary: { // see https://github.com/auth0/lock/blob/master/src/i18n/en.js
        emailInputPlaceholder: "<EMAIL>",
        title: ""
      },
      theme: {
        logo: 'data:image/svg+xml;base64,' + window.btoa(logo),
        primaryColor: "#d7d3c8"
      },
      closable: false
    };

    var lock = new Auth0Lock(config.clientID, config.auth0Domain, options);
    var sendEmail = function() {
      var email = $("input[name=passwordlessEmail]").val();
      const auth0 = new Auth0({
        clientID: config.clientID,
        domain: config.auth0Domain,
        callbackURL: config.callbackURL
      });
      auth0.requestMagicLink({ email: email , send: 'link'}, function(err) {
        var message;
        var icon;
        if (err) {
          message = "We were unable to send the email : " + err.error_description;
          icon = '  <svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56"><circle cx="225" cy="225" r="225" transform="matrix(.124 0 0 .124 0 .2)" fill="#c33"/><g fill="#fff" stroke="#fff" stroke-width="70"><path d="M13.236 13.85l29.328 29.328M13.236 43.178L42.564 13.85" stroke-width="8.68"/></g></svg>';
        } else {
          message = "We sent you a link to sign in";
          icon = '  <svg width="56px" height="56px" viewBox="0 0 52 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="checkmark"> <circle cx="26" cy="26" r="25" fill="none" class="checkmark__circle"></circle> <path fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8" class="checkmark__check"></path></svg>';
        }
        $(".auth0-lock-form").slideToggle();
        $(".auth0-lock-content").prepend(
          '<div class="auth0-lock-passwordless-confirmation" style="display:none;">' +
          icon +
          '  <p>' + message + '</p>' +
          '</div>');
        $(".auth0-lock-content > .auth0-lock-passwordless-confirmation").slideToggle();
        $("div.auth0-lock-submit-container").slideToggle();
      });
    };

    var customizeSubmitButton = function () {
      // This is broken out and run on the first click of a connection button
      // because when the lock "sigin ready" event is emitted, there is not
      // yet a submit button to modify
      if ($("div.auth0-lock-submit-container").length == 0) {
        $("button.auth0-lock-submit").wrap('<div class="auth0-lock-submit-container" style="display: none;"></div>');
        $(".auth0-lock-submit-container").append(
          '<button class="auth0-lock-passwordless-submit" style="display:none;" type="submit">' +
          '  <span class="auth0-label-submit">Send Email' +
          '    <span>' +
          '      <svg class="icon-text" height="12px" version="1.1" viewbox="0 0 8 12" width="8px" xmlns="http://www.w3.org/2000/svg">' +
          '        <g fill="none" fill-rule="evenodd" id="Symbols" stroke="none" stroke-width="1">' +
          '          <g fill="#FFFFFF" id="Web/Submit/Active" transform="translate(-148.000000, -32.000000)">' +
          '            <polygon id="Shape" points="148 33.4 149.4 32 155.4 38 149.4 44 148 42.6 152.6 38"></polygon>' +
          '          </g>' +
          '        </g>' +
          '      </svg>' +
          '    </span>' +
          '  </span>' +
          '</button>');
      }
    };

    var customizeLock = function() {
      $(".auth0-lock-form > div > div.auth0-lock-pane-separator").after(
        '<button class="auth0-lock-passwordless-button auth0-lock-passwordless-big-button" type="button">' +
        '  <div class="auth0-lock-passwordless-button-icon"></div>' +
        '  <div class="auth0-lock-passwordless-button-text">Log in with Email</div>' +
        '</button>' +
        '<div class="auth0-lock-passwordless-pane" style="display:none;">' +
        '  <div class="auth0-lock-input-block auth0-lock-input-email">' +
        '    <div class="auth0-lock-input-wrap auth0-lock-input-wrap-with-icon">' +
        '      <span>' +
        '        <svg class="auth0-lock-icon" height="13px" version="1.1" viewbox="0 0 32 26" width="14px" xmlns="http://www.w3.org/2000/svg">' +
        '          <g fill="none" fill-rule="evenodd" id="Page-1" sketch:type="MSPage" stroke="none" stroke-width="1">' +
        '            <g fill="#373A39" id="32px" sketch:type="MSLayerGroup" transform="translate(-2155.000000, -2317.000000)">' +
        '              <g id="Group-856" sketch:type="MSShapeGroup" transform="translate(1.000000, 1.000000)">' +
        '                <path d="M2184,2339 C2184,2339.55 2183.55,2340 2183,2340 L2157,2340 C2156.45,2340 2156,2339.55 2156,2339 L2156,2319 C2156,2318.45 2156.45,2318 2157,2318 L2183,2318 C2183.55,2318 2184,2318.45 2184,2319 L2184,2339 L2184,2339 Z M2184,2316 L2156,2316 C2154.89,2316 2154,2316.89 2154,2318 L2154,2340 C2154,2341.1 2154.89,2342 2156,2342 L2184,2342 C2185.1,2342 2186,2341.1 2186,2340 L2186,2318 C2186,2316.89 2185.1,2316 2184,2316 L2184,2316 Z M2176,2322 L2180,2322 L2180,2326 L2176,2326 L2176,2322 Z M2174,2328 L2182,2328 L2182,2320 L2174,2320 L2174,2328 Z M2158,2332 L2172,2332 L2172,2330 L2158,2330 L2158,2332 Z M2158,2336 L2172,2336 L2172,2334 L2158,2334 L2158,2336 Z" id="Fill-419"></path>' +
        '              </g>' +
        '            </g>' +
        '          </g>' +
        '        </svg>' +
        '      </span>' +
        '      <input autocomplete="off" class="auth0-lock-input" name="passwordlessEmail" placeholder="<EMAIL>" type="text" value="">' +
        '    </div>' +
        '  </div>' +
        '</div>' +
        '<button class="auth0-lock-ldap-button auth0-lock-ldap-big-button" type="button">' +
        '  <div class="auth0-lock-ldap-button-icon"></div><div class="auth0-lock-ldap-button-text">Log in with LDAP</div>' +
        '</button>');
      $(".auth0-lock-form > div").append(
        '<div class="auth0-lock-back">' +
        '  <button class="auth0-lock-back-button" type="button">' +
        '    <span class="">Back' +
        '      <span>' +
        '        <svg xmlns="http://www.w3.org/2000/svg" class="icon-text" height="12" viewBox="0 0 8 12" width="8"><path d="M6 0L0 6l6 6 1.4-1.4L2.8 6l4.6-4.6" fill="#4d4e53"/></svg>' +
        '      </span>' +
        '    </span>' +
        '  </button>' +
        '</div>');
      $(".auth0-lock-form > div > div:not([class]) > p ").remove();
      $(".auth0-lock-form > div > div:not([class]) > div.auth0-lock-input-password input.auth0-lock-input ").attr("placeholder", "your LDAP password");


      $("button.auth0-lock-ldap-button").click(function() {
        customizeSubmitButton();
        $("button.auth0-lock-submit").show();
        $("button.auth0-lock-passwordless-submit").hide();
        $("button.auth0-lock-ldap-button").slideToggle();
        $(".auth0-lock-back").slideToggle();
        $(".auth-lock-social-buttons-pane").slideToggle();
        $("button.auth0-lock-passwordless-button").slideToggle();
        $(".auth0-lock-form > div > div:not([class])").slideToggle();
        $("div.auth0-lock-submit-container").slideToggle();
      });
      $("button.auth0-lock-passwordless-button").click(function() {
        customizeSubmitButton();
        $("button.auth0-lock-ldap-button").slideToggle();
        $(".auth-lock-social-buttons-pane").slideToggle();
        $("button.auth0-lock-passwordless-button").slideToggle();
        $(".auth0-lock-back").slideToggle();
        $(".auth0-lock-passwordless-pane").slideToggle();
        $("button.auth0-lock-passwordless-submit").show();
        $("button.auth0-lock-submit").hide();
        $("div.auth0-lock-submit-container").slideToggle();
        $("button.auth0-lock-passwordless-submit").click(sendEmail);
        $("input[name=passwordlessEmail]").keyup(function(event) {
          if (event.keyCode == 13) {
            sendEmail();
            return false;
          }
        });
      });
      $("button.auth0-lock-back-button").click(function() {
          $("button.auth0-lock-ldap-button").slideToggle();
          $("button.auth0-lock-passwordless-button").slideToggle();
          $("div.auth0-lock-submit-container").slideToggle();
          $(".auth-lock-social-buttons-pane").slideToggle();
          $(".auth0-lock-back").slideToggle();
          $(".auth0-lock-passwordless-pane").slideUp();
          $(".auth0-lock-form > div > div:not([class])").slideUp();
      });
    };
    lock.on("signin ready", customizeLock);
    lock.show();
    for (app in APPS_WITH_TOS) {
      if (APPS_WITH_TOS[app][0] == config.dict.signin.title) {
        tosurl.href=APPS_WITH_TOS[app][1];
        tos.style.visibility="visible";
      }
    }
</script>
</body>
</html>
{'fraction_non_alphanumeric': 0.1656644800777454, 'fraction_numerical': 0.16393343051506318, 'mean_word_length': 2.727951998188611, 'pattern_counts': {'":': 24, '<': 193, '<?xml version=': 0, '>': 234, 'https://': 23, 'lorem ipsum': 0, 'www.': 10, 'xml': 13}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1498059', 'n_tokens_mistral': 16775, 'n_tokens_neox': 13393, 'n_words': 1839}