diff --git a/_config.yml b/_config.yml
index 2d08b7f30..9ee496a1a 100755
--- a/_config.yml
+++ b/_config.yml
@@ -160,7 +160,7 @@ settings:
enabled: true,
config: {
apiKey: 'AIzaSyA3-YBkywbzpstijvMqUwn_a0GQTi3EZQc',
- authDomain: 'auth.somiibo.com',
+ authDomain: 'somiibo.com',
databaseURL: 'https://somiibo-91d13.firebaseio.com',
projectId: 'somiibo-91d13',
storageBucket: 'somiibo-91d13.appspot.com',
diff --git a/_includes/master/global/foot.html b/_includes/master/global/foot.html
index dde71bcac..d3d28a8ca 100644
--- a/_includes/master/global/foot.html
+++ b/_includes/master/global/foot.html
@@ -114,8 +114,7 @@
{%- else -%}
{% assign bundle_optimization = site.settings.include-script-bundle-optimization %}
{% endif %}
-
-
+
{% endif %}
@@ -131,7 +130,7 @@
{%- else -%}
{% assign core_optimization = site.settings.include-script-core-optimization %}
{% endif %}
-
+
{% endif %}
@@ -152,7 +151,7 @@
{% endif %}
{% endif %}
{%- if slapform_include == true -%}
-
+
{% endif %}
diff --git a/_includes/master/global/head.html b/_includes/master/global/head.html
index d5e034e2d..607da254b 100644
--- a/_includes/master/global/head.html
+++ b/_includes/master/global/head.html
@@ -254,8 +254,7 @@
{% elsif layout.settings.include-css-bundle == false %}
{% elsif site.settings.include-css-bundle == false %}
{% else %}
-
-
+
{% endif %}
{%- if include.post-bundle-css != null -%}
diff --git a/_layouts/master/admin/main.html b/_layouts/master/admin/main.html
index d30f5328a..e9b198d51 100644
--- a/_layouts/master/admin/main.html
+++ b/_layouts/master/admin/main.html
@@ -66,7 +66,7 @@
-
+
{%- include /master/misc/embed-manager.html -%}
'
diff --git a/_layouts/master/authentication/account.html b/_layouts/master/authentication/account.html
index e21c06db1..6c44c2618 100644
--- a/_layouts/master/authentication/account.html
+++ b/_layouts/master/authentication/account.html
@@ -78,7 +78,7 @@
-
+
{%- include /master/misc/embed-manager.html -%}
'
diff --git a/_layouts/master/authentication/main.html b/_layouts/master/authentication/main.html
index 019e215aa..49c6488b1 100644
--- a/_layouts/master/authentication/main.html
+++ b/_layouts/master/authentication/main.html
@@ -46,7 +46,7 @@
-
+
{%- include /master/misc/embed-manager.html -%}
'
diff --git a/_layouts/master/misc/redirect.html b/_layouts/master/misc/redirect.html
index 95bd543f4..82172e53e 100644
--- a/_layouts/master/misc/redirect.html
+++ b/_layouts/master/misc/redirect.html
@@ -13,7 +13,7 @@
head:
post-bundle-css: '
-
+
'
body:
@@ -53,9 +53,9 @@
-
-
{{ site.brand.name }}
-
-
+
Taking you to the page you requested...
+
@@ -274,9 +274,9 @@ Thank you for your review!
Copy
-
+
-
+
@@ -153,7 +153,7 @@ {{ site.brand.name }} Tools
Manager.auth().ready(function () {
var select = Manager.dom().select;
-
+
// When changes are made to form, trigger function
$('#tools-form input, #tools-form textarea, #tools-form select').on('keydown change copy paste cut', function (event) {
if (event.target.matches('#url-opener')) {
diff --git a/special/master/scripts/firebase-auth/experiments.js b/special/master/scripts/firebase-auth/experiments.js
new file mode 100644
index 000000000..204922e55
--- /dev/null
+++ b/special/master/scripts/firebase-auth/experiments.js
@@ -0,0 +1,6 @@
+---
+permalink: /__/auth/experiments.js
+---
+
+(function(){window.EXPERIMENTS={DISPLAY_CONTINUE_BUTTON_IF_NOT_REDIRECT:{id:1000003,rollout:1,defaultValue:!0,expiration:new Date("April 1, 2020"),stagingRollout:1},CHECK_CONTINUE_URL_IS_AUTHORIZED:{id:1000004,rollout:1,defaultValue:!0,expiration:new Date("September 1, 2020"),stagingRollout:1},POPUP_POST_MESSAGE_TO_IFRAME:{id:1000005,rollout:1,defaultValue:!0,expiration:new Date("October 1, 2020"),stagingRollout:1},CHECK_OAUTH_STATE_STORED_BEFORE_REDIRECT:{id:1000006,rollout:1,defaultValue:!0,expiration:new Date("April 1, 2021"),
+stagingRollout:1}};}).call(this);
diff --git a/special/master/scripts/firebase-auth/handler.html b/special/master/scripts/firebase-auth/handler.html
new file mode 100644
index 000000000..c3f4399f6
--- /dev/null
+++ b/special/master/scripts/firebase-auth/handler.html
@@ -0,0 +1,19 @@
+---
+permalink: /__/auth/handler.html
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/special/master/scripts/firebase-auth/handler.js b/special/master/scripts/firebase-auth/handler.js
new file mode 100644
index 000000000..1af0cbc17
--- /dev/null
+++ b/special/master/scripts/firebase-auth/handler.js
@@ -0,0 +1,562 @@
+---
+permalink: /__/auth/handler.js
+---
+
+/*! @license Firebase v3.7.5
+ Build: 3.7.5-rc.1
+ Terms: https://firebase.google.com/terms/ */
+var firebase = null; (function() { var aa=function(a){var b=0;return function(){return b>>0)+"_",d=0,e=function(g){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(g||"")+"_"+d++,g)};return e});
+var fa=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if("number"==typeof a.length)return{next:aa(a)};throw Error(String(a)+" is not an iterable or ArrayLike");},ha=function(){for(var a=Number(this),b=[],c=a;c"});c=this.ia+": "+c+" ("+a+").";c=new U(a,c);for(var d in b)b.hasOwnProperty(d)&&"_"!==d.slice(-1)&&(c[d]=b[d]);return c};var ab=Za;function bb(a,b){a=new V(a,b);return a.subscribe.bind(a)}var V=function(a,b){var c=this;this.h=[];this.T=0;this.task=ab.resolve();this.A=!1;this.J=b;this.task.then(function(){a(c)}).catch(function(d){c.error(d)})};V.prototype.next=function(a){cb(this,function(b){b.next(a)})};V.prototype.error=function(a){cb(this,function(b){b.error(a)});this.close(a)};V.prototype.complete=function(){cb(this,function(a){a.complete()});this.close()};
+V.prototype.subscribe=function(a,b,c){var d=this;if(void 0===a&&void 0===b&&void 0===c)throw Error("Missing Observer.");var e=db(a)?a:{next:a,error:b,complete:c};void 0===e.next&&(e.next=eb);void 0===e.error&&(e.error=eb);void 0===e.complete&&(e.complete=eb);a=this.la.bind(this,this.h.length);this.A&&this.task.then(function(){try{d.P?e.error(d.P):e.complete()}catch(g){}});this.h.push(e);return a};
+V.prototype.la=function(a){void 0!==this.h&&void 0!==this.h[a]&&(delete this.h[a],--this.T,0===this.T&&void 0!==this.J&&this.J(this))};var cb=function(a,b){if(!a.A)for(var c=0;c>>0)+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e});
+m("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cc&&(c=Math.max(c+e,0));c")&&(a=a.replace(Sa,">"));-1!=a.indexOf('"')&&(a=a.replace(Ta,"""));-1!=a.indexOf("'")&&(a=a.replace(Ua,"'"));-1!=a.indexOf("\x00")&&(a=a.replace(Va,""));return a},Qa=/&/g,Ra=//g,Ta=/"/g,Ua=/'/g,Va=/\x00/g,Pa=
+/[\x00&<>"']/,A=function(a,b){return-1!=a.indexOf(b)};var Xa,Ya;a:{for(var Za=["CLOSURE_FLAGS"],$a=u,ab=0;abparseFloat(Db)){Cb=String(Fb);break a}}Cb=Db}var Gb=Cb,Hb;if(u.document&&wb){var Ib=Bb();Hb=Ib?Ib:parseInt(Gb,10)||void 0}else Hb=void 0;var Jb=Hb;!B("Android")||ib();ib();B("Safari")&&(ib()||(gb()?0:B("Coast"))||(gb()?0:B("Opera"))||(gb()?0:B("Edge"))||(gb()?fb("Microsoft Edge"):B("Edg/"))||gb()&&fb("Opera"));var Kb=null,Mb=function(a){var b=[];Lb(a,function(c){b.push(c)});return b},Lb=function(a,b){function c(k){for(;d>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}},Nb=function(){if(!Kb){Kb={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),
+b=["+/=","+/","-_=","-_.","-_"],c=0;5>c;c++)for(var d=a.concat(b[c].split("")),e=0;e>14&1023;return 0===a?536870912:a};var Sb=[];(Ob?function(a,b){La(a,"state is only maintained on arrays.");y((b&16777215)==b);a[Ob]=b}:function(a,b){La(a,"state is only maintained on arrays.");y((b&16777215)==b);void 0!==a.Nf?a.Nf=b:Object.defineProperties(a,{Nf:{value:b,configurable:!0,writable:!0,enumerable:!1}})})(Sb,55);Object.freeze(Sb);var Tb=function(){throw Error("please construct maps as mutable then call toImmutable");};
+if("undefined"!=typeof Symbol&&"undefined"!=typeof Symbol.hasInstance){var Ub=function(){throw Error("Cannot perform instanceof checks on ImmutableMap: please use isImmutableMap or isMutableMap to assert on the mutability of a map. See go/jspb-api-gotchas#immutable-classes for more information");},Vb={};Object.defineProperties(Tb,(Vb[Symbol.hasInstance]={value:Ub,configurable:!1,writable:!1,enumerable:!1},Vb));y(Tb[Symbol.hasInstance]===Ub,"defineProperties did not work: was it monkey-patched?")};Object.freeze({});if("undefined"!==typeof Proxy){var Xb=Wb;new Proxy({},{getPrototypeOf:Xb,setPrototypeOf:Xb,isExtensible:Xb,preventExtensions:Xb,getOwnPropertyDescriptor:Xb,defineProperty:Xb,has:Xb,get:Xb,set:Xb,deleteProperty:Xb,apply:Xb,construct:Xb})}function Wb(){throw Error("this array or object is owned by JSPB and should not be reused, did you mean to copy it with copyJspbArray? See go/jspb-api-gotchas#construct_from_array");throw Error();};function Yb(){};(function(){var a=u.jspbGetTypeName;u.jspbGetTypeName=a?function(b){return a(b)||void 0}:Yb})();/*
+ SPDX-License-Identifier: Apache-2.0 */
+(function(){}).prototype=Object.create(null);var Zb=function(a,b){if(!v(a)||!v(a)||!v(a)||1!==a.nodeType||a.namespaceURI&&"http://www.w3.org/1999/xhtml"!==a.namespaceURI||a.tagName.toUpperCase()!==b.toString()){b=b.toString()+"; got: ";if(v(a))try{var c=a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(d){c="